PDA

Ver la Versión Completa : Problemas con Summary Band


GerTorresM
04-11-2010, 10:01:58
Hola a tod@s


La situación que se me presenta el día de hoy es la siguiente:

Tengo un reporte en el que utilizo una banda Detail y una subdetail, a su vez la banda subdetail utiliza un banda de tipo Group footer para mediante un QRExpresion calcular los subtotales propios de los datos mostrados en el subdetail; la propiedad master del QRExpresion esta ligada a la consulta con la que trabaja el subdetail y la que se ejecuta con parámetros cada vez que cambia el Datasorce que maneja los detalles. En orden de ideas hasta ahí todo muy bien.

Ahora finalmente he colocado una banda Summary en la que pretendo mostrar el total en el reporte, pero es allí donde surge el problema, ya que utlizando nuevamente QRxpresion como sumatoria de valor ej. Sum(QDetalleListadoPagos.valor) me muestra una valor que corresponde a la suma de los registros del subdetail exceptuando el último registro.

La propiedad master la coloque tanto en blanco como con el nombre del reporte pero la cosa sigue igual.


Este es el constructor del reporte


constructor TQRReportePagosConsolidado.Create(pFechaInicial, pFechaFinal : TDate);
begin
inherited Create(nil);
try
FechaInicial_local := pFechaInicial;
FechaFinal_local := pFechaFinal;
self.QRLNombreReporte.Caption:= 'LISTADO CONSOLIDADO DE PAGOS ENTRE ' + DateToStr(FechaInicial_local) + ' Y ' + DateToStr(FechaFinal_local);
self.QServiciosListadoPagos.ParamByName('pFechaInicial').AsDateTime:= FechaInicial_local;
self.QServiciosListadoPagos.ParamByName('pFechaFinal').AsDateTime:= FechaFinal_local;
self.QServiciosListadoPagos.Open;
finally
end;
end;


y este el evento del change del DataSource


procedure TQRReportePagosConsolidado.DSListadoServiciosPagosDataChange(
Sender: TObject; Field: TField);
begin
inherited;
try
self.QDetalleListadoPagos.Close;
self.QDetalleListadoPagos.ParamByName('pReferencia').AsInteger:= Self.DSListadoServiciosPagos.Dataset.FieldByName('CodigoServicio').AsInteger;
self.QDetalleListadoPagos.ParamByName('pFechaInicial').AsDateTime:= FechaInicial_local;
self.QDetalleListadoPagos.ParamByName('pFechaFinal').AsDateTime:= FechaFinal_local;
self.QDetalleListadoPagos.Open;
except on e : exception do
end;
end;





agradezco de antemano el tiempo dedicado y cualquier comentario al respecto




gertorresm
Colombia

GerTorresM
04-11-2010, 10:39:51
En lo que logro analizar en la sumatoria del reporte cuando en la banda de subdetail, cuando existe más de un registro para la sumatoria tan solo el primer registro, por eso mi resultado no es coherente.

adjunto imagen de reporte (vease la primera parte del mismo).

quedo pendiente de cualquier comentario de ayuda, gracias de antemano.



gertorresm
Colombia