4D v16.3

Propiedades de los campos

Inicio

 
4D v16.3
Propiedades de los campos

Propiedades de los campos  


 

 

Además de su nombre y su tipo (ver la sección Tipos de campos 4D), las propiedades de un campo determinan su apariencia, sus condiciones de entrada, visualización, edición y almacenamiento de los datos. Las propiedades de cada campo de una tabla pueden definirse individualmente.

Las propiedades de los campos pueden especificarse en el Inspector o en algunos casos, en el menú contextual que aparece cuando hace clic derecho en un campo.

Nota: puede modificar las propiedades de un campo en el que ya se ha introducido datos en la base de datos. Ciertos cambios tienen en cuenta los datos existentes. Por ejemplo, cuando se elige el atributo único, 4D muestra una caja de diálogo de advertencia y no permite que este atributo se active si los datos del campo contienen valores duplicados. Sin embargo, si se modifican las propiedades de entrada de datos, esto no afecta a los datos existentes. Por ejemplo, cuando se elige el atributo Obligatorio, sólo las entradas efectuadas después serán revisadas, los valores que ya se han introducido pueden contener espacios en blanco.

El área "Definición" del Inspector permite configurar las propiedades elementales del campo. Ciertas propiedades sólo están disponibles en función del tipo de campo seleccionado.

Color  

Puede asignar un color a cada campo. Los colores pueden utilizarse para diferenciar los campos de acuerdo a su función o a sus atributos. Por ejemplo, puede utilizar un color para los campos únicos y otro para los campos obligatorios.
También es posible atribuir individualmente un color a cada tabla (ver Color de la imagen de una tabla) y a cada relación (ver la sección Definición).

Nota: el color de los campos definido en el editor de estructura no tiene incidencia en el color de los campos mostrado en los formularios (ver Colores de fondo y de trazo).

El color definido para un campo se aplica al nombre del campo. Para definir el color de uno o más campos, efectúe su selección y elija un color utilizando:

  • el botón Color de la barra de herramientas del editor,
  • el comando Color en el menú contextual de los campos,
  • la opción Color del Inspector.

La opción Automática permite aplicar el color estándar original al campo.

Puede volver un campo invisible en el entorno Aplicación y para los plug-ins seleccionando para este campo la propiedad Invisible. Volver un campo invisible permite controlar las operaciones que un usuario realiza en ese campo ya que no aparece en ninguno de los editores y cajas de diálogo que aparecen en el entorno Aplicación. Adicionalmente, no puede ser utilizado por los plug-ins. Los siguientes editores y cajas de diálogo se ven afectados en el modo Aplicación:

En estos editores y cajas de diálogo, el usuario no podrá ver o seleccionar el campo. Por ejemplo, el usuario no puede seleccionar un campo invisible para un informe creado con el editor de informes rápidos.

Nota: al usar los editores, los usuarios tienen la opción de guardar en el disco las características de la búsqueda o de la ordenación creada por ellos. En este caso, cualquier campo declarado invisible posteriormente podrá utilizarse. Adicionalmente, los usuarios pueden introducir manualmente los nombres de los campos invisibles en el Editor de fórmulas.

Los nombres de los campos invisibles aparecen en cursiva en la ventana de estructura.

Único  

La propiedad Único se utiliza cuando quiera que cada registro de una tabla tenga un valor diferente (único). La propiedad Único es muy útil para validar los campos que contienen números de identificación, números de seguridad social, números de orden de compra, etc.

La propiedad Único evita tener duplicados de valores vacíos o de valores introducidos. Si un campo tiene la propiedad Único, solo un registro podrá contener un valor vacío para ese campo.

La barra de información del editor indica si la propiedad único está seleccionada para un campo (ver la sección Editor de estructura).

