DEV AUXILIARES/SELECCION CRITERIOS
Descripción
Los auxiliares de tipo SELECCION_CRITERIOS permiten definir criterios adicionales a las Consultas, más fácil usar un ejemplo.
Ejemplo
La consulta CUENTA_SALDOS_Consulta (ver Cuentas contables, saldos por rango de cuentas (CUENTA_SALDOS_Consulta)) permite consultar los saldos de cuentas contables:

Sus criterios son:
Columna | Campo físico | Campo lógico | Atributo | Descripción | Etiquetas | Observaciones |
---|---|---|---|---|---|---|
1 | CuentaDesde | CuentaDesde | CUENTA | Cuentas contables, saldos por rango de cuentas | REQ | Cuenta inicial. |
2 | CuentaHasta | CuentaHasta | CUENTA | Cuentas contables, saldos por rango de cuentas | REQ | Cuenta final. |
3 | FechaDesde | FechaDesde | DATETIME | Fecha y hora. | REQ | Fecha para el saldo inicial. |
4 | FechaHasta | FechaHasta | DATETIME | Fecha y hora. | REQ | Fecha para el saldo final. |
Si necesitáramos filtrar por sectores eligiendo uno o más de ellos no podríamos hacerlo ya que la definición de argumentos de consultas (ver Consultas, argumentos (prxconsultasA)) no permite definir una lista variable para el mismo argumento.
El auxiliar descripto en este artículo resuelve esa situación permitiendo definir una sentencia SQL que traiga una lista de registros, por ejemplo, lista de sectores de la empresa. Y posteriormente marcarlos para indicar cuáles hemos seleccionado. Esta funcionalidad se completa modificando el SQL de la consulta para que permita usar este nuevo argumento.
Ingreso de criterios
Al definir un auxiliar de este tipo veremos una opción en el menú llamada "Definir criterios" como se ve justo abajo:

Al seleccionar esa opción se abrirá una pantalla como la de abajo en la que podemos marcar qué sectores queremos consultar:

SELECT * FROM pCONSULTA_CRITERIOS WHERE FGUID = '{1A2F93C7-0490-4A92-B436-5CE2CBD1D946}'
Por defecto, el generador de reportes embebido en la aplicación accede a los datos de la tabla de la pantalla que se está consultando. Pero en ocasiones se requieren más datos que los disponibles en esa estructura por lo que podemos definir un auxiliar que proporciona una sentencia SQL que traerá el resultado que queremos usar de base para el reporte.
Este tipo de auxiliar aplica a:
Modo de operación
Ante una solitud de impresión el sistema automáticamente verifica la existencia de un auxiliar de este tipo.
No se requiere ninguna participación del usuario.
Etiquetas
Este auxiliar no define ninguna etiqueta, directamente registramos el comando SQL.
Ejemplo
Este auxiliar xxxxxxxxxxx
<COMANDO> SELECT FCLAVE = '[' + SECTOR.FCODIGO + ']' + '[' + SECTOR.FDESCRIPCION + ']' , FCHECKED = CASE WHEN EXISTS (SELECT * FROM pCONSULTA_CRITERIOS WHERE pCONSULTA_CRITERIOS.FGUID = FBN(GUID) AND pCONSULTA_CRITERIOS.FCLAVE = '[' + SECTOR.FCODIGO + ']' + '[' + SECTOR.FDESCRIPCION + ']') THEN CAST(1 AS BIT) ELSE CAST(0 AS BIT) END FROM SECTOR ORDER BY 1 </COMANDO>