Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Doble agrupación en FastReport (https://www.clubdelphi.com/foros/showthread.php?t=89801)

ciudad54 09-02-2016 03:33:16

Doble agrupación en FastReport
 
Buenas, tengo la siguiente data de la cual quiero agrupar por Especialidad y Médico, además de organizar por fecha.

ID - MEDICO - ESPECIALIDAD - FECHACITA
1 JOSE PEDIATRA 12/04/2016
2 JUAN DERMATOLOGO 01/03/2016
3 JOSE PEDIATRA 17/04/2016
4 MARIA PEDIATRA 12/04/2016
5 PEDRO ORTOPEDA 01/04/2016

Utilizo ADOQuery para interactuar con la data, y organizo la misma por FECHACITA ASCENDENTE al momento de hacer el llamado de impresión, pero no logro agrupar los datos de la siguiente forma:

ESPECIALIDAD: PEDIATRA
MEDICO: JOSE
FECHACITA
12/04/2016
17/04/2016
etc.....

ESPECIALIDAD: PEDIATRA
MEDICO: MARIA
FECHACITA
12/04/2016

Con cada especialidad, su medico y registros organizados ascendentemente.
Estoy utilizando Delphi XE2, FastReport y FireBird.

Gracias de antemano su ayuda!

AgustinOrtu 09-02-2016 04:01:28

Bienvenido

Cual es el problema? Salen mal los grupos? Da error?

Como tenes configurado el reporte?

A simple vista, esta fallando porque no esta ordenado como corresponde

Deberias ordenar de acuerdo a como armas los grupos: en tu caso Especialidad, Medico, Fecha

ciudad54 09-02-2016 04:10:23

Cita:

Empezado por AgustinOrtu (Mensaje 501948)
Bienvenido

Cual es el problema? Salen mal los grupos? Da error?

Como tenes configurado el reporte?

A simple vista, esta fallando porque no esta ordenado como corresponde

Deberias ordenar de acuerdo a como armas los grupos: en tu caso Especialidad, Medico, Fecha

Gracias AgustinOrtu, sale bien el reporte pero el error es que se repiten las agrupaciones nuevamente.
Yo estoy colocando un GroupHeader1 con el campo ESPECIALIDADES y otro GroupHeader2 con el campo MEDICO y aun asi no me salen todos agrupados los registros. No se cual es mi error.

AgustinOrtu 09-02-2016 04:22:09

Probaste cambiar el orden?

Cita:

Deberias ordenar de acuerdo a como armas los grupos: en tu caso Especialidad, Medico, Fecha

ciudad54 09-02-2016 04:34:56

1 Archivos Adjunto(s)
Si probe cambiando los campos Medico en el groupHead1 y Especialidad en el GroupHead2 y aun asi se me repiten.
Una imagen de ejemplo del error adjunto

AgustinOrtu 09-02-2016 04:36:22

Me referia a como los ordenas cuando haces el query

Código SQL [-]
  SELECT ..
  FROM ..
  WHERE
  ORDER BY Especialidad, Medico, FechaCita

ciudad54 09-02-2016 04:40:52

Este es el código que estoy utilizando.


Código Delphi [-]
dbMod.DataModule1.ADOQCitas.Close;
  dbMod.DataModule1.ADOQCitas.SQL.Clear;
  dbMod.DataModule1.ADOQCitas.SQL.Add('SELECT m.nombres, m.primer_apellido, m.segundo_apellido, e.detalle, c.fecha, c.expediente,');
  dbMod.DataModule1.ADOQCitas.SQL.Add('p.nombres, p.primer_apellido, p.segundo_apellido,p.telefono1, p.telefono2, c.ris, c.estado');
  dbMod.DataModule1.ADOQCitas.SQL.Add('from GES_MEDICO_CITA c');
  dbMod.DataModule1.ADOQCitas.SQL.Add('INNER JOIN GES_MEDICO m ON (GES_MEDICO.MEDICO = GES_MEDICO_CITA.MEDICO)');
  dbMod.DataModule1.ADOQCitas.SQL.Add('INNER JOIN GES_PACIENTE p ON (GES_PACIENTE.EXPEDIENTE = GES_MEDICO_CITA.EXPEDIENTE)');
  dbMod.DataModule1.ADOQCitas.SQL.Add('INNER JOIN GES_ESPECIALIDAD e ON (GES_ESPECIALIDAD.ESPECIALIDAD = GES_MEDICO.ESPECIALIDAD)');
  dbMod.DataModule1.ADOQCitas.SQL.Add('WHERE c.fecha >= ''' + FormatDateTime('mm/dd/yyyy',(DateTimePicker1.Date)) + '''');
  dbMod.DataModule1.ADOQCitas.SQL.Add('AND c.fecha <= ''' + FormatDateTime('mm/dd/yyyy',(DateTimePicker2.Date)) + '''');
  dbMod.DataModule1.ADOQCitas.SQL.Add('AND GES_MEDICO_CITA.ESTADO ='''+'REGISTRADA'+'''');
  dbMod.DataModule1.ADOQCitas.SQL.Add('ORDER BY GES_MEDICO_CITA.FECHA ASC');
  dbMod.DataModule1.ADOQCitas.Open;

ciudad54 09-02-2016 05:08:17

Cita:

Empezado por AgustinOrtu (Mensaje 501952)
Me referia a como los ordenas cuando haces el query

Código SQL [-]
  SELECT ..
  FROM ..
  WHERE
  ORDER BY Especialidad, Medico, FechaCita

Ya comprendí y arregle esta última linea y listo:

Código Delphi [-]
dbMod.DataModule1.ADOQCitas.SQL.Add('ORDER BY e.detalle, m.nombres, c.fecha ASC');

Muchas gracias

Casimiro Notevi 22-03-2016 17:43:36

Cita:

Empezado por Cesar Oviedo (Mensaje 503618)
Dentro De Este Foro No Se Donde Hacer Las Preguntas Para Que Me Ayuden.

Pues este es tu mensaje número 12 :confused:
Y veo que olvidaste la guía de estilo ;)


La franja horaria es GMT +2. Ahora son las 11:22:24.

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