En 4D, los campos con el atributo Único deben ser indexados:

  • Una señal visual indica que se creará un índice (si no existe) cuando se selecciona el atributo Único para un campo:
  • El editor no le permite eliminar el índice de un campo único (la opción Ninguno o eliminar comandos no están disponibles para los índices cuando se selecciona un campo de este tipo):

    Si desea eliminar el índice de un campo único, tiene que eliminar el atributo Único de antemano.

Esta opción controla la exposición del campo en el contexto de peticiones 4D Mobile enviadas a la base 4D a través de REST. Por defecto, todas las tablas y todos los campos están expuestos en 4D Mobile.
Por razones de seguridad, es posible que desee exponer solamente ciertos campos de su base a las llamadas 4D Mobile. Por ejemplo, si no desea exponer el campo [Empleados]Salario.

Si no quiere exponer un campo, deseleccione la opción Exponer con el servicio 4D Mobile para el campo.

Nota: también puede definir esta opción a nivel de la tabla, consulte Propiedades de las tablas.

Para que un campo sea accesible por medio de 4D Mobile, su tabla padre también debe ser accesible. Si la tabla padre no está expuesta, ninguno de sus campos son accesibles, independientemente de su situación individual. Esto significa que usted puede activar o desactivar la exposición de una tabla en 4D Mobile temporalmente sin modificar el valor individual de la opción de exposición de cada campo.

Esta opción se puede utilizar en el contexto de la funcionalidad "4D Mobile" functionality. Para obtener más información, consulte el manual 4D Mobile.

La propiedad Rechazar valor NULL de entrada permite evitar el almacenamiento de valores NULO.

Cuando esta propiedad está seleccionada para un campo, no es posible almacenar el valor NULO en este campo. Si un campo que tiene esta propiedad recibe un valor NULO, se genera un error.

Esta propiedad de bajo nivel corresponde precisamente al atributo NOT NULL de SQL. Por lo general, si quiere utilizar valores NULL en su base de datos 4D, se recomienda utilizar exclusivamente el lenguaje SQL de 4D.

Nota: en 4D, los campos pueden igualmente tener la propiedad “Obligatorio”. Los dos conceptos son similares pero su alcance es diferente: la propiedad “Obligatorio” es un control de entrada, mientras que “Rechazar valor NULO de entrada” trabaja a nivel del motor de la base de datos.

Esta propiedad permite volver consistente el procesamiento de valores “vacíos” y de valores NULOS para el campo vía el lenguaje de 4D. Por razones de compatibilidad, los valores NULOS almacenados en los campos de las bases de datos 4D se convierten automáticamente en valores por defecto cuando son manipulados vía el lenguaje de 4D. Por ejemplo, en el caso de la siguiente instrucción:

 miVarAlfa:=[mitabla]MiCampoAlfa

... si el campo MiCampoAlfa contiene un valor NULOS, la variable miVarAlfa contendrá “” (cadena vacía):

  • para los tipos Alfa y Texto: “”
  • para los tipos numéricos (Real, Entero y etc.): 0
  • para el tipo Fecha: “00/00/00”
  • para el tipo Hora: “00:00:00”
  • para el tipo Booleano: False
  • para el tipo Imagen: imagen vacía
  • para el tipo BLOB: BLOB vacío

Por otra parte, este mecanismo no aplica en principio a los procesos efectuados a nivel del motor de la base de datos 4D, tal como las búsquedas. De hecho, la búsqueda de un valor “vacío” (por ejemplo mivalor=0) no encontrará registros que almacenen el valor NULO y viceversa. Cuando ambos tipos de valores (valores por defecto y NULOS) están presentes en los registros para un mismo campo, ciertos procesos pueden alterarse o necesitar código adicional. Para evitar estos inconvenientes, la opción Mapear valores NULOS a valores vacíos permite estandarizar todos los procesos en el lenguaje de 4D. Esta propiedad permite extender el principio de uso de los valores por defecto a todos los procesos. Los campos que contienen valores NULOS serán considerados automáticamente como que contienen los valores por defecto.

