Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Subtotales de un grupo en un PageFooter (QuickReport) (https://www.clubdelphi.com/foros/showthread.php?t=54425)

Lord Delfos 18-03-2008 15:13:22

Subtotales de un grupo en un PageFooter (QuickReport)
 
Hola, gente. A ver si alguien sabe cómo hacer esto, proque yo ya no sé qué hacer...

Tengo un reporte de QuickReport en el que imprimo por grupos unos asientos contables (agrupados por fecha y número). Al final de cada grupo imprimo un subtotal de ese grupo.

Hasta acá no hay problema. La cosa viene cuando yo quiero agregar un subtutal al final de la página, que me muestre lo que se lleva sumado de ese grupo (que se va a terminar de imprimir en la otra página ¿sí?). Hasta ahora lo que logré fue que me mostrara lo que se lleva sumado en todo el reporte (esto es, el campo Haber y Debe de my TQuery).

Algo así:
Código:

................................................
Fecha    Asiento  Descripción      Debe  Haber
-----------------------------------------------
3/08      2588      Tal cosa          15    100
                    Fuifui            4      9

                Total Asiento        19    109

4/08        355    Otra              5    74

                      Transporte      5    74  <------- ¡Ajá!
................................................
                    Otramás            3    10

                Total Asiento        8    84
................................................

La etiqueta Transporte es la que me jode la vida. Lo único que he podido hacer hasta ahora es hacer que sea una expresión SUM(query.Debe) o Haber, que funciona pero suma TODO el campo Debe.

Lo que me gustaría es una suma que se limite solamente al grupo en cuestión.

El Transporte está en un PageFooter, de manera que no estoy "adentro" del grupo...

No sé si se me entiende algo... esto de los reportes es bastate engorroso...

Saludos y gracias por leer.

jcarteagaf 18-03-2008 15:27:55

Sub totales
 
Me imagino que para calcular el Subtotal usas un TQRExpr.

Y que tal si colocas un TQRLabel y haces el calculo del total de manera manual (por eventos):

1. Creas una variable a nivel del reporte
Código Delphi [-]
 fTotal : Double;
2. Inicializas a cero la variable cada vez que se imprime la cabecera del Grupo:

Código Delphi [-]
procedure TqrExtracto.QRGroup1BeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
begin
  fTotal := 0;
end;

3. Vas acumulando el valor deseado en la variable por cada linea de detalle impresa

Código Delphi [-]
procedure TqrExtracto.DetailBand1AfterPrint(Sender: TQRCustomBand;
  BandPrinted: Boolean);
begin
  fTotal := fTotal + TuTabla.TuCampo;
end;

4. En el evento OnBeforePrint del Pie de Pagina muestras el total acumulado

Código Delphi [-]
procedure TqrExtracto.PageFooterBand1BeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
begin
  qrlabel1.Caption := FormatFloat(',0.00',fTotal);
end;

5. Como decimos por aca, listo el Pollo.

Espero que sirva.

Saludos.

Lord Delfos 18-03-2008 16:12:20

¡Sí! ¡Magistral!

¡Grande, jcarteagaf!

Funcionó maravillosamente... Hacía dos horas que me estaba peleando con variables y eventos... Es que esto de los reportes es nuevo para mí.

Gracias miles, amigo.

Saludongos.

ContraVeneno 18-03-2008 16:46:41

Pues yo simplemente si quiero un sub total por cada grupo, coloco un TQRExpr en la banda "GroupFooter" y le coloco su propiedad "ResetAfterPrint" a verdadero. De esa forma, me va dando el subtotal de cada grupo.

Y para un total general, colco un TQRExpr en una banda "Summary" con su propiedad "ResetAfterPrint" a Falso.

Y con eso no tengo que codificar ni variables, ni eventos.


La franja horaria es GMT +2. Ahora son las 21:00: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