Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-10-2004
pkbza pkbza is offline
Miembro
 
Registrado: may 2004
Posts: 48
Poder: 0
pkbza Va por buen camino
Maestro/detalle en Quickreport

Hola ClubDelphi he estado dias tratando de hacer un informe maestro-detalle con QuickReport y realmente me he esforzado y no lo he conseguido, no he encontrado documentacion sobre eso y los ejemplos que he visto no los he podido implementar... el asunto es el siguiente... tengo dos consultas, IBQsocios(maestro) y IBQpagos(detalle), y necesito imprimir los pagos de cada socio y ademas mostrar los datos de cada socio, estas dos consultas de relacionan mediante un campo llamado "ficha", que es el nº de ficha del socio.
Mis dudas son como relaciono en el informe dichos campos, que bandas debo utilizar, que es lo basico que debo hacer.
Para tener una idea de como es les envio esta imagen

Muchas gracias de antemano, chao.
Responder Con Cita
  #2  
Antiguo 15-10-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Cita:
Empezado por pkbza
Mis dudas son como relaciono en el informe dichos campos, que bandas debo utilizar, que es lo basico que debo hacer.
Al hacer las consultas relacionadas por el parámetro ficha ya tienes la relación del informe, solo tienes que poner los campos que necesites en el informe de una o de otra consulta; al abrir ambas consultas, ya tienes los datos que necesitas en el informe.

Con una banda Detalle y una subdetalle va que chuta. El asignar la consulta al Informe, depende de donde quieres mostrar los datos del detalle o del maestro.

Lo lógico es asignar la consulta Maestra a la banda detalle del informe, y en la banda SubDetail, pones los campos de la consulta detalle, configurando el dataset de cada campo a mano.

PD: El lio de palabras que se forma es porque en Qreport no hay Banda Maestra y Banda Detalle, lo que existe es: Banda Detalle y Banda SubDetalle.

En algunos casos, he dejado el Dataset del Informe en blanco, y simplemente meto los campos que necesito configurando de donde provienen los campos con QRDBTEXT asignando el dataset y el Field a mano.

Simplemente tienes que tener claro lo que quieres hacer, y si el QReport no te deja hacerlo, cambiar los dataset.

No sé si te he aclarado algo, o te he liado más todavia
Responder Con Cita
  #3  
Antiguo 18-10-2004
pkbza pkbza is offline
Miembro
 
Registrado: may 2004
Posts: 48
Poder: 0
pkbza Va por buen camino
Gracias lepe, disculpa si no me comunique antes (estaba lejos y muy ocupado), revisare lo que me dijiste y te cuento como me fue.
Responder Con Cita
  #4  
Antiguo 18-10-2004
pkbza pkbza is offline
Miembro
 
Registrado: may 2004
Posts: 48
Poder: 0
pkbza Va por buen camino
Hola... mira tengo los sgtes objetos en un formulario:

-Dos consultas (IBQuery) una maestra y otra detalle,
-Un reporte con su propiedad dataset en la consulta maestra,
-Una banda rbPageHeader para el titulo,
-Una banda rbDetail, donde van los campos de la consulta maestra,
-Una banda TQRSubDetailGroupBands con la propiedad dataset en la consulta detalle y la propiedad linkband con el nombre de la banda rbDetail.

Con esta configuracion me muetra todos los registros de la consulta maestra, lo que esta bien, pero en cada detalle de ese registro me muestra todos los registros de la consulta detalle (deberian ser solo los relacionados con ese registro).
Con esto espero explicar mejor lo que sucede, gracias de antemano nuevamente.
Responder Con Cita
  #5  
Antiguo 21-10-2004
luismi luismi is offline
Registrado
 
Registrado: oct 2004
Posts: 2
Poder: 0
luismi Va por buen camino
Hola Pkbza:
Tengo varios informes del tipo maestro-detalle. Te explico un poco cómo lo hago con un ejemplo: Supongamos una tabla TPersona (Persona, NombrePersona) que será la maestra y otra tabla Tdireccion(Persona,direccion) que es la de detalle. En la maestra tenemos los datos de una persona y en la de detalle las distintas direciones de una persona. Si queremos un informe que por cada persona nos diga las direcciones que tiene, pero el nombre de la persona aparecerá sólo una vez.
1.- Siempre intento tener un dataset único, que es un componente Query.
2.- En la propiedad string del Query montas la Select que te relacione las tablas maestra y detalle. Pa ra ello necesitas saber SQL. En nuestro caso:
Select P.Persona,P.Nombre,D.dirección
from Tpersona P, Tdireccion D
where D.Persona = T.persona
order by P.persona

