Delphi - Reporte con Qreport - agregar paginas

 
Vista:

Reporte con Qreport - agregar paginas

Publicado por crowall (8 intervenciones) el 24/12/2008 18:33:12
Ya tengo mi reporte generado con el Qreport y aparece bien (con el preview)
pero ahora quiero a ese reporte agregarle otra pagina y que se vaya acumulando, es decir que todas las veces que vaya consultando la información me genere reporte y se acumule en el mismo docuemnto pero en diferente pagina.
el codigo mas o menos esta de la siguiente manera:

vf_reportes_comprobantes.ling_s_maestro.Active := False;
vf_reportes_comprobantes.ling_s_maestro.Active := True;
// activo el query
WHILE NOT vf_reportes_comprobantes.ling_s_maestro.Eof DO
Begin // CONSULTO LA INFORMACIÓN REGISTRO X REGISTRO
emp_tmp := vf_reportes_comprobantes.ling_s_maestro.fieldbyname('empleado').AsString;
li_sem_anual := vf_reportes_comprobantes.ling_s_maestro.fieldbyname('lc_sem_anual').AsInteger;
li_dias_anual := vf_reportes_comprobantes.ling_s_maestro.fieldbyname('lc_dia_anual').AsInteger;
li_sem_acum := vf_reportes_comprobantes.ling_s_maestro.fieldbyname('li_sem_acum').AsInteger;
li_dias_acum := vf_reportes_comprobantes.ling_s_maestro.fieldbyname('li_dias_acum').AsInteger;
// calculando los dias pendientes - aqui hay una funcion y modifico dos valores y se los envio al reporte
vf_reportes_comprobantes.lre_sem_pend.Caption := inttostr(li_semanas_pend);
vf_reportes_comprobantes.lre_dias_pend.Caption := inttostr(li_dias_pend);
// muestro el reporte
vf_reportes_comprobantes.lqr_reporte_comprobante1.Preview;
vf_reportes_comprobantes.ling_s_maestro.Next; // para el siguiente registro
// limpio las variables que van cambiando
vf_reportes_comprobantes.lre_sem_pend.Caption :='';
vf_reportes_comprobantes.lre_dias_pend.Caption :='';
End; // fin del while
pero que pasa me muestra uno por uno los reportes y ademas no los agrega al mismo documento.
Si pongo el vf_reportes_comprobantes.lqr_reporte_comprobante1.Preview fuera del while solo me muestra el ultmio registro que es el generado

DE ANTEMANO GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:Reporte con Qreport - agregar paginas

Publicado por E.T. (1244 intervenciones) el 24/12/2008 20:32:22
Haber si esto te funciona, necesitas el componente qrCompositeReport, yo tengo la versión 4 de quickReport, no se si en versiones anteriores venga dicho componente, pero ya que lo tengas insertas uno e intenta esto

En el evento beforePrint del reporte pon estas lineas:

vf_reportes_comprobantes.lre_sem_pend.Caption := inttostr(li_semanas_pend);
vf_reportes_comprobantes.lre_dias_pend.Caption := inttostr(li_dias_pend);

En el evento OnAddReports del QrCompositeReport pones esto:

WHILE NOT vf_reportes_comprobantes.ling_s_maestro.Eof DO
Begin // CONSULTO LA INFORMACIÓN REGISTRO X REGISTRO
emp_tmp := vf_reportes_comprobantes.ling_s_maestro.fieldbyname('empleado').AsString;
li_sem_anual := vf_reportes_comprobantes.ling_s_maestro.fieldbyname('lc_sem_anual').AsInteger;
li_dias_anual := vf_reportes_comprobantes.ling_s_maestro.fieldbyname('lc_dia_anual').AsInteger;
li_sem_acum := vf_reportes_comprobantes.ling_s_maestro.fieldbyname('li_sem_acum').AsInteger;
li_dias_acum := vf_reportes_comprobantes.ling_s_maestro.fieldbyname('li_dias_acum').AsInteger;
// calculando los dias pendientes - aqui hay una funcion y modifico dos valores y se los envio al reporte
vf_reportes_comprobantes.lre_sem_pend.Caption := inttostr(li_semanas_pend);
vf_reportes_comprobantes.lre_dias_pend.Caption := inttostr(li_dias_pend);
// muestro el reporte
//La siguiente linea cambia por la original, para agregar los reportes al qrComposite
QRCompositeReport1.Reports.Add(vf_reportes_comprobantes.lqr_reporte_comprobante1);
vf_reportes_comprobantes.ling_s_maestro.Next; // para el siguiente registro
// limpio las variables que van cambiando
vf_reportes_comprobantes.lre_sem_pend.Caption :='';
vf_reportes_comprobantes.lre_dias_pend.Caption :='';
End; // fin del while

Para terminar, en un botón, o desde donde estas ejecutando el llamado a tu reporte pones el resto:

vf_reportes_comprobantes.ling_s_maestro.Active := False;
vf_reportes_comprobantes.ling_s_maestro.Active := True;
QRCompositeReport1.Preview;

No tengo idea de como se vaya a comportar esto, pues yo lo hice con un par de reportes sólamente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar