Definición de Campos (admin)

ejemplos Base de ejemplo: test-campos

El administrador de BD, pulsando el botón Admin, puede crear campos de los tipos que permite Ingrid en las clases predefinidas por la aplicación, y modificar los existentes, excepto el Código y Tipo. También puede crear nuevas clases con campos.

Para modificar el modelo establecido en Ingrid (es decir crear, eliminar o modificar campos de las clases "fijas" de la aplicación, que muestran una chincheta verde en el campo Info), se debe poner en edición el panel de campos con el icono de la esquina superior derecha . Al pulsarlo, esa clase queda personalizada y se mantendrán los cambios realizados (nuevos campos, modificaciones...) que hemos puesto a pesar de las actualizaciones de la aplicación. En algún momento, la aplicación podrían introducir campos nuevos, pero respetará el orden y modificaciones de los que hemos personalizado.

En los campos fijos no se puede editar el Código, el Tipo y en los campos de tipo referencia (>), la Clase. Se puede modificar su orden, Descripción, Pista, Modificadores...

COLUMNA ID

Restricciones a los identificadores de DB: Sólo se admiten: caracteres ASCII de 0-9, a-z, A-Z y los 9 símbolos !#$%&@-._, también se admite el espacio en blanco, aunque no se recomienda en absoluto, porque puede complicar las ordenaciones, búsquedas...
Esta limitación viene menos dada por el motor de BD mongoDB -que admite casi cualquier carácter-, que por los nombres de archivos Windows, dado que los códigos o _id de concepto se utilizan muchas veces como nombre de archivo para generar webs, exportaciones...

 

COLUMNA TIPO

Permite definir el tipo de 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).

El campo Tipo, los campos con 2 valores: 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 al final de la página.

En la base de ejemplo enlazada al principio de la página, 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.

De todos estos sólo se pueden usar unos pocos como parámetros de procedimientos (entero, real, ref. a concepto, ref. a clasificación, fecha, date, hora, mapas...). Hay un ejemplo en la ejemplos Base: test-informes, concepto pro.param.

 

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)
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, en los campos se rotulan como: AAAA-MM-DD hh:mm:ss y se introducen como un número real: AAAAMMDD.hhmmss

 

ALFANUMÉRICOS
Texto:
   t (texto monollí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 multilinea) 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
   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 alpha, para la semitransparencia)

Con botones de acción para acceder: Sitio de internet: web, E-mail: cor, Dirección geográfica: dir, Posición geográfica: pos, Vista geográfica: 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 (se muestran en color rojo si son incorrectos):
dni,  cif, visa, iban (Admite 3 opciones: 1:cuenta bancaria de 20 dígitos 2:código IBAN completo, 3: Prefijo de país, dos interrogaciones ?? y cuenta de 20 dígitos para calcular código IBAN)

 

ESPECIALES
- Relaciones: >> (definición de sub-tabla auxiliar, interna sólo de la clase). Presenta una sub-persiana 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 pone en el campo Clase el código de la misma), o una lista de registros, con los campos que se quiera, sin identificador que no van a ser conceptos de BD. 
- Expresiones: * (campos con {campo}Lee definido en eventos)
- Json: j (sub-objeto) y jm (multilínea)
- Firma dibujada: firma
- Archivo de audio .mp3: audio (incluye controles de reproducción)
- Archivo de vídeo .mp4: video (incluye controles de reproducció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.

 

COLUMNA MODIFICADOR

Los valores tras la letras del modificador indican el valor de defecto, o sea, f=f1.
Permite gestionar la apariencia, visualización o no y la funcionalidad del campo cuando aparece en distintos componentes de una página:
- f1, fichas de campos, se muestra
- t1, tablas, listas con columnas, se muestra
- r1, para campos de Tipo referencia (>). Se muestra en la página del concepto al que apunta, como una lista o tabla de conceptos que hacen referencia a aquel.
- b1, formularios de búsqueda de la clase, se muestra

- i1, impresión estándar de informes, cuando se imprimen campos por clase, se muestra

Además, algunos especiales:
- m1, memorizar contenido en la instancia del navegador. Se aplica a campos de parámetros de procedimientos.
- p0, mantener la posición original al redefinir un campo de una superclase en una clase. Los campos se redefinen para cambiarlos la clase, forma de visualización, o posición respecto a los otros campos.
- c0, permite rotular los valores 0 en los campos numéricos (los ceros numéricos se guardan en BD, pero normalmente no se visualizan)
- o0, oculto por defecto en tablas (listas). El campo con 01 se mostrará seleccionable para visualizar en el menú contextual de cabecera de las listas, pero no aparece inicialmente, ni tampoco al seleccionar la opción Presenta defecto.  

- T0 Trazabilidad: Se puede usar en todos los tipos de campos, pero los habituales son los de fechas y fecha-hora que sirven como hito de cierre de los datos de una fase documental.
   1: Tipo 1, oculta campos siguientes y al procesar, bloquea (quita edición) campos hasta el anterior campo traza
   2: Tipo 2, oculta anteriores y bloquea el flujo de trazas.
   4: permite edición del dato (no es automático) y Retroceder. la acción de Procesar es la introducción del valor.

Resumiendo el funcionamiento de las trazas de modo 1 y 2:

modo1!    modo1!!   sin dato, con dato. Sin dato oculta posteriores, con dato no permite editar anteriores
R! Re Rv  R! Re Rv  sin Restricciones, restric. de edición, restric. de visualización
v  -   v  v  -   campos anteriores (editable, visible o no visible)
e  -  -   e  v  -   campo traza
-  -  -   e  e  e   campos posteriores

modo2!    modo2!!   sin dato, con dato. Sin dato no hace nada, con dato bloquea anteriores y oculta posteriores
R! Re Rv  R! Re Rv  sin Restricciones, restric. de edición, restric. de visualización
e  e   v  v  -   campos anteriores
e  -  -   e  v  -   campo traza
e  e  e   -  -  -   campos posteriores

El grupo de usuarios que no tenga restricciones y pueda editar cada hito, también puede en caso de error, volver atrás con el botón que aparece al lado del campo, hasta el hito anteiror.

IMPORTANTE! esto puede dar lugar a situaciones en las que un usuario "interfiera" en la edición de otro que está modificando el hito siguiente. Por ejemplo:
> un operario rellena su parte y lo cierra
> el inspector lo tiene para inspeccionar y toma alguna nota, pero no lo cierra
> el operario se da cuenta de un error y lo abre
en ese momento el inspector vuelve a entrar para cerrarlo, pero se lo encuentra en estado "pendiente de cerrar por el operario", no tiene acceso momentáneamente a los datos que introdujo, ni le aparece como pendiente de inspeccionar hasta que el operario no la cierre de nuevo.


- E0, campo encriptado a través de una clave de cifrado
- a, alineación (0 izq, 1 centro, 2 der), el defecto depende del tipo de campo. Por ejemplo: textos a izquierda, enteros y reales a derecha...
- e, establece la editabilidad, heredada de los permisos que tenga el usuario para la clase.
- d refresca el campo/línea/tabla/ventana cuando cambia. Útil para cuando se programan campos evento dependientes de este campo, al cambiar debe refrescarse la línea o la tabla para actualizar los campos con evento.

Cambios en BD a través del cambio de tipo de campo

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 de estos: por ejemplo, un booleano es un 1 ó 0 pero se guarda con un dato nº entero, es el formato el que muestra un tick 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 (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: