DEV AUXILIARES/SELECCION CRITERIOS

De Pragma Wiki
Ir a la navegación Ir a la búsqueda

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:

Consulta de saldos contables.

Sus criterios son:

  • CuentaDesde: cuenta inicial.
  • CuentaHasta: cuenta final.
  • FechaDesde: fecha para el saldo inicial.
  • FechaHasta: 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.

Este auxiliar 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.

Opción para definir criterios.


Definir criterios.
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>