Definición de Campos. Tipos

Esta columna es una de todas las que permite definir campos en el modelos de datos de Ingrid (las Clases).

Permite definir el tipo de dato que se almacena en cada campo (número, cadena de caracteres, identificador...) y el formato que se va a dar al contenido de cada campo. Por ejemplo, un real almacenado 2222.1234 se puede mostrar como '2222' (sin decimales) o 2.222,12 (con 2 decimales, no significa que se redondee, y además se usa la notación decimal española, no la que está almacenada en BD).

Tipos de campos

En la base de ejemplo test-campos, el concepto campos.001 es una muestra de uso de todos los tipos. En la pista del botón de cabecera del campo, hay un recordatorio de las abreviaturas.

Al seleccionar en un campo de una clase (línea) esta columna, se despliega un menú para seleccionar de entre todas las posibilidades. Además se puede editar el texto que resulta de una acumulación de modificadores.

El campo Tipo, contiene dos datos separados por un espacio en blanco: Tipo y Tamaño. En el tipo referencia a concepto '>', además hay que especificar detrás una clase.

En cualquier momento se puede cambiar el tipo de visualización, por ejemplo, cambiar un campo real de 2 a 3 decimales: de 'r 2' a 'r 3', pero además se puede cambiar el contenido de los campos de BD en función del tipo, con la opción del menú contextual de la línea: Cambia tipo de campo. Se puede ver cómo en la sección de Cambio de tipo.

De todos estos solo se pueden usar unos pocos como parámetros de procedimientos (entero, real, ref. a concepto, ref. a clasificación, fecha, date, hora, mapas...).

 

NUMÉRICOS
- Booleano simple: b(null|1✔). tamaños: 0(null|0✘) *1-defecto-(null|1✔) 2(null|1✔|2✘)
- Booleano múltiple: bc(check) br(radio) bp(push); Los campos Resumen y Pista, admiten una lista de valores separados por barras | , para las opciones.
- Entero: e, (tamaño 2, muestra los controles de incremental)
- Real: r, (seguido del nº de decimales a visualizar)

FECHAS
- Fecha: f (d/m/a)
    · tamaño= -2 se rotula e introduce en formato ISO AAAA-MM-DD (que admite incompletas AAAA y AAAA-MM)
    · tamaño= 1 rotula la semana a la derecha del campo.
    · tamaño= 4 rotula solo fecha en los fecha-hora.
- Año: a entero sin rotular punto
- Periodo: ff dos fechas separas por un espacio.
- FechaHora: fh (d/m/a h:m:s) Hora: h(h:m:s) DiaMes: dm(d/m) MesAño: ma(m/a)
- F Date ISO: d Este campo es un objeto con diversas partes de información: fecha, hora, meridiano de referencia relativo a la hora “zero” (Greenwich)..., si se imprime.
Es un dato que almacena fecha+hora y se guarda internamente con el estándar ISO AAAA-MM-DDThh:mm:ss.mmmZ con 3 dígitos de milisegundos.
Externamente, los campos se rotulan como: AAAA-MM-DD hh:mm:ss y se introducen como un número real formato AAAAMMDD.hhmmss, que admite datos incompletos; por ejemplo, solo con la fecha pone la hora 00:00:00. El separador entre fecha y hora puede ser un espacio en blanco, dos puntos (:) o el punto (.)

ALFANUMÉRICOS
- Texto:
· t (texto monolínea) ancho por defecto: 62%. Otros tamaños:
2 medio, de un 38% del ancho de la ventana
1 corto, del 23% del ancho
· tm (texto multilínea) ancho por defecto: 100%. Otros tamaños:
3 normal, de un 62% del ancho
2 medio, de un 38% del ancho
1 corto, del 23% del ancho
t y tm admiten 's' detrás para permitir en ellos corrector ortográfico del navegador (spelling)
· tp (password, caracteres ocultos). Posibilidad de visibilizarlos con el botón a la derecha
· tc (código Javascript multilínea)