Esta propiedad se tiene en cuenta a un nivel muy bajo del motor de la base de datos. Actúa particularmente en el comando Is field value Null.

Nota: los campos Alfa en formato UUID no generados no se consideran como NULL (ver Formato UUID).

La propiedad “Autoincrementar” permite generar los identificadores únicos para los registros. Puede utilizarse con los Tipos de campos 4D Entero, Entero largo y Entero largo 64 bits (ver la sección REGISTER CLIENT).

Un campo con esta propiedad se incrementa automáticamente con cada nuevo registro en la tabla. El número asignado al campo corresponde al del "contador interno" de la tabla, mantenido por 4D. Este contador interno también es accesible vía los comandos 4D Sequence number y Get database parameter y utilizando el marcador #N (ver Valores por defecto).

Los números asignados son permanentes y nunca se reutilizan, incluso cuando se borran o compactan los registros. Los números generados durante una transacción anulada se "pierden."
Sin embargo, es posible reinicializar el contador interno de una tabla utilizando el comando SET DATABASE PARAMETER.

La propiedad “Autoincrementar” corresponde al atributo SQL AUTO_INCREMENT y puede especificarse utilizando este lenguaje (ver ejemplo). La etiqueta AUTO INCREMENT también aparece en el área de información SQL del Inspector para los campos que tienen este atributo.

El siguiente código permite generar un campo "id" de tipo entero en la tabla "animales":

 ARRAY TEXT($nombres;6)
 $nombres{1}:="perro"
 $nombres{2}:="gato"
 $nombres{3}:="delfín"
 $nombres{4}:="culebra"
 $nombres{5}:="mariposa"
 $nombres{6}:="avestruz"
 Begin SQL
    CREATE TABLE animals(
    id INT NOT NULL AUTO_INCREMENT ,
    name VARCHAR(30)NOT NULL,
    PRIMARY KEY(id));
    INSERT INTO animals(nombre)VALUES(:$nombres);
 End SQL

El siguiente código:

SELECT * FROM animals;

... devuelve estos valores:

id    nombre
1    perro
2    gato
3    delfín
4    culebra
5    mariposa
6    avestruz

Este menú de opciones está disponible para los campos de tipo Texto, BLOB, Imagen y Objeto únicamente. Permite definir el lugar de almacenamiento de los datos del campo. Las siguientes opciones están disponibles:

  • En el registro: los datos se guardan con cada registro. Por lo general, no debe elegir esta opción para campos que contengan datos de gran tamaño. Sin embargo, está seleccionada por defecto para los campos de tipo Texto porque este  tipo de almacenamiento es necesario si quiere utilizar los índices "estándar" de tipo B-Tree. El menú de selección de los índices está oculto cuando los datos teto se guardan fuera de los registros. 
  • En el archivo de datos: los datos se almacenan en el archivo de datos, pero fuera de cada registro. Esta opción está seleccionada por defecto para los campos BLOB, Imagen y Objeto. El almacenamiento de textos, imágenes, blobs y objetos  fuera de los registros permite optimizar el funcionamiento de las bases cuando se trabaja con grandes volúmenes de datos.
  • Fuera del archivo de datos: los datos se almacenan en archivos separados, fuera del archivo .4DD. Esta opción se describe en la sección Almacenamiento externo de los datos.
    Nota de compatibilidad: esta opción sólo se tiene en cuenta para los nuevos registros creados posteriormente en la tabla. Cuando se define esta opción para una tabla en la que los registros ya se han introducido, no se modifican y la tabla funcionará en modo de almacenamiento mixto interno/externo. Si desea ampliar este modo a los registros existentes, debe compactar los datos utilizando la opción Forzar la actualización de los registros (ver Página Compactar).

Como se describió en la sección anterior, por razones de optimización, los datos de los campos de tipo BLOB, Imagen y Texto se guardan fuera de los registros o fuera del archivo de datos.