3.- Es importante que el conjunto esté ordenado por el campo que nos determinará la ruptura de control en el informe que en nuestro caso es el código de persona.
4.-En el informe necesitamos forzosamente un QRgroup. Este componente nos determina cómo agrupar las filas que ha recuperado de la consulta. Para ello debes especificarlo en la propiedad expresion. La expresion en nuestro caso sería P.persona, pues vamos a agrupar por código de persona.
5.-Este componente Qrgroup necesita trabajar con 2 bandas:una de tipo cabecera de grupo, en la que colocaras un qrdbedit para el código de persona y otro para el nombre; y una banda de pie de grupo que para nuestro caso estaría vacía.
La banda cabecera de grupo y pie de grupo se imprimen sólo una vez por cada valor distinto del grupo, o sea , del código de persona.
6.- Incluir en el informe una banda de tipo detalle, en la que colocaríamos un qrdbedit para el campo D.direccion.
7.- Supongamos que lanzamos desde un botón el informe desde el form1 y el informe se encuentra en el form2. Las ódenes para ver el informe:
Form2.query1.open;
Form2.Informe.preview;
form2.query1.close;
8.- Debería mostrarse algo así:

Banda cab.grupo ---> Numero persona: 1 Nombre: ALONSO RODRIGUEZ
Banda detalle --------> Dirección: C/La mina, 1
Banda detalle --------> Dirección: C/Huertas, 3 1 A
Banda detalle --------> Dirección: C/Encina, 125
Banda pie grupo ------->
Banda cab.grupo ---> Numero persona: 2 Nombre: JOSE GOMEZ
Banda detalle --------> Dirección: C/Pasión, 2
Banda pie grupo ------->
.
.
.
Banda cab.grupo ---> Numero persona: 999999 Nombre: Alvaro Sánchez
Banda detalle --------> Dirección: C/Pasión, 2
Banda detalle --------> Dirección: C/Virgen del Amor 17 2 B
Banda pie grupo ------->
Responder Con Cita
  #6  
Antiguo 21-10-2004
pkbza pkbza is offline
Miembro
 
Registrado: may 2004
Posts: 48
Poder: 0
pkbza Va por buen camino
Hola Luismi.
Muchas gracias por tu tiempo y dedicacion, me ha funcionado bien el informe... me faltaban varias cosas.
Responder Con Cita
  #7  
Antiguo 11-10-2005
karlalfredo05 karlalfredo05 is offline
Registrado
 
Registrado: oct 2005
Ubicación: Los Mochis, Sinaloa
Posts: 1
Poder: 0
karlalfredo05 Va por buen camino
Wink Como Inserto Valores en un StringGrid

Hola, Me LLamo Karla, Soy de Los Mochis, Sinaloa, Mexico.. Estudio la Carrera de Ingenieria en Sistemas Computacionales.. Por el Momento Me Encuentro Cursando La Materia Programacion II : C++ Builder .. Tengo Un Ejercicio Que Hacer Utilizando el StringGrid.. Necesio Sumar Los Renglones y Columnas.. e Insertando Valores.. Al Mismo Tiempo Utilizar DosTrackbar Que Aumente Los Renglones y Columnas... Espero Puedieran Ayudarme En El Codigo.. Gracias
Responder Con Cita
  #8  
Antiguo 27-09-2006
Avatar de NCcapa
NCcapa NCcapa is offline
Registrado
 
Registrado: sep 2006
Posts: 4
Poder: 0
NCcapa Va por buen camino
En mi caso, quiero hacer un reporte con más detalle y Además con subtotales y sumas acumuladas; tengo esta consulta ya hecha, mehor les envio un archivo Adjunto Consulta.zip.
Archivos Adjuntos
Tipo de Archivo: zip Consulta.zip (6,4 KB, 147 visitas)
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 07:22:59.


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
Copyright 1996-2007 Club Delphi