Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Quickreport y totales al final de la impresion (https://www.clubdelphi.com/foros/showthread.php?t=24481)

LucianoRey 23-08-2005 02:49:59

Quickreport y totales al final de la impresion
 
  • Hola, quisiera me ayudaran con mi siguiente problema:
Tengo un reporte con corte por grupos de 4 categorias, al final del reporte mando el total global, y ademas subtotales por cada categoria, es decir:


Categoria cantA cantB cantC
Niño 120 20 15
Adulto 40 10 5
Local 160 30 20

Niño 100 50 15
Adulto 10 25 3
Foraneo 110 75 18

RecintoX 270 105 38

Niño 110 10 18
Adulto 30 10 7
Local 140 20 25

Niño 150 50 14
Adulto 17 30 1
Foraneo 167 80 15

RecintoY 307 100 63

AreaX 577 205 101

Gran total ___________________
Total Niño ___________________
Total Niño Local ___________________
Total Niño Foraneo ___________________

Total Adulto ___________________
Total Adulto Local ___________________
Total Adulto Foraneo ___________________.,



ahora esos subtotales, los pinto por medio de qrlabels, dentro de mi programa hago las sumas de esos subtotales, y al terminar el reporte, mando las cantidades a los labels, la primera vez bien, pero las posteriores me deja antiguos valores.
Ya probe poniendo una cadena vacia a mis labels antes de imprimir la banda que los contiene, pero no me funciono ó no lo supe hacer, tambien puse algunos qrexpression's (caption, expresion), pero no pude hacer que pintara algo, tambien dentro de la popiedad expression hice la suma de las variables de mi programa y nada.

Una disculpa tambien porque no pude alinear aqui, mi ejemplo de totales, pero espero se entienda.

Gracias de antemano.

ContraVeneno 23-08-2005 16:32:24

1.- Puedes alinear utilizando las etiquetas code:
Código:

Categoria cantA cantB cantC
Niño        120        20        15
Adulto        40        10        5
Local        160        30        20

2.- ¿Pusiste los QRExpression en una SummaryBand? :confused:
En mi reporte coloco QRexpressions en una SummaryBand y haciendo las operaciones en la propieedad expression me da los resultados sin problemas.

LucianoRey 23-08-2005 17:20:22

Quickreport y totales al final
 
Si los tengo en un banda de tipo Summary, tengo mi banda de detalle y en ella pongo los campos que quiero que salgan.
Luego en cada banda de grupo pongo un qrexpression y en su propiedad pongo sum(campo), luego al final del reporte en la banda Summary, para el total global hago lo mismo.
Pero en los totales por grupo, como no me funciono asi, puse labels y dentro de mi programa, defini algunos variables de tipo registro, luego cada vez que pasa por el detail hago la suma por grupos para dejarla en estos registros, es decir:

Código:

if DataModule1.ADOQuery1.FieldValues['column3'] = 'DISTRITO FEDERAL' then
  begin
  if DataModule1.ADOQuery1.FieldValues['column4'] = 'Niño' then
        begin
        nSumaInfDf.EneA := nSumaInfDf.EneA + DataModule1.ADOQuery1.FieldValues['enea'];
        nSumaInfDf.FebA := nSumaInfDf.FebA + DataModule1.ADOQuery1.FieldValues['feba'];
  else if DataModule1.ADOQuery1.FieldValues['column4'] = 'Adulto' then
        begin
        nSumaAduDf.EneA := nSumaAduDf.EneA + DataModule1.ADOQuery1.FieldValues['enea'];
        nSumaAduDf.FebA := nSumaAduDf.FebA + DataModule1.ADOQuery1.FieldValues['feba'];
        nSumaAduDf.MarA := nSumaAduDf.MarA + DataModule1.ADOQuery1.FieldValues['mara'];
        nSumaAduDf.AbrA := nSumaAduDf.AbrA + DataModule1.ADOQuery1.FieldValues['abra'];
 else if DataModule1.ADOQuery1.FieldValues['column3'] = 'PROVINCIA' then
  begin
  if DataModule1.ADOQuery1.FieldValues['column4'] = 'Niño' then
        begin
        nSumaInfPr.EneA := nSumaInfPr.EneA + DataModule1.ADOQuery1.FieldValues['enea'];
        nSumaInfPr.FebA := nSumaInfPr.FebA + DataModule1.ADOQuery1.FieldValues['feba'];

y luego antes de imprimir el summary, asigno los valores de mis registros a los qrlabels, lo hice asi porque no me funciono cuando puse qrexp.. en lugar de qrlabels.

LucianoRey 23-08-2005 17:27:34

Quickreport y totales al final
 
Ah, se me olvidaba, la forma en que trate de asignar los valores a los qrexpression la hice de las siguientes formas:
Código:

QRExpr1.Caption:=IntToStr( nSumaInfDf.EneA + nSumaAduDf.EneA ); y nada
QRExpr1.Value no supe como usarlo
QRExpr1.Expression:=IntToStr( nSumaInfDf.EneA + nSumaAduDf.EneA ); y nada

y poniendo en la propiedad Expression, la formula SUM( nSumaInfDf.EneA + nSumaAduDf.EneA ) y nada, saludos y gracias.

ContraVeneno 24-08-2005 17:29:11

Cita:

QRExpr1.Expression:=IntToStr( nSumaInfDf.EneA + nSumaAduDf.EneA ); y nada
Es que mas bien creo que aqui se utiliza de la siguiente forma:
Propiedad Expression = Sum(Campo3)
para que te de la suma.

Count(campo), AVG(campo), etc, etc... puedes utilizar el editor de la propiedad expression para ver cuál es la función que necesitas.

jdangosto 25-08-2005 12:01:30

¿Por que no utilizas una simple consulta en un tquery?

El resultado lo plasmas en el informe y creo que te evitaría muchos quebraderos de cabeza.

Ya sabes...
Código SQL [-]
Select SUM(campo1) from tu_tabla;

ContraVeneno 25-08-2005 17:29:57

En realidad un QRExpression que funcione correctamente ahorraría un uso inecesario de un TQuery extra.


La franja horaria es GMT +2. Ahora son las 16:46:08.

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