Tutor de tablas de extensión y extensiones de ficha
Última actualización
¿Te fue útil?
Última actualización
¿Te fue útil?
Las tablas de extensión y las extensiones de ficha son muy útiles para poder personalizar soluciones mediante la . Es decir, podemos "añadir" campos a tablas de soluciones heredadas sin modificar su estructura; es decir, toda la personalización se haría en la solución que hereda la solución a personalizar.
Ejemplo:
Creamos una solución que hereda , y en ella creamos tablas de extensión y extensiones de ficha para poder añadir campos a las tablas de vERP, sin modificarlas.
Velneo vTutor es una solución única, así que todo lo haremos en la misma solución, pero la operativa no cambia. Es la misma.
Lo objetos los encontrarás en:
Proyecto de datos:
En la carpeta Tablas/Tablas usadas para el tutor de tablas de extensión.
Proyecto de aplicación:
En la carpeta Tutores/Avanzados/Tablas de extensión y extensiones de ficha.
En vTutor existe una tabla de artículos (ART_M) que contiene los campos siguientes:
Campo
Nombre
Tipo
Longitud
ID
Código
Numérico
3
NAME
Nombre
Alfa128
35
IMG
Foto
Objeto dibujo
8
PDT_SRV
Pendiente de servir
Numérico
4
PRE
Precio
Numérico
4
Lo que queremos es extender la tabla de artículos, añadiendo dos campos más: Alto y Ancho e incluirlos en el formulario de artículos.
En el proyecto de datos creamos una nueva tabla, de tipo maestro de extensión:
El asistente nos pedirá la tabla de datos padre, seleccionaremos la tabla de artículos (ART_M).
Una vez finalizado el asistente, se creará una tabla con el identificador EXTENSIONES_DE_ARTICULOS con un único campo: ID. Es el campo enlazado a la tabla de artículos y, a su vez, el propio ID de la tabla, que serán siempre los mismos en las dos tablas. La extensión de ficha del artículo 2 tendrá ID 2.
Además, veremos que automáticamente nos ha creado también los enlaces a los plurales que tiene la tabla ART_M.
Hemos cambiado el identificador de la tabla por ART_M_EXT.
Y a la tabla le hemos añadido dos campos de tipo numérico de 3 bytes sin decimales:
ALT (Alto)
ANC (Ancho)
LAR (Largo)
Si ahora editamos la tabla de artículos, veremos que nos ha creado un puntero virtual a la tabla de extensión.
Hemos duplicado el formulario ART_M que ya teníamos y a la copia la hemos llamado ART_M_EXT.
Propiedad
Valor
Identificador
ART_M_EXT
Nombre
Extensión de artículos
Modo
Campo puntero *
Campo puntero
EXTENSION_ART_M_EXT
Tabla
ART_M_EXT
(*) Se resuelve con el campo puntero creado en la tabla ART_M cuando creamos la tabla de extensión.
Un punto donde suelen surgir muchas dudas es en las propiedades Alta ficha principal, Baja ficha principal y Modificación ficha principal, así que las explicaré una a una.
En esta propiedad se debe configurar cuándo se ha de dar de alta la ficha de extensión cuando se crea un nuevo artículo. Par ello debemos tener en cuenta que, para poder dar de alta la ficha de extensión ha de existir el artículo, si no se ha creado aún el artículo, no se podrá crear la ficha de extensión porque su ID estará vacío (recordemos que el ID de la ficha de extensión es el propio enlace al artículo).
Según la anterior, de este evento activaremos solamente la propiedad alta de ficha de extensión permitida.
En esta propiedad se debe configurar cuándo se ha de borrar la ficha de extensión. Esta debe ser borrada antes del borrado del artículo, ya que, si se borra antes el artículo, éste no se podrá borrar porque tiene una ficha de extensión.
Según lo anterior, en este evento activaremos las propiedades Previo a la operación principal y Baja ficha extensión permitida.
En esta propiedad se debe configurar cuándo se ha de modificar la ficha de extensión. Siempre es preferible hacerlo después de la modificación del artículo.
Según lo anterior, en este evento activaremos las propiedades Previo a la operación principal y Modificación ficha extensión permitida. También hemos activado la propiedad Alta de ficha de extensión permitida para que, si hemos dado de alta algún artículo y tenía ficha de extensión, podamos crearla.
En la propiedad Ficha de extensión seleccionamos la ficha de extensión que hemos creado en el formulario (ART_M_EXT). Una vez hecho esto, en la propiedad Campo ya tendremos acceso a los campos de la tabla de extensión, seleccionaremos el campo ALT (Alto).
Hacemos esto mismo con los otros dos campos.
Por último, hemos duplicado la rejilla de artículos añadiendo estos tres campos de la tabla de extensión.
Simplemente ejecutarlo y cargará la rejilla de artículos, juega a crear, modificar y borrar alguna ficha.
En el formulario ART_M_EXT Le hemos añadido un nuevo subobjeto de tipo con las siguientes propiedades:
Para cada campo de la tabla de extensión crearemos un control de tipo y otro de tipo . La explicación la haré con uno de los campos, pues la operativa es idéntica por cada campo.
En el formulario añadimos un control de tipo .
En el formulario añadimos un control de tipo .
En la propiedad Ficha de extensión seleccionamos la ficha de extensión que hemos creado en el formulario (ART_M_EXT). Una vez hecho esto, en la propiedad Contenido, si abrimos el veremos que al despegar los campos desplegará los de la ficha de extensión. Seleccionaremos el campo #ALT (Alto).