Diferencia entre revisiones de «Categoría:DEV AUXILIARES»

De Pragma Wiki
Ir a la navegación Ir a la búsqueda
 
(No se muestran 38 ediciones intermedias del mismo usuario)
Línea 2: Línea 2:
[[Category:MANUAL/DESARROLLADOR]]
[[Category:MANUAL/DESARROLLADOR]]
[[Archivo:20250318 1539 pAUX.png|miniaturadeimagen|izquierda|Diagrama de auxiliares.]]
[[Archivo:20250318 1539 pAUX.png|miniaturadeimagen|izquierda|Diagrama de auxiliares.]]
Los auxiliares permiten agregar funcionalidad a las clases (tablas) y a los campos. En este artículo se describe cómo definir auxiliares, la definición de cada auxiliar en particular se define más adelante.
Los auxiliares permiten agregar funcionalidad a las clases (tablas) y a los campos.  
 
En este artículo se describe cómo definir auxiliares, la definición de cada auxiliar en particular se define más adelante.


===Auxiliares que aplican a las clases===
===Auxiliares que aplican a las clases===
*'''EVALUACION''': Evaluaciones de clases, definición.
Los siguientes auxiliares aplican exclusivamente a las clases (o tablas):
*'''OPCIONES''': Opciones de objetos.
*[[DEV AUXILIARES/EVALUACION|EVALUACION]]: Evaluaciones de clases, definición.
*'''ORIGEN''': Orígen de datos.
*[[DEV AUXILIARES/OPCIONES|OPCIONES]]: Opciones de objetos.
*'''POST_CONDICION''': Condiciones de posteo de clases.
*[[DEV AUXILIARES/ORIGEN|ORIGEN]]: Origen de datos.
*'''POST_EVENTO''': Evento de posteo de una clase.
*[[DEV AUXILIARES/POST_CONDICION|POST_CONDICION]]: Condiciones de posteo de clases.
*'''PRINT''': Impresión de clases.
*[[DEV AUXILIARES/PRINT|PRINT]]: Impresión de clases.
*'''SELECCION_CRITERIOS''': SQL para seleccionar criterios múltiples en consultas.
*[[DEV AUXILIARES/SELECCION_CRITERIOS|SELECCION_CRITERIOS]]: SQL para seleccionar criterios múltiples en consultas.
*'''SUBTOTAL''': Subtotales desde detalles en edición de clases.
*[[DEV AUXILIARES/SUBTOTAL|SUBTOTAL]]: Subtotales desde detalles en edición de clases.


===Auxiliares que aplican a campos o a argumentos de consultas===
===Auxiliares que aplican a campos o a argumentos de consultas===
*'''ASIGNACION''': Asignación de valores.
Los siguientes auxiliares aplican a los campos o argumentos de consultas:
*'''CONDICION_EDICION''': Condición edición de campos.
*[[DEV AUXILIARES/ASIGNACION|ASIGNACION]]: Asignación de valores.
*'''CONSTRAINT''': Constricciones de campos.
*[[DEV AUXILIARES/CONDICION_EDICION|CONDICION_EDICION]]: Condición edición de campos.
*[[DEV AUXILIARES/CONSTRAINT|CONSTRAINT]]: Constricciones de campos.
*[[DEV AUXILIARES/EVENTO_CAMPO|EVENTO_CAMPO]]: Eventos de campos.
*[[DEV AUXILIARES/SELECT_F5|SELECT_F5]]: Selección F5 de campos.
 
===Auxiliares obsoletos===
El siguiente auxiliar, que aplica sobre clases no debería ser usado. Las definiciones en uso son casi de prueba y sin efectos en el sistema:
*[[DEV AUXILIARES/POST_EVENTO|POST_EVENTO]]: Evento de posteo de una clase.
En su lugar deberían usarse triggers.
 
