Ver la Versión Completa : Doble agrupación en FastReport
ciudad54
09-02-2016, 03:33:16
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
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?
Deberias ordenar de acuerdo a como armas los grupos: en tu caso Especialidad, Medico, Fecha
ciudad54
09-02-2016, 04:34:56
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
SELECT ..
FROM ..
WHERE
ORDER BY Especialidad, Medico, FechaCita
ciudad54
09-02-2016, 04:40:52
Este es el código que estoy utilizando.
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
Me referia a como los ordenas cuando haces el query
SELECT ..
FROM ..
WHERE
ORDER BY Especialidad, Medico, FechaCita
Ya comprendí y arregle esta última linea y listo:
dbMod.DataModule1.ADOQCitas.SQL.Add('ORDER BY e.detalle, m.nombres, c.fecha ASC');
Muchas gracias
Casimiro Notevi
22-03-2016, 17:43:36
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 (http://www.clubdelphi.com/foros/guiaestilo.php) ;)
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.