- Color: col (formato AARRGGBB hexadecimal, siendo los 2 primeros caracteres del canal alfa, para la semitransparencia)

Con botones de acción para acceder:
- Dirección de internet: web
- E-mail: cor
- Dirección geográfica: dir
- Posición geográfica: pos
- Vista geográfica en Google Street View: vis
- Teléfono: tel
 
- Referencia a concepto: > enlace con un concepto de la clase especificada a continuación. Detrás, en tamaño, el formato de visualización (icono · clase · código · resumen, como 1234), es decir, para ver iconos y descripciones de conceptos clase carpeta, sería: '> car 14'.

- Clasificación: # (presenta una persiana para la definición de la lista de valores)

Códigos con cálculo interno (el dato se muestra en color rojo si son incorrectos):

- nif. Hay que tener en cuenta que cada país cuenta con su algoritmo de cálculo para el carácter o caracteres de validación (o ninguno), y además los extranjeros en europa se pueden validar con un documento como [NÚMERO]_[TIPO DE DOCUMENTO]_[PAÍS], por tanto puede haber muchos datos no válidos, ya que el campo sólo calcula la letra para España.
- dni
- visa. Comprueba si es un código válido de visa o mastercard
- iban. Admite 3 opciones: cuenta bancaria de 20 dígitos / código IBAN completo / prefijo de país, dos interrogantes (??) y cuenta de 20 dígitos para calcular el código IBAN

ESPECIALES
- Relaciones: >> (definición de subtabla auxiliar, interna solo de la clase). Presenta una subpersiana al mismo nivel que la de definición de campos. Puede ser de dos tipos:

   · Una lista de relaciones a otros conceptos (en cuyo caso hay que poner en el campo Clase, el código de la misma).
   · Una lista de registros, que no van a ser conceptos de BD, con los campos que se quiera, sin identificador. 
- Expresiones: * (campos con {campo}Lee definido en eventos)
- Json: j (sub-objeto) y jm (multilínea)
- Firma dibujada: firma (almacena de forma vectorial líneas poligonales con todos los puntos no colineales a la escala visible. Ocupa 360 veces menos que el almacenamiento bitmap (y permite trazar con distintos gruesos, por ejemplo).
- Archivo de audio .mp3: audio (incluye controles de reproducción)
- Archivo de vídeo .mp4: video (incluye controles de reproducción)

Convertir un tipo de campo en otro

Con la opción del menú contextual Cambia tipo de campo sobre una línea de definición de campo, se puede aplicar el cambio mediante un diálogo que permite pasar de los 7 tipos básicos de información a cualquiera de los otros 6.

Estos tipos son: (s)elección, (>)referencia a concepto, (#)clasificación, (e)ntero, (r)eal, (t)exto y (j)son

El resto de formatos son internamente de uno estos tipos básicos, por ejemplo:

- Un b- Un booleano es un 1 ó 0 pero se guarda con un dato nº entero. Es el formato el que muestra una marca (check) color verde o un aspa roja en vez de un número.

- De forma similar, una referencia a un concepto se guarda como una cadena de caracteres con la clase y el código, como "car.C01", en este caso el tipo de campo indica que hay que interpretarlo y editarlo como una referencia a concepto.

- Otro ejemplo, las fechas se guardan como enteros con formato AAAAMMDD (como 20181222), y los datos fechaHora como reales (20181222.234505).

El cuadro de posibles combinaciones, enlazado a continuación, explica qué efecto produce cada conversión:

Los campos se pueden agrupar en secciones (un rótulo)  y en persianas (convertibles en pestañas, como siempre haciendo CONTROL+clic sobre el nombre). Para ello se crea un campo con descripción pero sin código. Si se quiere que sea una persiana, se puede poner un nivel en la columna Tamaño, por ejemplo 2.