Diferencia entre revisiones de «DEV CLASES/CAMPOS»

De Pragma Wiki
Ir a la navegación Ir a la búsqueda
 
(No se muestran 5 ediciones intermedias del mismo usuario)
Línea 93: Línea 93:
Por ejemplo, la siguiente pantalla corresponde a una factura de compras:
Por ejemplo, la siguiente pantalla corresponde a una factura de compras:


[[Archivo:20250321 1257 PANELES PANTALLA.png|miniaturadeimagen|izquierda|Paneles de una factura.]]
[[Archivo:20250321 1257 PANELES PANTALLA.png|miniaturadeimagen|no|Paneles de una factura.]]


*Los paneles 1.i y 1.d corresponden a '''main'''. Normalmente una clase va a definir un solo panel principal (1.i), pero si en algún campo de la clase agregamos el comando '''<BR>''' a '''Grupo''' el sistema va a abrir una segunda pestaña y los campos a partir de ése se mostrarán en la segunda pestaña (1.d).
*Los paneles 1.i y 1.d corresponden a '''main'''. Normalmente una clase va a definir un solo panel principal (1.i), pero si en algún campo de la clase agregamos el comando '''<BR>''' a '''Grupo''' el sistema va a abrir una segunda pestaña y los campos a partir de ése se mostrarán en la segunda pestaña (1.d).
*El panel '''p.1''' corresponde a la primer clase detalle excepto cuando hayamos indicado que hay campos que van al panel '''tab_first''' en cuyo caso el sistema abrirá una pestaña antes del primer detalle y mostrará los campos asociados a ese panel en él.
*El panel '''p.1''' corresponde a la primer clase detalle excepto cuando hayamos indicado que hay campos que van al panel '''tab_first''' en cuyo caso el sistema abrirá una pestaña antes del primer detalle y mostrará los campos asociados a ese panel en él.
*El panel '''p.2''' podría ser la pestaña de un segundo detalle, pero en este caso corresponde a campos asociados al panel '''tab_last''' que agrega una pestaña después del último detalle para mostrar esos datos.
*El panel '''comentarios''' corresponde a '''tab_comments'''.
*El panel '''total''' corresponde a '''total'''.
===Grupo===
El campo Grupo permite definir un título justo antes del campo en el que se define.
Por ejemplo, la pantalla de artículos muestra un título (Grupo) denominado '''Atributos''' que agrupa algunos campos:
[[Archivo:20250321 1654 GRUPOS EN PANTALLA ART.png|miniaturadeimagen|no|Un grupo en una pantalla.]]
La definición en esta tabla es:
[[Archivo:20250321 1656 DEFINICION GRUPO EN ART.png|miniaturadeimagen|no|Definición del grupo.]]


=Relaciones=
=Relaciones=

Revisión actual - 22:01 21 mar 2025

Descripción

La tabla prxcampos (Clases, campos) permite definir los campos que forman parte de una tabla.

Estructura

Identidad

Lista de campos