En esta configuración, puede ser interesante, por razones de rendimiento, "forzar" el almacenamiento de los datos en los registros cuando su tamaño es limitado. Este funcionamiento es particularmente optimizado si su aplicación maneja datos BLOB, Imagen, Texto u objeto de tamaños no homogéneos. 

Este parámetro es accesible vía la opción Tamaño máximo de almacenamiento interno. El valor introducido en esta área representa el tamaño en bytes máximo para que los datos del campo se almacenen en el registro. Por ejemplo, si introduce 30 000 para un campo imagen, una imagen de 20 KB se almacenará en el registro y una imagen de 40 KB se almacenará fuera del registro. Por defecto, el valor es 0: todos los datos se almacenan fuera de los registros.

Esta propiedad está disponible para los campos de tipo Alfa. Indica que el campo se utiliza para almacenar los identificadores UUID. Los datos almacenados deberán ajustarse al formato UUID (combinación de 32 letras (AF, af) y números (0-9)). Para hacer esto, puede utilizar la propiedad Auto UUID, el comando Generate UUID o cualquier algoritmo personalizado.

Si intenta almacenar en este campo una cadena que no cumple con el formato de UUID, 4D la convierte automáticamente. La misma operación se aplica también a los valores de los campos existentes no alfa que se transforman en campos UUID: al cargar los registros, los valores se reformatean y después se guardan de nuevo.

Los campos con la propiedad Formato UUID pueden mostrarse en los formularios y seguir siendo editables. Su contenido se muestra en caracteres en mayúsculas. Debe pasar a través de una variable si desea mostrar los caracteres en minúsculas. 

Notas:

  • Los campos con el formato UUID no pueden asociarse a los índices de palabras claves, ni a las listas de opciones.
  • Es posible crear una relación entre dos campos con el formato UUID pero no es posible relacionar un campo Alfa estándar a un campo que tiene el formato UUID.
  • Un campo UUID inicializado (generado) y que tiene el valor NULL devuelve una cadena vacía. Un campo UUID no generado no es NULL y devuelve "000..." (el número de ceros es igual al número de caracteres). La propiedad no es tenida en cuenta por los campos UUID no generados (visualización de of "000...").

Esta opción sólo se activa cuando la propiedad Formato UUID está seleccionada. 

Puede utilizar la propiedad Auto UUID para generar automáticamente un número UUID en el campo. 

Este número se calcula automáticamente en los siguientes contextos:

  • cuando se crea un registro,
  • cuando se carga un registro cuyo campo UUID contiene un valor Null. Esto ocurre más particularmente para los registros creados y almacenados antes de la adición del campo UUID en la tabla, cuando la opción Mapear valores NULOS a valores vacíos no estaba seleccionada.

Naturalmente, en todos los casos, el registro debe guardarse para que el UUID automático generado se guarde en el campo.

Nota: cuando se importan datos, incluso con esta propiedad seleccionada, 4D no genera un número nuevo, pero utiliza los valores importados (y los transforma cuando sea necesario si el formato no es válido). Sin embargo, si el valor del campo importado está vacío, se genera automáticamente un UUID.

Nota de compatibilidad: esta opción se conserva por razones de compatibilidad y no tiene ningún efecto por defecto. Para poder utilizarla, debe habilitar QuickTime en su aplicación (ver Introducción a las imágenes).

Esta propiedad está disponible para los campos Texto y Alfa. Cuando selecciona esta opción, las búsquedas y ordenaciones efectuadas en los datos almacenados en el campo no tienen en cuenta ningún tipo de etiquetas de estilo.

Esta opción está relacionada con la posibilidad en 4D de aplicar estilos diferentes dentro de una misma área de texto (texto enriquecido) en un formulario. Para obtener más información sobre esta función, consulte la sección GET DATA SOURCE LIST.

