Detalle
| Manual de Usuario | |
|---|---|
| Módulo | Inicio / Clientes |
| Formulario | frmDatosAdicionales_Tablas |
| Tipo | Configuración / ABM de campos |
| Versión del manual | 1.0 |
Introducción
La pantalla Campos definidos por el usuario permite ampliar las tablas del sistema (por ejemplo Clientes) con campos adicionales que no vienen de fábrica. Cada campo extra se define con un nombre, un tipo de dato, una categoría, una descripción y reglas de visibilidad/validación.
La configuración de cada tabla se guarda como un bloque XML (<configuration> con nodos <property>) en la columna Campos de la tabla DatosAdicionales_Tablas. Luego ese XML se interpreta en las distintas pantallas del sistema para mostrar los campos personalizados a través del control ucDatosAdicionalesView.
Acceso al módulo
Se accede desde el módulo de configuración asociado a Clientes / Datos adicionales. Al abrir el formulario se cargan automáticamente, en el combo Tabla, todas las tablas que tienen registro en DatosAdicionales_Tablas (método GetTablas()).
Pantalla principal
La ventana se compone de:
- Combo "Tabla" (
cboTabla): selecciona sobre qué tabla del sistema se definen los campos adicionales. - Grilla de campos (
GridControl1/DatosBindingSource): muestra los campos ya definidos para la tabla seleccionada. - Barra de botones: Agregar, Modificar y Resultado Final.
Al cambiar la tabla en el combo se recarga la grilla (Cargar_Grilla_Datos_Adicionales), leyendo el XML guardado y parseando cada nodo <property>.
Parámetros
Cada campo (nodo <property>) tiene los siguientes atributos:
| Atributo | Significado |
|---|---|
| name | Nombre del campo |
| value | Valor por defecto |
| data_type | Tipo de dato |
| category | Categoría/agrupación del campo |
| description | Descripción/ayuda |
| isreadonly | Solo lectura (sí/no) |
| isvisible | Visible (sí/no) |
| regexvalidation | Expresión regular de validación |
| options | Opciones (lista de valores, opcional) |
Estos atributos se editan en el formulario auxiliar frmDatosAdicionales_AddMod, que se abre al Agregar o Modificar.
Resultados
La grilla central lista los campos definidos para la tabla elegida, ordenados por categoría al guardar. Si la tabla no tiene campos configurados, la grilla queda vacía (Campos nulo o vacío).
Acciones disponibles
| Botón | Acción |
|---|---|
Agregar (btnAgregar) |
Abre frmDatosAdicionales_AddMod para crear un campo nuevo; al aceptar lo agrega al binding y reescribe el XML completo guardándolo con Save() |
Modificar (btnModificar) |
Edita el campo seleccionado (también con doble clic sobre la grilla); reescribe y guarda el XML |
Resultado Final (btnResultadoFinal) |
Abre una ventana de previsualización ("Resultado Final de Datos Adicionales") que renderiza los campos con el control ucDatosAdicionalesView, mostrando cómo se verán al cargarse en la pantalla destino |
Cada vez que se agrega o modifica, el formulario regenera todo el XML <configuration> recorriendo la lista ordenada por categoría y ejecuta un UPDATE sobre DatosAdicionales_Tablas.
Ejemplo práctico
- Abrir Campos definidos por el usuario.
- En el combo Tabla elegir
Clientes. - Presionar Agregar.
- Cargar: name =
Sucursal_Habitual, data_type = texto, category =Comercial, description = "Sucursal donde opera el cliente", isvisible = sí. - Aceptar. El campo aparece en la grilla y queda guardado en el XML de la tabla.
- Presionar Resultado Final para previsualizar cómo se mostrará el nuevo campo.
Consejos útiles
- Agrupá los campos con la misma categoría para que se muestren ordenados juntos (el sistema ordena por
categoryal guardar). - Usá regexvalidation para forzar formatos (CUIT, teléfono, etc.) y evitar cargas inconsistentes.
- Marcá como isreadonly los campos calculados o que no deben editarse manualmente.
- Antes de publicar cambios, usá Resultado Final para verificar la presentación.
Preguntas frecuentes
¿Dónde se guardan los campos personalizados?
En la tablaDatosAdicionales_Tablas, columna Campos, como un XML <configuration> con un nodo <property> por campo. La clave es la columna Tabla.
¿Qué tablas aparecen en el combo?
Las que ya tengan un registro enDatosAdicionales_Tablas (el combo se llena con SELECT Tabla FROM DatosAdicionales_Tablas).
¿Cómo valido el contenido de un campo?
Cargando una expresión regular en el atributoregexvalidation del campo.
¿Para qué sirve "Resultado Final"?
Para previsualizar, en una ventana aparte, cómo se verán los campos definidos cuando se carguen en la pantalla destino, usando el mismo control de presentación (ucDatosAdicionalesView).
Si modifico un campo, ¿se reescribe todo el XML?
Sí. Tanto Agregar como Modificar regeneran el bloque<configuration> completo y ejecutan un UPDATE sobre el registro de la tabla.
Permisos
El formulario frmDatosAdicionales_Tablas no realiza llamadas a IsAllowedObject(...) ni KeyLicences...Access(...); el acceso se controla a nivel del menú/módulo desde donde se invoca, no dentro del propio formulario.
Información técnica
Basada en el análisis del formulario real de la v14
Formularios principales
| Form | Rol |
|---|---|
| frmDatosAdicionales_Tablas | Pantalla principal: selección de tabla + grilla de campos |
| frmDatosAdicionales_AddMod | Alta/edición de un campo individual |
| ucDatosAdicionalesView | Control de previsualización ("Resultado Final") |
Permisos reales
| Permiso | Acción |
|---|---|
| (sin permiso interno) | El formulario no invoca IsAllowedObject; el control es por menú/módulo |
Tablas de base de datos principales
| Tabla | Uso |
|---|---|
| DatosAdicionales_Tablas | Almacena, por cada Tabla, el XML de campos en la columna Campos |
Managers y clases de negocio
| Componente | Detalle |
|---|---|
clsDatosAdicionales_Tablas (ClassVisualPlenarioNET\VPNET\Common_BL) |
Clase de negocio; lee/escribe la definición de campos como XML en la columna Campos. |
Stored Procedures y funciones
No usa Stored Procedures ni tabla relacional de campos: la definición se persiste como XML en DatosAdicionales_Tablas.Campos.
Relación con otros módulos / manuales
| Se conecta con | Cómo |
|---|---|
| Clientes / Entidades | Define campos definidos por el usuario que se cargan en la ficha del cliente y otras entidades. Ver ABM de Clientes. |
| Datos adicionales del medio de cobro | Concepto relacionado a nivel de medios de cobro. Ver Datos adicionales del cliente. |
Notas para soporte
- El formulario vive en
VisualPlenarioNET\CommonUI(proyecto VBVisualPlenarioNET). La clase de negocioclsDatosAdicionales_Tablasestá enClassVisualPlenarioNET\VPNET\Common_BL. - La definición de cada campo se persiste como XML en una sola columna; no hay tabla relacional de campos. Una corrupción del XML deja la grilla vacía y registra error en el log.
- El combo se llena con todas las filas de
DatosAdicionales_Tablas; para habilitar una tabla nueva debe existir previamente su fila.