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 80: Línea 80:


=Ejemplo=
=Ejemplo=
Este auxiliar corresponde a la pantalla FCCAB_PENDIENTES_APROBACION_Consulta, opción 01-REASIGNAR USUARIO:
<pre>
<TAG TIPO>SQL_APLICAR
<TAG CONREGISTROS>
<TAG REFRESCAR>
<COMANDO>
DECLARE @FUSUARIO VARCHAR(24)
SET @FUSUARIO = <SELECTVALUE>
<SELECT>
/* Usuarios que pueden aprobar... */
SELECT
Usuario = wflPASOS_FIRMAS.FUSUARIO
, Nombre = USUARIO.FNOMBRE
FROM wflPASOS, wflPASOS_FIRMAS, USUARIO WHERE
wflPASOS.FFAMILIA = 'FC'
AND wflPASOS.FCODIGO =
(
/* Paso mínimo con firmas... */
SELECT MIN(PASOMIN.FCODIGO) FROM wflPASOS PASOMIN WHERE
PASOMIN.FFAMILIA = wflPASOS.FFAMILIA
AND PASOMIN.FFIRMAS > 0
)
AND wflPASOS.FFIRMAS > 0
AND wflPASOS_FIRMAS.FFAMILIA = wflPASOS.FFAMILIA
AND wflPASOS_FIRMAS.FPASO = wflPASOS.FCODIGO
AND wflPASOS_FIRMAS.FACTIVO = 1
AND USUARIO.FCODIGO = wflPASOS_FIRMAS.FUSUARIO
AND
(
EXISTS (SELECT * FROM wflASIGNACION WHERE wflASIGNACION.FFAMILIA = wflPASOS.FFAMILIA AND wflASIGNACION.FUSUARIO = SYSTEM_USER AND wflASIGNACION.FACTIVO = 1)
OR EXISTS (SELECT * FROM wflPASOS_FIRMAS WHERE wflPASOS_FIRMAS.FFAMILIA = wflPASOS.FFAMILIA AND wflPASOS_FIRMAS.FPASO = wflPASOS.FCODIGO AND wflPASOS_FIRMAS.FUSUARIO = SYSTEM_USER AND wflPASOS_FIRMAS.FACTIVO = 1)
)
AND NOT EXISTS
(
SELECT X.* FROM wflFIRMASX X WHERE
X.FCOMPROBANTE = FBN(FCOMPROBANTE)
AND X.FUSUARIO = wflPASOS_FIRMAS.FUSUARIO
)
</SELECT>
UPDATE wflFIRMASX SET
FUSUARIO = @FUSUARIO
, FTS = getdate()
WHERE
FCOMPROBANTE = FBN(FCOMPROBANTE)
GO
</COMANDO>
</pre>


=Uso del auxiliar=
=Uso del auxiliar=

Revisión del 15:58 1 abr 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:

<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

Este auxiliar corresponde a la pantalla FCCAB_PENDIENTES_APROBACION_Consulta, opción 01-REASIGNAR USUARIO:

<TAG TIPO>SQL_APLICAR
<TAG CONREGISTROS>
<TAG REFRESCAR>
<COMANDO>
DECLARE @FUSUARIO VARCHAR(24)

SET @FUSUARIO = <SELECTVALUE>
<SELECT>
/* Usuarios que pueden aprobar... */

SELECT
Usuario = wflPASOS_FIRMAS.FUSUARIO
, Nombre = USUARIO.FNOMBRE
FROM wflPASOS, wflPASOS_FIRMAS, USUARIO WHERE
wflPASOS.FFAMILIA = 'FC'
AND wflPASOS.FCODIGO =
(
/* Paso mínimo con firmas... */

SELECT MIN(PASOMIN.FCODIGO) FROM wflPASOS PASOMIN WHERE
PASOMIN.FFAMILIA = wflPASOS.FFAMILIA
AND PASOMIN.FFIRMAS > 0
)
AND wflPASOS.FFIRMAS > 0
AND wflPASOS_FIRMAS.FFAMILIA = wflPASOS.FFAMILIA
AND wflPASOS_FIRMAS.FPASO = wflPASOS.FCODIGO
AND wflPASOS_FIRMAS.FACTIVO = 1
AND USUARIO.FCODIGO = wflPASOS_FIRMAS.FUSUARIO
AND
(
EXISTS (SELECT * FROM wflASIGNACION WHERE wflASIGNACION.FFAMILIA = wflPASOS.FFAMILIA AND wflASIGNACION.FUSUARIO = SYSTEM_USER AND wflASIGNACION.FACTIVO = 1)
OR EXISTS (SELECT * FROM wflPASOS_FIRMAS WHERE wflPASOS_FIRMAS.FFAMILIA = wflPASOS.FFAMILIA AND wflPASOS_FIRMAS.FPASO = wflPASOS.FCODIGO AND wflPASOS_FIRMAS.FUSUARIO = SYSTEM_USER AND wflPASOS_FIRMAS.FACTIVO = 1)
)
AND NOT EXISTS
(
SELECT X.* FROM wflFIRMASX X WHERE
X.FCOMPROBANTE = FBN(FCOMPROBANTE)
AND X.FUSUARIO = wflPASOS_FIRMAS.FUSUARIO
)
</SELECT>
UPDATE wflFIRMASX SET
FUSUARIO = @FUSUARIO
, FTS = getdate()
WHERE
FCOMPROBANTE = FBN(FCOMPROBANTE)
GO
</COMANDO>

Uso del auxiliar