La definición de estilos se hace mediante la inserción de etiquetas HTML en el texto. Estas etiquetas se interpretan en el momento de la visualización del área de texto.

Las etiquetas de estilo se almacenan con los datos. Por ejemplo, si escribe "fin de semana" en un campo de texto, 4D guardará "fin de <SPAN STYLE = "color:
#D81E05">semana</SPAN>". Esta operación es transparente para el usuario a nivel de formulario. Sin embargo, para las búsquedas y las ordenaciones, una configuración específica es necesaria para que 4D ignore las etiquetas de estilo. Para "fin de semana", la búsqueda solamente la encontrará si se ha seleccionado la opción Ignorar estilo al buscar y ordenar para el campo en el editor de la estructura.

Nota: con esta opción, una búsqueda de elvalor entre los datos de elcampo es lo mismo que la ejecución de esta instrucción dentro de 4D:

 QUERY BY FORMULA(OBJECT Get plain text(elcampo)="elvalor")

La propiedad Indexación está disponible para los campos de tipo alfanumérico, texto, fecha, hora, booleano, entero, entero largo, entero 64 bits, real, flotante y objeto. La propiedad índice de palabras claves está disponible para los campos de tipo alfanumérico, texto e imagen.

El uso de índices permite acelerar los procesos y las búsquedas entre los datos.

La gestión de índices se detalla en la sección Crear y modificar índices.

Puede establecer controles de entrada para campos y objetos editables a nivel de los formularios. Los controles de entrada restringen lo que el usuario puede introducir en el campo u objeto editable en un formulario particular.

Cuando el atributo Obligatorio se selecciona para un campo, el usuario debe obligatoriamente introducir un valor en el campo durante la entrada de datos. 4D no acepta un registro con campos obligatorios vacíos. Debe definir como obligatorios aquellos campos cuya información sea esencial para su base. El campo que identifica como único a cada registro en una tabla es un buen candidato a ser Obligatorio. Campos que deben ser obligatorios para proteger la integridad de los registros son los que contienen datos como los números de seguridad social, números de factura, ciertas fechas o códigos de los empleados.

También puede definir el atributo Obligatorio para un campo en un formulario particular. Si selecciona este atributo en el editor de estructura, no puede deshabilitarlo en un formulario particular. Sin embargo, puede aplicar el atributo Obligatorio en un formulario para un campo que no tenga este atributo en el editor de estructura. Para mayor información consulte la sección Propiedades de campos y atributos Editable y Obligatorio.

Nota: en 4D, los campos pueden igualmente tener la propiedad "Rechazar la escritura del valor NULL" (ver arriba). Los dos conceptos son similares pero su alcance es diferente: la propiedad “Obligatorio” es un control de entrada, mientras que "Rechazar la escritura del valor NULL” trabaja a nivel del motor de la base de datos.

Si el atributo No modificable se selecciona para un campo, 4D valida el primer valor introducido en el campo, pero no permite que el usuario modifique el valor después de que se guarde el registro. El usuario sólo puede modificar este valor durante la creación del registro, antes de que el registro sea aceptado. Una vez el usuario guarda el registro, el valor de este campo no es modificable. Este valor puede ser modificado por un método o regresando al entorno Diseño y desactivando esta opción.

Utilice el atributo No modificable para los campos que deben ofrecer información de seguimiento (auditorias) tales como fecha de recepción, fecha de pago, etc.

Nota: este atributo sólo funciona con campos mostrados en un formulario de entrada. En otros casos (entrada en lista, entrada en subformulario y en modo listado) el valor del campo aún podrá modificarse.

El usuario no puede introducir valores desde el teclado en un campo que tenga el atributo No editable. Debe utilizar un valor por defecto para este campo o escribir un método que inserte un valor en el campo. Un campo con el atributo No editable es útil para mostrar los valores que no quiere que los usuarios de la base modifiquen, tales como totales o números de serie asignados por un método.