Columna Campo físico Campo lógico Atributo Descripción Etiquetas Definición Observaciones
1 Clase Clase prxclases Clases KEY,REQ,INS prxcampos Nombre de la clase a la que pertenece el campo.
2 Campo Campo VARCHAR(128) Caracteres de longitud variable hasta 128 caracter/es KEY,REQ,VIS,INS prxcampos Nombre físico del campo.
3 AtributoUDT AtributoUDT pUDT Tipos de datos definidos REQ,VIS,INS prxcampos Código de atributo del campo.
4 Clave Clave BIT Campo lógico, admite 1, 0 y NULL REQ,VIS,INS,UPD prxcampos Marcar para indicar que el campo es parte de la clave primaria.
5 DefineAtributo DefineAtributo BIT Campo lógico, admite 1, 0 y NULL REQ,VIS,INS,UPD prxcampos Marcar para que la clase se sume como un atributo disponible a otras clases.
6 Alias Alias BIT Campo lógico, admite 1, 0 y NULL REQ,VIS,INS,UPD prxcampos Marcar para indicar que se trata de un campo alias, y puede ser usado como un código alternativo a la clave primaria en la validación de los campos.
7 EditaEnINSERT EditaEnINSERT BIT Campo lógico, admite 1, 0 y NULL REQ,VIS,INS,UPD prxcampos Marcar para indicar que el campo es editable durante la inserción del registro.
8 EditaEnUPDATE EditaEnUPDATE BIT Campo lógico, admite 1, 0 y NULL REQ,VIS,INS,UPD prxcampos Marcar para indicar que el campo es editable durante la actualización del registro.
9 Requerido Requerido BIT Campo lógico, admite 1, 0 y NULL REQ,VIS,INS,UPD prxcampos Marcar para indicar que se trata de un campo cuyo valor es requerido y no puede dejarse en NULL.
10 RequeridoValor RequeridoValor VARCHAR(128) Caracteres de longitud variable hasta 128 caracter/es VIS,INS,UPD prxcampos El campo proporcionaría un valor para cuando agreguemos un nuevo campo cuyo valor es requerido pero no está en uso.
11 IndicaDefecto IndicaDefecto BIT Campo lógico, admite 1, 0 y NULL REQ,VIS,INS,UPD prxcampos Marcar para indicar que este campo indica un registro por defecto. La funcionalidad de este campo está siendo reemplazada por triggers y no debería ser usado.
12 Visible Visible BIT Campo lógico, admite 1, 0 y NULL REQ,VIS,INS,UPD prxcampos Marcar para indicar que el campo es visible en las pantallas del sistema.
13 Deprecado Deprecado BIT Campo lógico, admite 1, 0 y NULL REQ,VIS,INS,UPD prxcampos Marcar solamente si el campo se encuentra deprecado / obsoleto.
14 Grupo Grupo VARCHAR(128) Caracteres de longitud variable hasta 128 caracter/es VIS,INS,UPD prxcampos Permite definir un título para un grupo de campos.
15 Panel Panel pCAMPO_PANEL Panel en el que se muestra el campo REQ,VIS,INS,UPD prxcampos Permite definir en qué panel de la pantalla de edición se muestra el campo.
16 Indicaciones Indicaciones VARCHAR(256) Caracteres de longitud variable hasta 256 caracter/es VIS,INS,UPD prxcampos Indicaciones al usuario relacionadas con el campo, se muestran al pie de la pantalla de edición al ingresar en el campo.
17 ActualizaCascada ActualizaCascada BIT Campo lógico, admite 1, 0 y NULL REQ,VIS,INS,UPD prxcampos Indica si el campo actualiza en cascada con su atributo, no se usa y probablemente se elimine eventualmente.
18 EliminaCascada EliminaCascada BIT Campo lógico, admite 1, 0 y NULL REQ,VIS,INS,UPD prxcampos Indica si el campo elimina en cascada con su atributo, no se usa y probablemente se elimine eventualmente.
19 ValorPorDefecto ValorPorDefecto VARCHAR(128) Caracteres de longitud variable hasta 128 caracter/es VIS,INS,UPD prxcampos Indica un valor por defecto, solo se usa en las pantallas de edición y no se agrega a la base de datos como valor defecto.
20 CamposCalculados CamposCalculados VARCHAR(256) Caracteres de longitud variable hasta 256 caracter/es INS,UPD prxcampos Los campos calculados asociados a un atributo de tipo clase se graban en este campo, no es editable por el usuario ya que se graban en la pantalla de selección de campos.
21 Computo Computo VARCHAR(640) Caracteres de longitud variable hasta 640 caracter/es VIS,INS,UPD prxcampos Agregar el comando SQL si se trata de un campo calculado o computado.
22 Observaciones Observaciones VARCHAR(64) Caracteres de longitud variable hasta 64 caracter/es VIS,INS,UPD prxcampos Observaciones lbres sobre el campo.
23 NroColumna NroColumna prxcmplinea Número de linea autoincremental de Pragma. VIS, prxcampos Número de orden de la columna, asignado automáticamente por el sistema.

