PDA

Ver la Versión Completa : Agrupar y sumar en Rave


seoane
10-11-2007, 14:24:22
Tengo un consulta que me devuelve lo siguiente:


Tienda Fecha Caja Importe
----------------------------------------------------
1 10/10/2007 1 10,00
1 10/10/2007 1 10,00
1 10/10/2007 1 10,00
1 10/10/2007 1 10,00
2 10/10/2007 1 10,00
2 10/10/2007 1 10,00
2 10/10/2007 1 10,00
2 10/10/2007 2 10,00
2 10/10/2007 2 10,00

... etc


Y quiero hacer un reporte en Rave (si nadie sugiere nada mejor :) ) que me agrupe esos datos de la siguiente manera:


Tienda
Fecha
Caja
Importe
Importe
Importe
Importe

Total Caja
Total Fech

Fecha
Caja
Importe
Importe
Importe
Importe

Total Caja
Total Fech
Total Tienda


Es decir, agrupar los datos por Tienda, Fecha y Caja, y además calcular el total por Tienda, Fecha y Caja. Por ahora he conseguido agrupar los datos usando Band y Databand, pero lo que no consigo de ninguna manera es mostrar los diferentes totales. He probado con un CalcText, pero es evidente que lo estoy haciendo mal porque, o no aparece nada o solo muestra cero.

La verdad es que es la primera vez que hago un reporte con rave y estoy bastante perdido, si alguien me pudiera pasar un ejemplo muy básico de como agrupar los datos y calcular los totales, le estaría muy agradecido :)

Caral
10-11-2007, 14:57:50
Hola Seoane
Me gustaria poder ayudarte pero no manejo Rave, el que uso es Qreport, no se si seran parecidos o no.
Entiendo que necesitas agrupar los datos por Tienda, Fecha y Caja, lo que no entiendo es como pretendes los totales de Fecha y Caja, que ganas con esto?.
Para mi la logica es la que mantienes en principio, pero sacar solo los totales por el importe entre un rango de fechas.

Tienda 1
Fecha desde 01/10/2007 hasta 10/10/2007
Caja 1
Importe 10
Importe 20
Importe 10
Importe 10

Total Importe 50
----------------------------------------------------------
Tienda 2
Fecha desde 01/10/2007 hasta 10/10/2007
Caja 2
Importe 10
Importe 30
Importe 20
Importe 10

Total Importe 70

Recuerda que soy novato, es solo una idea.
Saludos

seoane
10-11-2007, 15:01:00
Amigo Caral, no se trata de lo que yo quiero si no de lo que me piden ... :D

Caral
10-11-2007, 15:15:00
Hola
Sin meterme en que lo que te piden, para mi es ilógico y demostrable, ya que como pretende tu jefe que hagas una totalización de las cajas (esto todavia seria medio posible) pero una tolalizacion de fechas?:confused::rolleyes:
Bueno, aparte de lo que pueda pensar, me parece que es un asunto de sentencia sql y que todo (en el caso de qreport) se hace en un qrband.

else If Reporte = 'VentasXFechaContado' then
begin
ShortDateFormat := '#yyyy/mm/dd#';
try
QRVentasTipo:=TQRVentasTipo.Create(self);
QRVentasTipo.ADOQuery1.SQL.Add(' AND Fecha >= '+DateToStr(DTP1.Date)+' AND Fecha <= '+DateToStr(DTP2.Date));
QRVentasTipo.ADOQuery1.SQL.Add(' AND Factura.Terminos = "Contado" ');
QRVentasTipo.ADOQuery1.SQL.Add(' ORDER BY Fecha, Factura.CodFactura;');
QRVentasTipo.ADOQuery1.Open;
ShortDateFormat := 'dd/mm/yyyy';
QRVentasTipo.QRLabel10.Caption:= 'Reporte de Ventas detalladas Contado';
QRVentasTipo.QRLblDesde.Caption := DateToStr(DTP1.Date);
QRVentasTipo.QRLblHasta.Caption := DateToStr(DTP2.Date);
If RadioGroup1.ItemIndex = 0 then QRVentasTipo.Print
else QRVentasTipo.Preview;
finally
QRVentasTipo.Free;
end;
Esto es un despacito de codigo que uso en un reporte.
Creo que no te serviran de mucho mis intervenciones, pero aprovecho para saludarte.
Saludos

seoane
10-11-2007, 15:42:17
Hola Caral, lo de agrupar por fechas tiene su razón. Este tipo de informe es estándar, se utiliza para saber, con un simple vistazo, cuanto vendió cada caja, cuanto se vendió en un día de terminado y cuanto vendió cada tienda. Tanto la sentencia SQL como el formato del informe me vienen impuestos así que por ahí no creo que solucione nada :( .

Pero gracias de todas formas, yo también estoy encantado de saludarte :)

Caral
10-11-2007, 15:50:31
Hola
Lo de agrupar por fecha es diferente de Sumar o totalizar fechas, eso cambia las cosas.
Como sabes que soy un necio en esto, estoy haciendo un ejemplo que haga exactamente lo que quieres.
Calcula totales por tienda, en una fecha determinada y totaliza lo vendido por caja y la totalidad de las cajas.
Recuerda que mis ejemplo son en access y qreport, espero te pueda dar alguna idea, que puedas mejorar.
Saludos

Caral
10-11-2007, 16:56:53
Hola
No he podido terminarlo (la familia me reclama), pero por lo menos alguna idea creo que saldra del pequeño ejemplo, espero que te ayude.
Aqui (http://caral.clubdelphi.com/Publico/Ejemplos/Tienda.zip) esta.
Saludos

hecospina
11-11-2007, 01:14:49
Hola
No he trabajado con rave pero si lo he hecho en fast report y qreport
Me imagino que la diferencia no es mucha pues se pueden tener consultas sql para consultar la informacion

select tienda, fecha, caja, importe
from tabla
order by tienda, fecha, caja

busca en tu reporteador una opcion para adicionar un group header y adiona 3, el primero para la tienda, el segundo para la fecha y el ultimo para la caja
realizas la agrupacion en cada uno de ellos por el campo respectivo

el de master data colocas el campo del importe

si el reporteador no trae el group fother lo podras adicionar
en ellos colocas la expresion de la sumatoria del importe
debes buscar en las propiedades del objeto para colocar la opcion iniciar en cero para que no te acumule por cada grupo

de esta forma se puede hacer tanto en fast report como en qreport
espero que te ayude