Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Delphi 7 y Quick Report --- Ayuda Agrupamiento!!! (https://www.clubdelphi.com/foros/showthread.php?t=85851)

seb@ 15-05-2014 15:41:07

Delphi 7 y Quick Report --- Ayuda Agrupamiento!!!
 
hola foro!!!, tengo un problema con respecto a quick report y agrupamiento. trabajo con D7 y Quick Report 4.04
Mi problema es el siguiente: en un AdoQry, tengo los siguientes datos:

Código:

id_medico        id_paciente
----------------------------
4404                440627
4404                  440627
4404                292604
237592        292604
237592        440627

lo quiero hacer en el reporte es agrupar los medicos con los pacientes, deberia quedar asi:

Código:

medico        paciente
-----------------
4404       
        440627
        440627
        292604
237592
        292604
        440627

En el reporte lo que hice fue agregar las siguientes bandas:
TQRBand (PageHeader)
TQRGroup (Group Header) -> En expression tengo el campo: id_medico. En la banda tambien pongo el id_medico para que se imprima
TQRBand (Detail) -> Pongo el id_paciente para que se imprima
TQRBand (Group Footer) -> Vacio

Cuando lo ejecuto me sale:
Código:

4404
    440627

Solo el primer registro. Si alguien me puede dar una mano agradecido. De antemano Gracias!

ecfisa 15-05-2014 18:19:59

Hola seb@.

Pone las tablas en relación master/detail:

ADOQueryMedicos:
Código SQL [-]
SELECT ID FROM MEDICOS
ADOQueryPacientes:
Código SQL [-]
SELEC ID FROM PACIENTES WHERE PACIENTES.ID = :ID
Y relaciona la propiedad DataSource de ADOQueryPacientes con el TDataSource asociado a ADOQueryMedicos.

Luego en QuickReport:
Código:

TQuickRep:
  DataSet <- ADOQueryMedicos (maestro)

TQRBand:
  BandType <- rbDetail 
TQRDBLabel <-Data
  DataField <- ID (médicos)
  DataSet <- ADOQueryMedicos

TQRSubDetail:
  DataSet <- ADOQueryPacientes (detalle)
TQRDBLabel
  DataField <- ID (pacientes)
  DataSet <- ADOQueryPacientes

Saludos :)

seb@ 15-05-2014 20:34:13

en que momento se inicializa el qry de pacientes? o en que evento?
saludos y gracias!

ecfisa 15-05-2014 20:51:52

Cita:

Empezado por seb@ (Mensaje 476498)
en que momento se inicializa el qry de pacientes? o en que evento?
saludos y gracias!

Hola seb@.

Los ADOQueries los podes inicializar en diseño o ejecución indistintamente. Una vez establecida la relación maestro/detalle, el reporte traerá los datos.

Te adjunto un ejemplo similar basado en customer y ordes de dbdemos.mdb (vienen con Delphi 7) para que puedas revisarlo con tranquilidad.

Saludos :)

seb@ 15-05-2014 21:14:51

Gracias por la ayuda ahi, lo pude solucionar,
lo hice así:

un solo qry con los datos medicos y pacientes ordenados por medicos.

el dataset del reporte con el Qry mencionado.
un QRBand --> rbPageHeader
un TQRGroup --> en expression id_medico y en la misma banda los datos del medico
un TQRSubDetail --> bando para datos del paciente
un QRBand --> rbGroupFooter

Funciona bien, gracias por la ayuda.!!

AzidRain 17-05-2014 22:01:43

Como lo hiciste al final es la mejor forma ya que no tienes que mover las tabals y puedes sacar reportes por grupos aunque las tablas no estén relacionadas en la BD. La clave es crear el query correcto que fue lo que hiciste.


La franja horaria es GMT +2. Ahora son las 03:34:26.

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