Los siguientes auxiliares, que debían aplicar sobre campos y argumentos de consultas, jamás se usaron ni se usarán y no se documentan:
*'''EVALUACIONS''': Evaluaciones de clases, suscripción.
*'''EVALUACIONS''': Evaluaciones de clases, suscripción.
*'''EVENTO_CAMPO''': Eventos de campos.
*'''ONEXIT''': Evento ONEXIT de un campo.
*'''ONEXIT''': Evento ONEXIT de un campo.
*'''SELECT_F5''': Selección F5 de campos.


=Tablas requeridas para definir los tipos de auxiliares=
=Tablas requeridas para definir los tipos de auxiliares=
Línea 32: Línea 42:
=Tablas requeridas para definir auxiliares=
=Tablas requeridas para definir auxiliares=
Finalmente pueden definirse los auxiliares usando:
Finalmente pueden definirse los auxiliares usando:
*La tabla [[DEV AUXILIARES|Auxiliares de objetos (pAUX) (pAUX)]] define los auxiliares que se aplican a las clases, campos y argumentos de consultas.
*La tabla [[DEV AUXILIARES|Auxiliares de objetos (pAUX)]] define los auxiliares que se aplican a las clases, campos y argumentos de consultas.
*La tabla [[DEV AUXILIARES/DETALLE|Auxiliares de objetos, detalle (pAUXD)]] define los comandos del auxiliar.
*La tabla [[DEV AUXILIARES/DETALLE|Auxiliares de objetos, detalle (pAUXD)]] define los comandos del auxiliar.
*La tabla [[DEV AUXILIARES/SUSCRIPCION EVALUACIONES|Auxiliares de campos, suscripción a evaluaciones (pAUX_EVALUACIONS)]] permite suscribir evaluaciones.
*La tabla [[DEV AUXILIARES/SUSCRIPCION EVALUACIONES|Auxiliares de campos, suscripción a evaluaciones (pAUX_EVALUACIONS)]] permite suscribir evaluaciones.
=Consultas relacionadas con los auxiliares=
Existen muchos auxiliares en el sistema.
Además de las explicaciones de esta sección a veces el mejor ejemplo es consultar casos de aplicación real.
Para eso están las siguientes consultas.
*[[DEV AUXILIARES/CONSULTA AUXILIARES|Auxiliares, consulta (pAUX_CONSULTA)]] permite ver los auxiliares definidos para un tipo en particular.
*[[DEV AUXILIARES/CONSULTA AUXILIARES DETALLE|Auxiliares, consulta detalle (pAUXD_CONSULTA)]] permite ver los comandos de un auxiliar en particular, tiene una relación desde la consulta anterior para simplificar el acceso.
=Cómo asociar auxiliares a los objetos del sistema=
Los auxiliares finalmente se definen en los objetos del sistema, los objetos posibles son:
*[[DEV CLASES|Clases (prxclases)]].
*[[DEV CLASES/CAMPOS|Campos de clases (prxcampos)]].
*[[DEV CONSULTAS/ARGUMENTOS|Argumentos de consultas (prxconsultasA)]].
===Asociar un auxiliar a una clase===
Estando en cualquier clase, por ejemplo [[ASIENTOS CONTABLES/DETALLES]], desde el menú de opciones:
[[Archivo:20250404 1110 ASOCIAR AUXILIAR A CLASE.png|miniaturadeimagen|no|Definir auxiliares en una clase.]]
===Asociar un auxiliar a un campo de una clase===
Estando en algún campo de cualquier clase, por ejemplo [[ASIENTOS CONTABLES/DETALLES]], desde el menú de opciones del campo:
[[Archivo:20250404 1113 ASOCIAR AUXILIAR A CAMPO.png|miniaturadeimagen|no|Asociar un auxiliar a un campo de una clase.]]
===Asociar un auxiliar a un argumento de una consulta===
Por ejemplo, en cualquier argumento de la consulta [[VALORES CAJA/CONSULTA PENDIENTES ASIGNACION]], desde el menú de opciones del argumento:
[[Archivo:20250404 1117 ASOCIAR AUXILIAR A ARGUMENTO.png|miniaturadeimagen|no|Asociar un auxiliar a un argumento.]]
===Lista de auxiliares de cada uno de estos objetos===
Cuando seleccionamos cualquiera de las opciones recién mencionadas se abrirá una pantalla que muestra los auxiliares asociados a cada objeto, por ejemplo:
[[Archivo:20250404 1124 LISTA DE AUXILIARES DE UN OBJETO.png|miniaturadeimagen|no|Lista de auxiliares de un objeto.]]
Esta pantalla tiene las mismas opciones de navegación y de edición que cualquier otra pantalla.
===Detalles de un auxiliar en un objeto===
La pantalla para agregar un auxiliar es la misma para todos los objetos y todos los auxiliares:
[[Archivo:20250404 1127 UN AUXLIAR EN UN OBJETO.png|miniaturadeimagen|no|Datos de un auxiliar en un objeto.]]
*En el campo '''Tipo''' ingresamos el tipo de auxiliar.
*En el campo '''Codigo''' ingresamos el código, solo si el auxiliar lo admite (hay auxiliares que no permiten más de un registro por objeto, por ejemplo, las asignaciones. En estos casos el código se completa automáticamente y no permite su edición).
*En el campo '''Descripcion''' ingresamos la descripción del auxiliar.
*En el campo '''Activo''' indicamos si el auxiliar se encuentra activo, solo si lo está se ejecuta. Sino no se ejecuta.
En el panel tipo memo ponemos todos los comandos, si presionamos F5 podremos ver una lista de etiquetas válidas para el tipo de auxiliar que estamos editando y seleccionar el que necesitemos.


