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):
- 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.