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 Medea 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.

IMPORTANTE: todas las herramientas definidas en estas columnas se aplican tanto a definición de los campos de interface en el modelo de datos de las clases, como a parámetros de informes, pero por ejemplo no todos los tipos de campos se pueden usar como parámetros de informes, y algunas herramientas para parámetros no tienen sentido en campos de BD. En cada caso se indicará si se aplica a campos, parámetros o ambos.

Al abrir un proyecto, se chequean todos los campos y los que no están marcados con el botón  Activa campos particulares, se ponen como están definidos en la aplicación en cada momento, es decir, se toman de la definición 'dura' de la aplicación'. Aunque incluso en este estado de "no modificables", se pueden añadir campos adicionales la final de la lista para ampliar el modelo de datos establecido en Medea.

Las persianas de campos marcadas como modificables, admiten añadir campos al final y modificar cualquier dato de los campos predefinidos (con chincheta verde a la derecha) excepto Código, Tipo (que aúna  los campos tip y pad), y en los campos de tipo referencia (>), la Clase. También se pueden cambiar de orden todos los campos: los predefinidos y los nuevos.

 

CÓDIGO

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

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-campos > concepto pro.001

 

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.
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, sólo 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 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 alfa, para la semi-transparencia)

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 (el dato se muestra en color rojo si son incorrectos):
dni,  cif, visa
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 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 (almacena de forma vectorial líneas poligonales con todos los puntos no co-lineales 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)

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.

Convertir un tipo de dato 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 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 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:

 

MODIFICADORES

Los valores tras la letras del modificador indican el valor de defecto, o sea, f es igual que f1.
Permite gestionar la apariencia, visualización o no y la funcionalidad del campo cuando aparece en distintos componentes de una página:
- f1, mostrar el campo en la ficha de concepto
- t1, mostrar como columna en tablas (lista de conceptos)
- h1, mostrar en el historial
- b1, mostrar en los formularios de búsqueda general de su clase
- i1, considerar imprimible el campo cuando se utilizan informes con funciones que tienen en cuenta ese valor, así se puede personalizar qué datos aparecen en el informe de ficha o lista.
- r1, mostrar en la persiana Referencias del concepto al que apunta. 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.
Ejemplo completo de uso en la Base de ejemplo: test-referencias. r0 oculta la persiana de referencias en la ficha de clase a la que apunta, r1 la muestra sin edición (excepto para usuarios admin y G1), r2 la muestra editable y r3 la muestra insertable, se pueden añadir líneas.
- 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 por defecto no se visualizan)
- o0, oculto por defecto en tablas (listas). El campo con o1 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 del menú contextual.  

- T0 Trazabilidad: está pensado para campos de tipo fecha o fecha-hora, que marcarán el hito de cierre de un bloque de campos seguidos y que suponen una fase documental. Los posibles valores:
T1, oculta campos siguientes y al procesar, bloquea (quita edición) campos hasta el anterior campo traza. La acción de pulsar el botón (con el nombre que se haya definido) introduce el valor de la fecha y hora actual.
T2, oculta campos anteriores y bloquea el flujo de trazas, no continúa con las siguientes, sirve para interrumpir el proceso documental.
T5, es la traza modo 1 pero permite edición del dato: se introduce la fecha tecleando, o con la máscara punto (.) que introduce la actual, no es automático.
T6, lo mismo (campo editable) para traza modo 2.

Sólo a los usuarios del grupo expertos (g1) les aparece en cada hito cerrado un botón Retroceder para deshacer consecutivamente los cierres en caso de que haya que modificar los datos. 

 

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

 

[quizá obsoleto]:

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 anterior.

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.

 

- M0, campos múltiples en referencias a conceptos o clasificaciones (tipos s, #, >) permiten hacer referencia a vearios conceptos, auqneu sólo se muestra en _id en el campo, no el resumen.
- 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.

RESTRICCIONES

Permite especificar para cada campo una lista de códigos de grupos de usuarios (como g1, g2...), seguidos por dos puntos (:) y una restricción L(lectura) o E(edición) y separados por espacios en blanco, como: g5:E g6:L

Se usan habitualmente en combinación con los modos T de traza, y la restricción consiste en que los usuarios de esos grupos no puedan editar o ni siquiera ver el campo.

UNIDAD DE MEDIDA

Un simple rótulo para documentar la unidad en las que se miden las cantidades del campo

ABREVIATURA

Rótulo que se imprimirá en tablas, para que los nombres largos de campos no hagan columnas muy anchas

 

 

PARÁMETROS SÓLO DE PROCEDIMIENTOS

Hay otras columnas de datos de definición de los campos que SÓLO SON APLICABLES A CAMPOS DEFINIDOS COMO Parámetros de procedimientos, no se aplican a los de una ficha o lista de conceptos:

MODIFICADORES

- m1, memorizar contenido en la instancia del navegador; por defecto se guarda el último valor introducido en un parámetro de informe para usarlo las siguientes veces que lo ejecutemos. Si algún parámetro no se quiere guardar, por ejemplo una fecha que siempre cambia, hay que poner m0.

BÚSQUEDA

Permite establecer una condición para filtrar los valores que se presentarán en los campos de tipo referencia a concepto cuando se teclee una máscara como punto (.) o se haga clic en el icono de la clase de concepto referencia. Por ejemplo, si hace referencia a la clase espacio (> esp), con una búsqueda como 'cla=espzon' nos mostrará para elegir sólo los de una subclase zona, no todos. Es una ayuda al poner una máscara con _id o resumen, o sea que no impide que tecleemos explícitamente el _id de un espacio de otra clase, si queremos introducirlo a propósito.

VALOR DE DEFECTO

Valor que consideramos habitual y que se puede recuperar en todos los parámetros de golpe, con el botón de la esquina superior derecha de la persiana Parámetros: Pone parámetros por defecto

MARCA DE AGUA

Muestra le texto difuminado para dar información sobre el contenido que hay que poner en el campo o el valor de defecto que contiene. Se puede introducir el dato encima de él.

AYUDA EN PISTA

Texto de ayuda rápida y breve de uso del campo o parámetro. Cuando se pone, aparece junto al nombre del campo un punto central (·) indicando que al ponerse encima del nombre aparece un tip.

AYUDA EN URL

Ayuda más extensa que la pista, es una página propia de la ayuda en línea y el usuario no puede editarla, es documentación de la aplicación para campos predefinidos. Se indica una dirección url absoluta con lo que aparece junto al campo un icono de ayuda, que abre la documentación al pie de la página.

PROCESA

Permite especificar un código javascript que se ejecuta dentro de una función function (bas, pro) { ... } para cargar un valor o bien ocultar un parámetro, ya que está hecho para que cuando sea el resultado sea indefinido (undefined), no se muestre.

Por ejemplo, en el informe común pro.pre.exporta, en el campo en qeu se indica el nº de certificación con el que ejecutar el informe, se define el código JS: if (bas.cab.cerl) return ingrid.memoria.cera||bas.cab.cerl.length

que comprueba si hay definidas certificaciones, y pone en el parámetro la guardada en memoria al usarlo la última vez o bien la última certificación definida.

OBSERVACIONES

Un texto opcional de documentación interna y comentarios de cada campos