Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Reporte basado en un query (https://www.clubdelphi.com/foros/showthread.php?t=51444)

Puberta 15-12-2007 18:22:56

Reporte basado en un query
 
Hola de nuevo!!!!!

Tengo un duda con respecto al manejo de reportes en Delphi, sé que se han creado varios links aqui, pero ninguno de los que leí me ayudo mucho.

Trabajo en Delphi 7, mi base de datos es Access e intento realizar el reporte con un CompositeReport. Todo es así, necesito crear un reporte basado en un query, el cual esta basado en dos tablas (Aseguradoras y Convenios).

En el encabezado el reporte debe llevar toda la infomación de las aseguradoras (nombre, dirección, telefono, contacto, etc.) y en el detalle todos los convenios, es decir las polizas de los automoviles relacionadas a esa aseguradora.

Creo que el query no esta mal. Lo que pasa es que no sé si debo utilizar una banda de grupo, una subdetalle o que pero, el reporte me muestra solo la primera aseguradora con todos los convenios sin importar si estan relacionados a esa aseguradora o me muestra en cada hoja una poliza con su respectiva aseguradora, cuando me debería mostrar la aseguradora con todos los convenios que se relacionan a esta y no uno por uno....no sé si me dí a explicar y alguien me pueda ayudar.


Saludos

Caral 16-12-2007 02:14:42

Hola
No se si entendi bien, pero me parece que usas QReport.:confused:
Si es asi, lo que pasa es que el query que esta en el QReport o que esta ligado a este no esta conectado al dataset.
En el QReport hay en sus propiedades una que se llama Dataset, esta tiene que estar ligada al query, solo le pones el nombre o lo buscas con la flecha.
Es un error usual, yo tambien pase por lo mismo.:D
Saludos

Puberta 16-12-2007 02:36:06

Gracias por contstarme Caral.

Si utilizo QReport y ya lo tengo ligado al dataset y cada TQRDBText ligado al campo que le corresponde, y si ya me muestra resultados, pero no como los requiero.

Tengo una consulta ligada a 2 tablas, la Tabla 1(aseguradoras) tiene 3 registros y la tabla 2 (convenios) contiene 7 registros.

En el reporte, tengo un Group Header, este contiene todos los datos relacionados a la tabla de aseguradoras, y en la banda de detalles tengo todos los campos de la tabla de convenios, ahora el problema es que al ejecutar el reporte me muestra solo una página, con la información del primer registro de la tabla aseguradoras y en detalles todos los registros de la tabla convenios.

Necesito que muestre 3 páginas, cada una con un registro de la tabla aseguradoras y en la parte de detalles los convenios correspondientes de cada aseguradora, es decir:

Página 1 --> Encabezado --> Aseguradora 'El aguila'
Detalles --> Convenio 1, auto 150001, etc.
Convenio 2, auto 170025, etc.
Página 2 --> Encabezado --> Aseguradora 'Axentar'
Detalles --> Convenio 4, auto 150001, etc.
Convenio 6, auto 140015, etc.
Página 3 --> Encabezado --> Aseguradora ' AIG Comercial'
Detalles --> Convenio 3, auto 27001, etc.
Convenio 5, auto 18005, etc.
Convenio 7, auto 15870, etc.

Espero me halla explicado,y me pueda ayudar.

Caral 16-12-2007 02:55:56

Hola
A ver si te puedo ayudar.
Coloca un Page Header, en este le colocas el titulo, este se repetirá en todas las hojas.
Coloca un Group Header, en este colocaras.
Aseguradora 'El aguila'
Recuerda que este (Group Header) tiene una propiedad Expression, en esta tienes que ligar el query con el campo clave o el que guíe la consulta.
Coloca un Detail, en este colocaras el contenido:
Convenio 1, auto 150001, etc.
Convenio 2, auto 170025, etc.
Coloca un Group Footer, (si necesitas datos finales, como sub totales etc), es muy util y separa los subtotales de los totales que serian en una banda Sumari.
A ver si te sirve.
Edito: Si quieres presentar la información en paginas independientes tendrás que arreglar el tamaño de la presentación, corriendo o modificando los tamaños de las bandas.
Saludos

Lepe 16-12-2007 09:42:38

La verdad es que hay muchas formas de hacerlo. El compositeReport no lo necesitas en esta ocasión. Es un Maestro detalle.

Aparte de lo dicho por Caral:

- La consulta pídela ordenada por aseguradora (order by).
- Me parece que en la banda GroupHeader tienes que asignar su propiedad Expresion poniendo "Aseguradora".
- Para que cuando cambie el valor de ese campo, salte a otra página (creo recordar que hay otra propiedad "GroupPagereturn" o "GroupPageBreak"... el nombre es intuitivo.

Saludos

david_uh 01-02-2008 18:22:04

el camino práctico
 
de repente te interesa esto


La franja horaria es GMT +2. Ahora son las 03:30:04.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi