← Índice de manuales
Manual funcional · Sistema Plenario v14

Campos definidos por el usuario

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…

Módulo: Inicio / ClientesVersión: 1.0Actualizado: 2026-06-23

Campos definidos por el usuario

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

  1. Abrir Campos definidos por el usuario.
  2. En el combo Tabla elegir Clientes.
  3. Presionar Agregar.
  4. Cargar: name = Sucursal_Habitual, data_type = texto, category = Comercial, description = "Sucursal donde opera el cliente", isvisible = sí.
  5. Aceptar. El campo aparece en la grilla y queda guardado en el XML de la tabla.
  6. 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 category al 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 tabla DatosAdicionales_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 en DatosAdicionales_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 atributo regexvalidation 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 VB VisualPlenarioNET). La clase de negocio clsDatosAdicionales_Tablas está en ClassVisualPlenarioNET\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.
¿Te resultó útil este manual?