Diferencia entre revisiones de «DEV AUXILIARES/OPCIONES»
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:

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>