=Runtime=
=Runtime=
Todos los cambios hechos a los auxiliares se reflejan de inmediato en una vista denominada '''pAUX_RUNTIME_VISTA'''. Por un tema de performance el sistema usa una tabla denominada '''pAUX_RUNTIME_TABLA'''. El refresco de esta tabla se hace dentro de la aplicación sin que el desarrollador deba participar. Ante la situación de que esa tabla no se haya refrescado (por ejemplo, si se ingresaron auxiliares 'por afuera') la rutina que debe ejecutarse es:
Todos los cambios hechos a los auxiliares se reflejan de inmediato en una vista denominada '''pAUX_RUNTIME_VISTA'''.  
 
Por un tema de performance esa vista se vuelca en una tabla denominada '''[[DEV AUXILIARES/RUNTIME|Auxiliares de objetos, tabla de runtime (pAUX_RUNTIME_TABLA)]]'''.  
<!--
*La tabla se describe en [[DEV AUXILIARES/RUNTIME|Auxiliares de objetos, tabla de runtime (pAUX_RUNTIME_TABLA)]].
-->
 
El refresco de esta tabla se hace dentro de la aplicación sin que el desarrollador deba participar. Ante la situación de que esa tabla no se haya refrescado (por ejemplo, si se ingresaron auxiliares 'por afuera') la rutina que debe ejecutarse es:


<pre>
<pre>

Revisión actual - 16:35 4 abr 2025

Introducción

Diagrama de auxiliares.

Los auxiliares permiten agregar funcionalidad a las clases (tablas) y a los campos.

En este artículo se describe cómo definir auxiliares, la definición de cada auxiliar en particular se define más adelante.

Auxiliares que aplican a las clases

Los siguientes auxiliares aplican exclusivamente a las clases (o tablas):

Auxiliares que aplican a campos o a argumentos de consultas

Los siguientes auxiliares aplican a los campos o argumentos de consultas:

Auxiliares obsoletos

El siguiente auxiliar, que aplica sobre clases no debería ser usado. Las definiciones en uso son casi de prueba y sin efectos en el sistema:

En su lugar deberían usarse triggers.

Los siguientes auxiliares, que debían aplicar sobre campos y argumentos de consultas, jamás se usaron ni se usarán y no se documentan:

  • EVALUACIONS: Evaluaciones de clases, suscripción.
  • ONEXIT: Evento ONEXIT de un campo.

Tablas requeridas para definir los tipos de auxiliares

Antes de definir auxiliares deben definirse los tipos, las tablas son:

Tablas requeridas para definir auxiliares

Finalmente pueden definirse los auxiliares usando:

Consultas relacionadas con los auxiliares

Existen muchos auxiliares en el sistema.

Además de las explicaciones de esta sección a veces el mejor ejemplo es consultar casos de aplicación real.

Para eso están las siguientes consultas.

Cómo asociar auxiliares a los objetos del sistema

Los auxiliares finalmente se definen en los objetos del sistema, los objetos posibles son:

Asociar un auxiliar a una clase

Estando en cualquier clase, por ejemplo ASIENTOS CONTABLES/DETALLES, desde el menú de opciones:

Definir auxiliares en una clase.

Asociar un auxiliar a un campo de una clase

Estando en algún campo de cualquier clase, por ejemplo ASIENTOS CONTABLES/DETALLES, desde el menú de opciones del campo:

Asociar un auxiliar a un campo de una clase.

Asociar un auxiliar a un argumento de una consulta

Por ejemplo, en cualquier argumento de la consulta VALORES CAJA/CONSULTA PENDIENTES ASIGNACION, desde el menú de opciones del argumento:

Asociar un auxiliar a un argumento.

Lista de auxiliares de cada uno de estos objetos

Cuando seleccionamos cualquiera de las opciones recién mencionadas se abrirá una pantalla que muestra los auxiliares asociados a cada objeto, por ejemplo:

Lista de auxiliares de un objeto.

Esta pantalla tiene las mismas opciones de navegación y de edición que cualquier otra pantalla.

Detalles de un auxiliar en un objeto

La pantalla para agregar un auxiliar es la misma para todos los objetos y todos los auxiliares:

Datos de un auxiliar en un objeto.
  • En el campo Tipo ingresamos el tipo de auxiliar.
  • En el campo Codigo ingresamos el código, solo si el auxiliar lo admite (hay auxiliares que no permiten más de un registro por objeto, por ejemplo, las asignaciones. En estos casos el código se completa automáticamente y no permite su edición).
  • En el campo Descripcion ingresamos la descripción del auxiliar.
  • En el campo Activo indicamos si el auxiliar se encuentra activo, solo si lo está se ejecuta. Sino no se ejecuta.

En el panel tipo memo ponemos todos los comandos, si presionamos F5 podremos ver una lista de etiquetas válidas para el tipo de auxiliar que estamos editando y seleccionar el que necesitemos.

Runtime

Todos los cambios hechos a los auxiliares se reflejan de inmediato en una vista denominada pAUX_RUNTIME_VISTA.

Por un tema de performance esa vista se vuelca en una tabla denominada Auxiliares de objetos, tabla de runtime (pAUX_RUNTIME_TABLA).

El refresco de esta tabla se hace dentro de la aplicación sin que el desarrollador deba participar. Ante la situación de que esa tabla no se haya refrescado (por ejemplo, si se ingresaron auxiliares 'por afuera') la rutina que debe ejecutarse es:

DELETE FROM pAUX_RUNTIME_TABLA
GO
INSERT INTO pAUX_RUNTIME_TABLA
(
FOBJETO
, FCLASE
, FCAMPO
, FTIPO
, FCODIGO
, FLINEA
, FANCESTRO
, FDESCRIPCION
, FCOMANDO
)
SELECT
pAUX_RUNTIME_VISTA.FOBJETO
, pAUX_RUNTIME_VISTA.FCLASE
, pAUX_RUNTIME_VISTA.FCAMPO
, pAUX_RUNTIME_VISTA.FTIPO
, pAUX_RUNTIME_VISTA.FCODIGO
, pAUX_RUNTIME_VISTA.FLINEA
, pAUX_RUNTIME_VISTA.FANCESTRO
, pAUX_RUNTIME_VISTA.FDESCRIPCION
, pAUX_RUNTIME_VISTA.FCOMANDO
FROM pAUX_RUNTIME_VISTA
GO
GRANT SELECT, INSERT, UPDATE, DELETE ON pAUX_RUNTIME_TABLA TO public
GO