Observaciones adicionales sobre los campos

DefineAtributo

Los atributos posibles para asignar a los campos definidos en el sistema se encuantran en Tipos de datos definidos (pUDT), éstos se conforman por:

Para que una clase esté disponible como atributo debemos marcar este campo en el último campo clave de la clase.

Por ejemplo, si tenemos una clase llamada ARTICULO que define un campo clave llamado CODIGO que tiene un atributo VARCHAR(24) y marcamos el campo DefineAtributo entonces el sistema va a crear un atributo llamado ARTICULO con un atributo VARCHAR(24) que va a validar directamente en la tabla ARTICULO. Para clases con claves primarias compuestas (con más de un campo) tenemos que definir el atributo usando el último campo de la clave.

IndicaDefecto

Si necesitáramos definir que un registro dentro de una tabla es el registro por defecto (por ejemplo, una moneda en particular dentro de una lista de monedas) podríamos usar un campo llamado FDEFECTO de tipo BIT y marcar el registro en cuestión, desmarcando todos los demás registros.

Este era el procedimiento estándar, además marcando ese campo con IndicaDefecto indicando que ese campo marca un solo registro y todos los demás registros deberían estar desmarcados. Esta funcionalidad la proporciona el sistema al grabar, pero desde hace un tiempo la opción no se está usando más y en su lugar debería usarse un trigger que haga eso.

Panel

Las pantallas del sistema son todas iguales, solo que se completan según las definiciones de las clases que deben mostrarse. La pantalla completa tiene diferentes paneles y podemos indicar donde se ubica cada clase. Normalmente la clase master se va a ubicar arriba de todo, y los detalles se ubicarán cada uno en una pestaña.

Los paneles posibles son:

  • main: es el panel principal, arriba de todo.
  • property: iba a ser un panel de propiedades pero jamás se implementó. esta opción no debe usarse.
  • total: es el panel que muestra los totales, abajo a derecha.
  • comments: es el panel que muestra los comentarios, abajo a izquierda.
  • tab_first: sería la primer pestaña, agregada antes del primer detalle de la clase.
  • tab_last: sería la última pestaña, agregada después del último detalle de la clase.
  • tab_comments: sería una pestaña agregada al final pero no está en uso.

Por ejemplo, la siguiente pantalla corresponde a una factura de compras:

Paneles de una factura.
  • Los paneles 1.i y 1.d corresponden a main. Normalmente una clase va a definir un solo panel principal (1.i), pero si en algún campo de la clase agregamos el comando
    a Grupo el sistema va a abrir una segunda pestaña y los campos a partir de ése se mostrarán en la segunda pestaña (1.d).
  • El panel p.1 corresponde a la primer clase detalle excepto cuando hayamos indicado que hay campos que van al panel tab_first en cuyo caso el sistema abrirá una pestaña antes del primer detalle y mostrará los campos asociados a ese panel en él.
  • El panel p.2 podría ser la pestaña de un segundo detalle, pero en este caso corresponde a campos asociados al panel tab_last que agrega una pestaña después del último detalle para mostrar esos datos.
  • El panel comentarios corresponde a tab_comments.
  • El panel total corresponde a total.

Grupo

El campo Grupo permite definir un título justo antes del campo en el que se define.

Por ejemplo, la pantalla de artículos muestra un título (Grupo) denominado Atributos que agrupa algunos campos:

Un grupo en una pantalla.

La definición en esta tabla es:

Definición del grupo.

Relaciones

Triggers

prxcampos_TR_pUDT_UPDATE

Llama al procedimiento pUDT_REFRESCO_EXEC para refrescar los atributos de Tipos de datos primitivos (pPDT) y Tipos de datos definidos (pUDT).

Este trigger opera en INSERT y UPDATE.

prxcampos_TR_pUDT_DELETE

Llama al procedimiento pUDT_REFRESCO_EXEC para refrescar los atributos de Tipos de datos primitivos (pPDT) y Tipos de datos definidos (pUDT).

Este trigger opera en DELETE.