También puede definir esta propiedad para un campo en un formulario en particular. Para mayor información, consulte la sección Propiedades de campos y atributos Editable y Obligatorio.

Esta opción sólo está disponible para los campos de tipo Texto. Cuando está seleccionada, el campo texto se configura automáticamente, en los formularios creados posteriormente, de manera puedan tener varias líneas de texto. Sus características por defecto son las siguientes:

  • altura correspondiente a varias líneas,
  • barra de desplazamiento horizontal,
  • en ejecución, un retorno de carro provoca una nueva línea.

Cuando esta opción no está seleccionada, la apariencia por defecto del campo texto en los formularios es idéntica a la de los campos de tipo Alfa: una sola línea de altura y sin barra de desplazamiento; un retorno de carro lo pasa al siguiente campo en el formulario.

Es posible cambiar la apariencia por defecto del campo en cualquier momento vía el editor de formularios.

Utilice Permitir lista si quiere mostrar una lista de selección durante la entrada de datos en el campo. Para utilizar esta propiedad, primero debe crear la lista con ayuda del editor de Listas.

Utilice esta propiedad cuando quiera estandarizar las entradas en los campos y evitar errores de digitación. Esta propiedad es útil para los campos que tienen un número limitado de posibles valores o entradas usuales. Utilizar una lista de valores no necesariamente evita que el usuario escriba valores diferentes a los de la lista.

También puede asignar una lista de selección para un campo en un formulario particular. Sin embargo, cuando asigna una lista de selección sólo para un formulario, la lista no se muestra en los otros editores o cajas de diálogo, como el editor de búsquedas. Para mayor información sobre el uso de listas de valores en formularios, consulte la sección Controles y ayuda a la entrada.

Nota: también es posible definir a nivel de los formularios las listas de valores obligatorios y de valores excluidos.

Cuando selecciona la opción Permitir lista, el menú desplegable asociado se activa. Puede entonces seleccionar una lista existente que quiera asignar al campo o puede hacer clic en el botón [...] para acceder directamente al editor de Listas.

Puede dar a los usuarios de su base información adicional sobre un campo añadiendo mensajes de ayuda. Si escribe un mensaje de ayuda en esta área, se mostrará debajo del campo cuando el usuario coloque el cursor en el campo, sin importar el formulario en el que se encuentre el campo.

Cuando el usuario ubica el puntero debajo del campo, aparece el mensaje de ayuda, como se muestra a continuación:

También puede utilizar un mensaje de ayuda para un campo en un formulario particular. Si asigna un mensaje de ayuda sólo a algunos formularios, no aparecerá en los demás formularios. Para mayor información sobre el uso de mensajes de ayuda, consulte el párrafo Mensajes de ayuda.

El área Comentarios del Inspector permite almacenar información adicional sobre el campo. Estos comentarios están disponibles para todos los desarrolladores.
Note que cada tabla y cada relación dispone de su propia área de comentarios.

SQL  

El área SQL del Inspector ofrece información útil sobre el campo desde la perspectiva de su uso vía el motor SQL.

Esta área indica particularmente si el nombre del campo no respeta las reglas de la nomenclatura SQL (por ejemplo, a diferencia de 4D, SQL no permite que un nombre de campo contenga espacios).

Nota: SQL también define una lista de palabras reservadas, incluyendo las funciones SQL y las palabras claves SQL. Puede visualizar estas palabras reservadas en el Área de listas del editor de métodos.

Para cada campo, el área de información SQL indica sus atributos SQL (tipo y propiedades).



Ver también 

Propiedades de las tablas

 
PROPIEDADES 

Producto: 4D
Tema: Definir la estructura de la base de datos

 
HISTORIA 

 
ARTICLE USAGE

Manual de Diseño ( 4D v16)
Manual de Diseño ( 4D v16.1)
Manual de Diseño ( 4D v16.3)