Tipos de campos en Velneo V7

Después de ver los distintos tipos de tabla de que disponemos, vamos a ver en este artículo los distintos tipos de campos que tenemos a nuestra disposición en Velneo V7.

En Velneo V7 lo que programamos son objetos y subobjetos. Pues los campos son subobjetos del objeto tabla.

TIPOS DE CAMPOS EN VELNEO V7

Tipos de campos en Velneo V7

Debemos primeramente distinguir entre:

  • 1.- Campos enlazados a otras tablas
  • 2.- Campos sin enlazar a otras tablas

Campos enlazados a otras tablas

Si indicamos que el campo está enlazado, tendremos que definir en la propiedad “Tabla enlazada” la tabla con la cual queremos enlazar el campo. Podemos seleccionar tanto tablas de nuestro proyecto de datos como de otros proyectos de datos que estamos heredando.

Además, asumirán las propiedades del campo ID de la tabla enlazada.

Vamos a ver en detalle los distintos tipos de campos enlazados que podemos tener:

    • Maestro: Enlaza la tabla de datos actual mediante el campo a la tabla de datos maestra elegida en la propiedad Tabla enlazada en la Lista desplegable Identificador. Una tabla puede apuntarse a sí misma a través de un enlace de este tipo.
    • Estática: Enlaza la tabla de datos actual a una tabla estática.
    • Indirecto Real: Este enlace se utiliza para relacionar la tabla de datos actual con otra tabla que no es maestra de la actual y que se elige en la propiedad Tabla enlazada. Este enlace necesita ser resuelto manualmente por el diseñador; para ello se ha de usar un índice de clave única de la tabla a enlazar. Tiene persistencia en disco. Cada componente del índice ha de ser resuelto de manera individual.
    • Indirecto Virtual: Este enlace se utiliza para relacionar la tabla de datos actual con otra tabla que no es maestra de la actual y que se elige en la propiedad Tabla enlazada. Este enlace necesita ser resuelto manualmente por el diseñador; para ello se ha de usar un índice de clave única de la tabla a enlazar. Este enlace tiene persistencia en memoria. Es necesario que se resuelvan todos los componentes del índice

La diferencia entre un enlace indirecto real y uno indirecto virtual radica en que el primero ocupa espacio en disco y el segundo no, es decir, el real tiene persistencia en disco y el virtual en memoria. Además, tampoco podrán dispararse actualizaciones desde una tabla cuando el enlace indirecto es virtual.

  • Singular de plural por posición: Permite crear un enlace singular a una tabla histórica de la tabla actual, usando para ello uno de los enlaces plurales definidos en la tabla maestra y se resolverá la posición fija del histórico con el que se desea establecer dicho enlace.Si en la fórmula escribimos un 1 enlazaremos con el primer registro del histórico, si usamos la variable del sistema sysListSize enlazaremos con el último registro del histórico
  • Singular de plural por índice: Permite crear un enlace singular a una tabla histórica de la tabla actual, utilizando para su resolución el índice usado en el enlace plural que se seleccione. El programador únicamente tendrá que resolver aquellas partes del índice usado en enlace plural que no sean el campo enlazado a la tabla actual.El índice usado para resolver este tipo de enlace no es obligatorio que sea de clave única, aunque es requisito indispensable que devuelva un solo registro. De lo contrario no será funcional.Los valores posibles en la propiedad “Modo de buscar” son:- Igual: Se buscará el registro que tenga el mismo valor.
    Igual o mayor: Se buscará el registro que tenga el mismo valor o el posterior más próximo.
    Igual o menor: Se buscará el registro que tenga el mismo valor o el anterior más próximo.
    Mayor: Se busacará el registro con el valor mayor.
    Menor: Se busacará el registro con el valor menor.
    Primero: Se buscará el primer registro. Será lo mismo que usar un enlace singular de plural por posición, resolviendo la posición con 1.
    Último: Se buscará el último registro. Será lo mismo que usar un enlace singular de plural por posición, resolviendo la posición con la variable del sitema SysListSize.
  • Hermano Contiguo: Permite crear un enlace singular a un registro de la misma tabla. Este tipo de enlace es virtual, no ocupa espacio en disco. El índice para resolver este tipo de enlaces, debe ser de clave única.Los valores posibles en la propiedad “Dirección” son:- Anterior: Se enlazará con el registro anterior por el índice seleccionado.
    Siguiente: Se enlazará con el registro siguiente por el índice seleccionado.

Campos sin enlazar a otras tablas

