Diferencia entre revisiones de «DEV AUXILIARES/OPCIONES»

De Pragma Wiki
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Línea 2: Línea 2:
[[Category:MANUAL/DESARROLLADOR]]
[[Category:MANUAL/DESARROLLADOR]]
[[Category:DEV AUXILIARES]]
[[Category:DEV AUXILIARES]]
Los auxiliares de tipo '''OPCIONES''' permiten agregar opciones al menú local de cada pantalla:
Los auxiliares de tipo '''OPCIONES''' permiten agregar opciones al menú local de cada pantalla, por ejemplo:
 
Menú de opciones de una pantalla:


[[Archivo:20250331 1637 OPCIONES DE UNA PANTALLA.png|miniaturadeimagen|no|Opciones de una pantalla.]]
[[Archivo:20250331 1637 OPCIONES DE UNA PANTALLA.png|miniaturadeimagen|no|Opciones de una pantalla.]]
Línea 15: Línea 13:
Fueron agregadas con auxiliares de tipo '''OPCIONES'''.
Fueron agregadas con auxiliares de tipo '''OPCIONES'''.


crear una evaluación sobre tablas del sistema. Por ejemplo, para determinar si un artículo se encuentra activo.  
Existen dos tipos de opciones:
*SQL_APLICAR: Aplica una sentencia SQL.
*SQL_SELECCIONAR: Sentencia SQL que muestra un resultado.


Las evaluaciones se usan en las pantallas de edición de datos.
Las '''OPCIONES''' permiten agregar funcionalidad de una manera muy rápida.
 
Las evaluaciones deben ser suscriptas por otras tablas del sistema cuyo atributo sea igual al de la definición (por ejemplo, si un artículo de tipo ART define una evaluación, ésta puede ser suscripta en cualquier tabla que tenga un atributo de tipo ART). Las evaluaciones no aplican automáticamente ya que distintas evaluaciones pueden tener sentido dentro de determinadas tablas.
 
Las evaluaciones son muy convenientes ya que el SQL de verificación puede cambiar en el tiempo sin la necesidad de hacer ningún otro tipo de ajuste en la aplicación.


Este tipo de auxiliar aplica a:
Este tipo de auxiliar aplica a:
*[[DEV CLASES|Clases (prxclases)]].
*[[DEV CLASES|Clases (prxclases)]].
*[[DEV CONSULTAS|Consultas (prxconsultas)]].


=Modo de operación=
=Modo de operación=
Cuando estamos en una pantalla de edición, e ingresamos un valor correspondiente a un dato que valida sobre una tabla, el sistema verifica la existencia de ese registro. Si no existe retorna un error, si existe entre otras cosas ejecuta las evaluaciones definidas. Esto lo hace teniendo los datos del registro que se está validando en memoria:
Cuando estamos en una pantalla y picamos sobre el botón de opciones la opción '''Opciones de la clase''' verificará si existen auxiliares de tipo '''OPCIONES''', si los hay los agregará al menú.
*Si estamos evaluando el estado de un artículo el código que ingresamos en la pantalla de edición será el de un artículo.
 
*Previo a aplicar la evaluación el sistema carga en memoria ese registro de la tabla de artículos para tener acceso a todos sus datos.
Cada opción puede tener condiciones según las cuales se encuentre habilitada o deshabilitada.
 
Picar sobre alguna de las opciones la ejecutará directamente.


=Etiquetas=
=Etiquetas=
Las etiquetas en uso son:
Las etiquetas en uso son:


===<MENSAJE>===
*SQL_APLICAR: Aplica una sentencia SQL.
Permite definir un mensaje para retornar al usuario.
*SQL_SELECCIONAR: Sentencia SQL que muestra un resultado.
 
Cierra con </MENSAJE>.
 
===<SELECT>===
Permite definir el SQL que hace la evaluación, este SQL pude ser tan complejo y extenso como se necesite y puede consultar cualquier objeto presente en el sistema.
 
El valor de retorno debe ser de tipo [[BIT|BIT]].
 
Cierra con </SELECT>.


