![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
LazReport: Calcular Subtotales por página
Hola, estoy trabajando con LazReport y no encuento la manera de colocar el subtotal de una columna en cada página.
Lo que necesito es que si el reporte tiene, por ejemplo, 3 páginas, que se calcule el subtotal de cada una de ellas, sumandole el anterior. Ej: Si el subtotal de cada página es $100, necesitaria mostrar el subtotal de la página 1 ($100) el de la página 2 ($200) y el de la 3 ($300). Alguien sabe como sonseguir eso? Gracias! |
#2
|
|||
|
|||
Hola, disculpas por el Bump, pero necesito ayuda con esto.
Gracias! |
#3
|
||||
|
||||
Si no trae un componente específico para hacerlo entonces tendrás que usar una variable donde vayas almacenando la suma e ir imprimiéndola por página.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#4
|
||||
|
||||
Cita:
(recuerdo los malabarismos que hice con código para en el QuicReports 4 poder imprimir un listado a dos columnas por página)
__________________
Lazarus Codetyphon : Desarrollo de aplicaciones Object Pascal, libre y multiplataforma. |
#5
|
|||
|
|||
[Solucionado] LazReport: Calcular Subtotales por página
Hola, lamentablemente ese método no soluciona el problema. Si tengo un informe de 3 páginas, en la primera me muestra $100, en la segunda $100 y en la tercera $100 como subtotales!!!.
De todas maneras ya encontre una solución que paso a explicar por si alguien necesita hacer algo similar. Creo una variable global entera llamada totalPages (increible pero no encontre esta propiedad en el componente TfrReport) Código:
totalPages:Integer; Código:
procedure TForm1.frReport1BeginDoc; begin totalPages:=0; end; Código:
procedure TForm1.frReport1EndPage(pgNo: Integer); begin if frReport1.DoublePass and not frReport1.FinalPass then Inc(totalPages); end; Código:
procedure TForm1.frReport1First(Sender: TObject); begin total_acum:=0; total_acum:=total_acum+Sqlite3Dataset1.FieldByName('nombre_del_campo').Value; end; procedure TForm1.frReport1Next(Sender: TObject); begin if not frPackinglist_det.Eof then total_acum:=total_acum+Sqlite3Dataset1.FieldByName('nombre_del_campo').Value; end; Código:
procedure TForm1.frReport1GetValue(const ParName: String; var ParValue: Variant); begin if ParName='TOTAL_ACUM' then begin if frReport1.EMFPages.Count = totalPages then ParValue:=FormatFloat('0.#0',total_acum) else ParValue:=FormatFloat('0.#0',total_acum - Sqlite3Dataset1.FieldByName('nombre_del_campo').Value); end; end; Código:
begin Text:=TOTAL_ACUM; end; Con esto logro tener subtotales acumulativos por página Espero que les sirva, adjunto un PDF para que se vean los resultados, tener en cuenta que el total esta tomado de la base de datos y el sub total es el valor calculado, con eso se confirma que el metodo funciona bien. http://www.mgscreativa.com/Invoice_DB-10-0548.pdf Última edición por razor7 fecha: 20-08-2010 a las 02:34:31. |
#6
|
||||
|
||||
Precisamente esa era la solución que te dimos, usando una variable
![]() Por cierto, si usas la variable integer no funcionará correctamente cuando tengas importes con decimales.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#7
|
|||
|
|||
Cita:
Por otro lado, la variable "total_acum" debe ser Double, pero en ningun momento lo ongo en el post por que seguro que el que quiera implementarlo lo sabra. Por ultimo, por favor, lean el post completo, creo que esta bastante detallado. Saludos! |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Consulta con Subtotales. | manueljgomezc | Firebird e Interbase | 6 | 29-07-2010 17:14:39 |
lazreport problemas lazarus | anubis | Lazarus, FreePascal, Kylix, etc. | 1 | 30-11-2009 20:44:39 |
Subtotales al comienzo | yusnerqui | Varios | 6 | 08-06-2006 16:02:20 |
En los subtotales por pagina | alcides | Impresión | 0 | 07-06-2005 20:20:06 |
Subtotales en QuickReport | raugadel | Impresión | 3 | 12-05-2004 16:13:49 |
![]() |
|