Si no hemos definido el tipo de campo como enlazado, tenemos que indicar su tipo y propiedades:

  • Alfabético: dependiendo del tipo de información que vayamos a guardar en este campo, deberemos seleccionar un tipo u otro:- Alfa 256: incluye todos los caracteres de la tabla ANSI.
    Alfa 128: incluye letras mayúsculas, minúsculas, acentos, signos de puntuación y números.
    Alfa 64: incluye letras mayúsculas, signos de puntuación y números.
    Alfa 40: incluye letras mayúsculas, números, guión y espacio.
    Alfa Latin 1: incluye los 256 caracteres correspondientes a Unicode Latin 1 (ISO 8859-1).
    Alfa UTF 16: incluye todos los caracteres correspondientes a la tabla de caracteres Unicode (ISO 10646).Los tipos Alfa 128, Alfa 64 y Alfa 40 están optimizados en su uso del espacio en disco ya que empaquetan la información.
  • Numérico: El rango máximo del campo es 10 bytes. De esta configuración se ha de excluir el campo ID que tiene como rango máximo 4 bytes
  • Fecha: Permite introducir fechas con diversos formatos. El formato para introducir las fechas en las fórmulas es (yyyy-mm-dd).
  • Hora: Permite introducir horas en formato HH:MM:SS. No almacena milisegundos.
  • Tiempo: Permite introducir tiempos que son la unión de una fecha y una hora con el formato DD:MM:AA HH:MM:SS. Este tipo de campo también guarda la zona horaria.
  • Booleano: Es un campo lógico que permite definir el contenido como 1 ó 0 (Sí o No)
  • Objeto: Este tipo de campo se almacena en un contenedor aparte de los datos. El nombre de este fichero será el mismo de la tabla y con la extensión CND. El fichero de índices del contenedor tiene la extensión CNI. No se deben incluir en el contenedor objetos de más de 512 MbDibujo: Su contenido es un gráfico con cualquier resolución y número de colores. Se admite cualquier formato en la importación pero se almacena con compresión JPG al 100% de calidad.
    Texto: Su contenido es un texto de longitud variable. Se almacena en bloques de 512 bytes por lo que la unidad mínima de contenido es de ese tamaño.
    Texto enriquecido: Su contenido es un documento con formato que permite seleccionar fuentes, estilos, alineación, etc. El formato se define mediante tags.
    Binario: Su contenido será cualquier tipo de archivo que será almacenado en el contenedor en formato binario. La única forma de trabajar con este tipo de campo es vía proceso, con los comandos de instrucción Importar binario y Exportar binario, pues no existe un control específico para su edición. Este tipo de campo no puede ser idexado.
    Fórmula: Su contenido será una fórmula dinámica. Su contenido es una fórmula que se define en tiempo de ejecución, y por tanto puede ser definida por el usuario final. Se trata de la definición de la fórmula y no del cálculo de su valor efectivo. Hemos de definir la tabla enlazada de la que se alimentará la fórmula. Puede ser la tabla en curso u otra tabla. En tiempo de ejecución dispondremos del Asistente de fórmulas para su definición, teniendo acceso a través del mismo a los campos de la tabla enlazada, variables, constantes, etc. El rango máximo del campo es 65535 bytes (65535 caracteres).
  • Fórmula: Son campos virtuales que no ocupan espacio en disco. No es posible su uso en índices. Este tipo de campo no están recomendados para ser usados en rejillas ya que por cada registro se tiene que realizar una llamada al servidor para comprobar la fórmula.- Fórmula Numérica: Fórmula cuyo resultado será un dato numérico.
    Fórmula Alfabética: Fórmula cuyo resultado será una cadena alfabética Unicode
    Fórmula Fecha: Fórmula cuyo resultado será un dato tipo fecha
    Fórmula Tiempo: Fórmula cuyo resultado será un dato tipo tiempo (fecha y hora con milisegundos)Es importante indicar que los campos fórmula no disparan el recálculo de los contenidos iniciales.
  • Puntero Virtual: Su contenido es virtual ya que se trata de punteros de carácter virtual que no guardan información en disco. Necesitan ser calculados y solicitados al servidor en cada ocasión que se muestren o se usen. Si los mostramos en rejillas o en condiciones de activo o visible de objetos o controles (que fuerza el refresco y la solicitud de datos al servidor), el rendimiento puede verse afectado

Es importante señalar que no debemos modificar el identificador de un campo de una tabla que ya contenga datos ya que, si lo hacemos, se perderá el contenido del mismo al realizarse la regeneración de la tabla. En el caso de que queramos hacerlo, debemos hacer uso de un sub-objeto de tabla traspaso de campo.

Además es importante saber que los identificadores ID y NAME son palabras reservadas.

Fuente: Ayuda oficial de Velneo V7

 

Francisco José Vila Martín
ayudavelneo@ayudavelneo.com

Francisco José Vila es autor del blog Ayudavelneo desde donde ayuda a desarrolladores que se están iniciando en Velneo a acortar su curva de aprendizaje para que obtengan beneficios y sean rentables desde el minuto 1. Además es programador certificado y formador en la plataforma de desarrollo de aplicaciones empresariales Velneo V7. Ampliar información

No Comments

Post A Comment

Información básica sobre Protección de Datos: Responsable: Francisco José Vila Martín. Finalidad: Gestionar y moderar los comentarios. Legitimación: Tu consentimiento. Destinatarios: Tus datos se alojarán en los servidores de Web Empresa S.L. (UE). Derechos: Tienes derecho a acceder, rectificar, limitar y suprimir los datos, así como otros derechos, como se explica en la información adicional. Información adicional: Puedes consultar la información adicional y detallada sobre protección de datos personales en mi Política de Privacidad.

Pin It on Pinterest