¿Cómo generar un reporte parametrizado?

Estoy hacienda mi tesis y tengo que generar un reporte parametrizado.
Hice una ventana donde ingreso los parámetros para generar el reporte pero no siempre va a buscar por todos, por ejemplo los parámetros de búsqueda son: departamento, fecha, documento y cierre pero yo pudiera buscar solo por fecha y departamento o por alguna otra combinación de estos 4 parámetros .
Hay alguna forma de realizar el filtrado en una sola datawindows, enviando esta combinación al mismo datawindows, ya que si utilizo el operador lógico OR el filtrado no es correcto y lo mismo me sucede utilizando AND, ¿qué debo hacer en el datawindows? Y como le envío el filtrado para que me genere el reporte.
Por favor ayúdeme con su respuesta que es Urgente

1 respuesta

Respuesta
1
Estiado colega, power builder tiene un objeto que de no existir, no valdria un centavo, me refiero a el datawindow, la versatilidad es asombrosa, creo que si los demas lenguajes adoptaran una filosofia parecida, seguro que tendrian mucho mas alcance que el actual, volviendo al tema, el datawindow tiene la capacidad de efectuar una cosa llamada QUERY BY EXAMPLE, esta peculiaridad del datawindow funciona de la manera que tu me comentas, por ejeplo, imagina que tienes un datawindow del tipo grid, y este contiene digamos unas 8 columnas, cada una de un tipo distinto, y todas corresponden a campos vitales en dicha pantalla, pues si utilizas la filosofia QUERY BY EXAMPLE, cada columna se convirte en una forma de integrar una condicion de busqueda, ademas tiene la peculiaridad de combinar los conectores OR y AND, y por si esto no fuera poco, puedes incluir ordenacion por cada columna, y todo esto simple, rapido y versatil incluido en una misma pantalla.
Realente las instrucciones para convertir un datawindow en tipo QUERY BY EXAMPLE son 2 o 3, sin embargo tienes que poner atencion cuando luego despues de hacer un llenado de datos, intentas hacer una nueva busqueda de estos.
Creeme que no es nada dificil, y es mas en la ayuda tienes un ejemplo de como convertir tu datawindow en QUERY BY EXAMPLE.
Permiteme extendere un poco mas, e incluir en esta respuesta, una que ya hace un tiempo atras di a otro colega. (Espero que pueda ser de utilidad, recuerda que siempre tienes el apoyo de la ayuda en linea del propio power builder)
Si me permites te voy a dar una solución la cual me ha funcionado muy bien
El datawindow tiene la capacidad de hacer algo que lleva el nombre de QUERY BY EXAMPLE, esta técnica, esta basada principalmente en una ventana en la cual aparecen una serie de columnas propias de una o varias tablas, y en ellas es posible hacer cualquier tipo de condición para seleccionar los datos que se encuentran en dicha o dichas tablas, en esta técnica incluye ><= like <= >= and or, esto permite un amplio horizonte para el usuario que condiciona sus búsquedas por sus propias condiciones.
Para hacer lo que te comento, exiten 2 formas,
Fácil:
Utilizando los botones propios del datawindow object, en la misma pantalla que tienes como consulta, por ejemplo en la cabecera, puedes relacionar estos a eventos propios del data window, por ejemplo, incluyes en la cabecera un botón el cual le llamaras Query, en la propiedad ACTION del botón en la pestaña GENERAL, encontraras una serie de acciones que puede ejecutar dicho botón, este tendrá al por omisión la acción USER DEFINED(0), la cual la defines tu dentro del evento BUTTONCLICKED o BUTTONCLICKING, del datawindow control, siguiendo con el tema, en esta propiedad deberás incluir la acción QUERYMODE, esto te coloca automáticamente el datawindow object en modo QUERY BY EXAMPLE, en este momento puedes definir tu búsqueda por ejemplo,
si la ventana tiene 2 columnas
código y descripción, las cuales refieren a la tabla de productos, y necesitas localizar los productos que incluyan la palabra tornillo, entonces en la columna descripción escribes LIKE TORNILLO, pulsas el botón QUERY y luego RETRIEVE, y ya.
Por cierto el botón RETRIEVE lo deberás indicar exactamente como el QUERY, incluyes un botón y asocias la acción RETRIEVE.
Ahora la no tal fácil.
En caso de no utilizar los botones propios del datawindow, esto implica que en la pantalla donde tienes incluida la búsquedas deberás incluir 2 controles tipo botón y en el evento clicked de estos indicaras las acciones QUERYMODE y RETRIEVE,
Por ejemplo EN EL BOTÓN QUERY.
La instrucción deberá ser
PARENT.dw_1.object.datawindow.queryclear = 'Yes'
PARENT.dw_1.object.datawindow.ReadOnly = 'Yes'
PARENT.dw_1.Reset()
PARENT.dw_1.object.datawindow.ReadOnly = 'No'
PARENT.dw_1.object.datawindow.QueryMode = 'yes'
Estas instrucciones indican accionar el modo QUERYMODE y colocar el modo READONLY en apagado para poder incluir datos, en dicha ventana.
Igualmente tendrás que incluir un botón para hacer el correspondiente retrieve.
Anotaciones:
De una forma o de otra, el resultado siempre es el mismo, ademas tienes la ventaja que puedes incluir un botón el cual tenga la finalidad de imprimir el resultado obtenido del Query.
A lo mejor te preguntaras, bueno y que pasa si por ejemplo en un select incluido en un datawindow object incluyo datos constantes. Por ejemplo, mi aplicación es de tipo multi-empresa y de momento necesito incluir en el where del select la condición que la empresa sea igual a 1, la respuesta es simple, el query by example, respeta cualquier condición incluida en el where ya sea con datos constantes o por medio de argumentos de retrieve, estos son incluidos en la nueva condición de búsqueda la cual automáticamente se construye en el momento de condicionar las columnas por medio del QUERYMODE.
Para finalizar, si quieres ejemplos, o simplemente más información acerca de como funcionan las variantes del querymode, la puedes obtener en la ayuda online de power builder simplemente busca querymode

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas