Sie sind auf Seite 1von 7

Connected Queries

En esta entrada vamos a tratar una nueva caracterstica presente en las tools 8.51
que lleva el nombre de Consultas Conectadas.

Como siempre para poder hacer una mejor explicacin vamos a empezar con un
Ejemplo.

Digamos que deseamos hacer un listado o reporte rpido que nos muestre cada
uno de los roles que hay dentro del aplicativo y que adicionalmente liste cada uno
de los usuarios relacionados al rol. Para cumplir con este requerimiento lo ms
facil es hacer una consulta por el gestor de consultas y listarla rpidamente. El
select de la consulta quedara de la siguiente forma:

SELECT A.ROLENAME, A.DESCR, B.ROLEUSER


FROM PSROLEDEFN A, PSROLEUSER B, PSOPRDEFN C
WHERE A.ROLENAME LIKE :1
AND A.ROLENAME = B.ROLENAME
AND B.ROLEUSER = C.OPRID
ORDER BY 1

Digamos que ahora queremos el listado de todos los roles junto a todos sus
usuario y adicionalmente a sus listas de permisos. Para el requerimiento anterior
ya no sera factible crear una nica consulta. La opciones para cumplir este
requerimiento seran las siguientes:
Crear 2 consultas independientes por medio del gestor de consultas: una
para los usuarios y otra para las listas de permisos
A partir de las 2 consultas creadas previamente, crear un crystal que utilice
subreportes para incluir las 2 consultas y asi generar un solo listado.
Por ltimo utilizar el Application Designer para crear la pgina de ejecucin
del reporte y poder generarlo.
En conclusin demasiadas horas de desarrollo para un listado tan simple. Con la
nueva herramienta de Consultas Conectadas este proceso no necesitar crear
ningn objeto por el Application Designer, ni escribir una sola lnea de cdigo. Los
pasos para solucionar el requerimiento seran:
Crear una consulta que traiga todos los roles y su descripcin (Consulta
padre)
Crear una consulta que traiga los roles junto a los usuarios asociados
Crear una ltima consulta con los roles y cada una de las listas de
permisos.
Crear la consulta conectada que enlace las 3 consultas creadas
previamente
Crear la plantilla XML PUBLISHER para generar el reporte
Crear la definicin del reporte XML PUBLISHER
Y por ltimo ejecutar el reporte por la ruta Inicio - Herramientas de Informes
- XML Publisher - Gestor de Informes de Consulta
En conclusin ni una sola lnea de cdigo.

Ahora si manos a la obra

1. Crear una consulta que traiga todos los roles y su descripcin (Consulta padre).
La consulta se va a llamar PE_CQ_ROLES y debe generar un select como el
siguiente:
SELECT A.ROLENAME, A.DESCR
FROM PSROLEDEFN A
WHERE A.ROLENAME LIKE :1
2. Crear una consulta que traiga los roles junto a los usuarios asociados. La
consulta se va a llamar PE_CQ_USERS_X_ROL y el select debe lucir de la siguiente forma:

SELECT A.ROLENAME, A.DESCR, B.ROLEUSER


FROM PSROLEDEFN A, PSROLEUSER B, PSOPRDEFN C
WHERE A.ROLENAME = B.ROLENAME
AND B.ROLEUSER = C.OPRID
ORDER BY 1

3. Crearuna ltima consulta con los roles y cada una de las listas de permisos. La
consulta se va a llamar PE_CQ_LISTAS_X_ROLES y el select debe lucir de la siguiente
forma:
SELECT A.ROLENAME, A.DESCR, C.CLASSID, C.CLASSDEFNDESC
FROM PSROLEDEFN A, PSROLECLASS B, PSCLASSDEFN C
WHERE A.ROLENAME = B.ROLENAME
AND B.CLASSID = C.CLASSID
ORDER BY 1
4. Crear la consulta
conectada que enlace las 3 consultas creadas previamente.
Ahora si lo importante. Primero vamos a Inicio - Herramientas de Informes -
Consultas Conectadas - Inicio Rpido Cnslt Conectada y Agregamos una consulta
conectada como se ve en las imagenes:

Paso 1

Paso 2
Paso 3: En este paso agregamos el primer hijo de la consulta principal, los hijos adicionales se
deben hacer por Inicio - Herramientas de Informes - Consulta Conectada - Gestor de Consultas
Conectadas

Paso 4: En este paso asociamos la consulta padre con la consulta hijo a travs de un campo, en
nuestro caso a travs del campo ROLENAME que se encuentra asociado en las 3 consultas que
componen nuestra consulta conectada.
Paso 5:

Luego de finalizar con el asistente se debe ir a Inicio - Herramientas de Informes -


Consulta Conectada - Gestor de Consultas Conectadas y completar la definicin de la consulta,
agregando el hijo faltante. La consulta conectada debe quedar como se ve en la siguiente imagen:

Paso 1: Se agrega la otra consulta hija


Paso 2: Se relaciona la consulta padre con la consulta hija a travs del ROLENAME

Paso: Se finaliza la creacin de la consulta conectada.


5. Crear la plantilla XML PUBLISHER para generar el reporte. Lo primero que tenemos que hacer
es dar clic en "Vista Pvia XML" en la ventada Inicio - Herramientas de Informes - Consulta
Conectada - Gestor de Consultas Conectadas y a partir de este
XML ROL_USER_LIST.xml generar una plantilla RTF de XML Publisher como la
siguiente Plantilla.rtf.

6. Crear la definicin del reporte XML PUBLISHER.

Lo primero es crear un origen de datos de XML PUBLISHER tal como se puede ver en la figura
Luego creamos una definicin del reporte XML PUBLISHER como podemos ver en las imagenes
siguientes:

7. Y por ltimo ejecutar el reporte por la ruta Inicio - Herramientas de Informes - XML Publisher -
Gestor de Informes de Consulta. Habiendo terminado los pasos anteriores podemos ejecutar
nuestro reporte por la ruta referenciada.

Y listo hemos creado un reporte con mltiples secciones sin necesidad de usar crystal ni de escribir
una sola lnea de cdigo. Espero que les sea de utilidad.

Das könnte Ihnen auch gefallen