===<TAG TIPO>===
===<TAG TIPO>===
Permite dos valores:
Indica de qué tipo es la opción:
*ADVERTENCIA: Retorna un mensaje de advertencia.  
*SQL_APLICAR: Aplica una sentencia SQL.
*ERROR: Retorna un mensaje de error.
*SQL_SELECCIONAR: Ejecuta una sentencia SQL que muestra un resultado.


En la operación del sistema:
No tiene etiqueta de cierre.
*Ambos tipos retornan una pantalla indicando el tipo de situación y la leyenda asociada.
*Los mensajes de advertencia permiten continuar con el ingreso de datos.
*Los mensajes de error no permiten seguir con el ingreso de datos hasta resolver la situación a la que refiere el mensaje.


No tiene etiqueta de cierre, la sintaxis es:
===<COMANDO>===
<pre>
Permite definir el comando a aplicar, el comando depende principalmente del tipo (descripto en la etiqueta anterior).
<TAG TIPO>ADVERTENCIA
</pre>


O:
El comando puede ser cualquier SQL válido, sin limitaciones en su complejidad o tamaño.


<pre>
Cierra con </COMANDO>.
<TAG TIPO>ERROR
</pre>


=Ejemplo=
===<CONDICION>===
Existe una evaluación sobre la tabla de artículos (ART) que verifica que el artículo esté activo, en pantalla se ve de la siguiente manera:
Permite definir una condición para activar la opción. Si ésta retorna verdadero la opción está habilitada, si retorna falso la opción está deshabilitada.


[[Archivo:20250331 1600 DEFINIR UNA EVALUACION.png|miniaturadeimagen|no|Definición de una evaluación:]]
Cierra con </CONDICION>


Internamente se guarda de la siguiente manera:
===<CONFIRMA>===
Permite indicar un mensaje de confirmación, solo si retornamos Ok se ejecutará la opción.


<pre>
Cierra con </CONFIRMA>.
<TAG TIPO>ERROR
<SELECT>
SELECT FBN(FACTIVO)
</SELECT>
<MENSAJE>
El artículo ha sido marcado como no activo y no debería usarse, consulte con quienes administran los artículos para mayor información.
</MENSAJE>
</pre>


La etiqueta '''<TAG TIPO>''' indica que es un mensaje de error.
===<SELECT>===
Si el comando necesita operar sobre un valor en particular, por ejemplo:
*En una hipotética opción '''Asignar a usuario''' necesitamos asignar a un usuario en particular.
*Dentro de la etiqueta <SELECT> pondríamos los comandos necesarios para seleccionar ese usuario.


Los comandos dentro del '''<SELECT>''' y '''</SELECT>''' operan en este caso directamente sobre la tabla ART retornando el valor del campo FACTIVO (El comando FBN, FieldByName retorna el valor del campo cuyo nombre se indica dentro de los paréntesis). El comando podría ser cualquier otra cosa, por ejemplo:
Cierra con </SELECT>.


<pre>
===<TAG CONREGISTROS>===
SELECT RESULTADO = CASE WHEN EXISTS (SELECT * FROM ART WHERE FCODIGO = 'LBEN' AND FACTIVO = 1) THEN 1 ELSE 0 END
Habilita la opción solo cuando hay registros.
</pre>


=Uso del auxiliar=
===<TAG QUITARCOMILLAS>===
Este auxiliar define las evaluaciones, éstas deben ser posteriormente suscriptas por campos definidos en el sistema.
Quita las comillas al comando.


Por ejemplo, si definimos un auxiliar que evalúa si un artículo está activo podemos usarlo desde cualquier clase (tabla) que define un campo de tipo artículo.
===<TAG REFRESCAR>===
Refresca la consulta al aplicar la opción. Esta opción es particularmente útil cuando estamos consultando datos que se modifican una vez que ejecutamos una opción, por ejemplo, aprobar un comprobante.


Para suscribir la evaluación tenemos que ir a la definición del campo y seleccionar las opciones picando en el botón cuyo texto es "AtributoUDT"::
===<TAG SEPARADOR>===
Agrega un separador al menú antes de la opción.


[[Archivo:20250331 1607 SUSCRIBIR UNA EVALUACION.png|miniaturadeimagen|no|Seleccionar la opción de suscribir evaluación.]]
===<TAG SERVICIOWEB>===
Debe llamar a un servicio web.


Una vez seleccionada la opción de suscribir evaluaciones veremos la lista de evaluaciones asociadas a ese atributo donde podremos seleccionar las que necesitemos.
=Ejemplo=


[[Archivo:20250331 1609 SUSCRIBIR UNA EVALUACION II.png|miniaturadeimagen|no|Suscripción de evaluaciones.]]
=Uso del auxiliar=
 
Cada vez que ingresemos un código de artículo en la tabla que suscribe, al salir del campo el sistema va a cargar el registro correspondiente al valor ingresado y aplicará las evaluaciones suscriptas. La operación del sistema seguirá según el resultado de esa evaluación.

Revisión del 21:55 31 mar 2025

Descripción

Los auxiliares de tipo OPCIONES permiten agregar opciones al menú local de cada pantalla, por ejemplo:

Opciones de una pantalla.

Las opciones:

  • Aprobar.
  • Cambiar fecha de pago y aprobar.
  • Cambiar fecha de pago sin aprobar.

Fueron agregadas con auxiliares de tipo OPCIONES.

Existen dos tipos de opciones:

  • SQL_APLICAR: Aplica una sentencia SQL.
  • SQL_SELECCIONAR: Sentencia SQL que muestra un resultado.

Las OPCIONES permiten agregar funcionalidad de una manera muy rápida.

Este tipo de auxiliar aplica a:

Modo de operación

Cuando estamos en una pantalla y picamos sobre el botón de opciones la opción Opciones de la clase verificará si existen auxiliares de tipo OPCIONES, si los hay los agregará al menú.

Cada opción puede tener condiciones según las cuales se encuentre habilitada o deshabilitada.

Picar sobre alguna de las opciones la ejecutará directamente.

Etiquetas

Las etiquetas en uso son:

  • SQL_APLICAR: Aplica una sentencia SQL.
  • SQL_SELECCIONAR: Sentencia SQL que muestra un resultado.

<TAG TIPO>

Indica de qué tipo es la opción:

  • SQL_APLICAR: Aplica una sentencia SQL.
  • SQL_SELECCIONAR: Ejecuta una sentencia SQL que muestra un resultado.

No tiene etiqueta de cierre.

<COMANDO>

Permite definir el comando a aplicar, el comando depende principalmente del tipo (descripto en la etiqueta anterior).

El comando puede ser cualquier SQL válido, sin limitaciones en su complejidad o tamaño.

Cierra con </COMANDO>.

<CONDICION>

Permite definir una condición para activar la opción. Si ésta retorna verdadero la opción está habilitada, si retorna falso la opción está deshabilitada.

Cierra con </CONDICION>

<CONFIRMA>

Permite indicar un mensaje de confirmación, solo si retornamos Ok se ejecutará la opción.

Cierra con </CONFIRMA>.

<SELECT>

Si el comando necesita operar sobre un valor en particular, por ejemplo:

  • En una hipotética opción Asignar a usuario necesitamos asignar a un usuario en particular.
  • Dentro de la etiqueta <SELECT> pondríamos los comandos necesarios para seleccionar ese usuario.

Cierra con </SELECT>.

<TAG CONREGISTROS>

Habilita la opción solo cuando hay registros.

<TAG QUITARCOMILLAS>

Quita las comillas al comando.

<TAG REFRESCAR>

Refresca la consulta al aplicar la opción. Esta opción es particularmente útil cuando estamos consultando datos que se modifican una vez que ejecutamos una opción, por ejemplo, aprobar un comprobante.

<TAG SEPARADOR>

Agrega un separador al menú antes de la opción.

<TAG SERVICIOWEB>

Debe llamar a un servicio web.

Ejemplo

Uso del auxiliar