PDA

Ver la Versión Completa : Imprimir y agrupar info desde arreglo con QuickReport


ZRR
01-02-2006, 20:22:45
Que tal a todos buen dia.

Tengo un problema para agrupar información en un reporte con QuickReport tomando los datos desde 1 arreglo.
Tengo en quickReport un DetailBand (TQRBand) y dentro del DetailBand 4 TQRLabel. Imprime el contenido de mi arreglo, pero tengo problemas si intento imprimir totales por Cliente, no he podido agrupar para que cada que sea un cliente diferente, muestre la suma del importe para el cliente, imprima el encabezado de las columnas para el siguiente cliente y su total y asi sucesivamente.

Agregue un GroupHeader con los titulos de las columnas, un TQRSubDetail para los datos y un Group Footer con las TQRLabel para los totales, pero todo mi arreglo se imprime en el mismo grupo de datos y el total solo muestra el del ultimo cliente encontrado:


procedure TForm1.QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
CurrentItem := 0; // Puntero del arreglo a imprimir
end;
...
//los datos estan en un arreglo:
procedure TForm1.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);
begin
//si hay mas datos, QuickReport imprimirá otra banda de detalle
MoreData := CurrentItem < High(arr);

//imprimir total del cliente
if (cveClienteAux<>'') and (arr[CurrentItem,0]<>cveClienteAux) then
begin
QRLCveCliente.Caption:=cveClienteAux;
QRLSumaImporte.Caption:=FloatToStr(sumaImporte);
//******COMO INSERTAR UN NUEVO GRUPO DE DATOS AQUI?*****
sumaImporte:=0;
end;

if MoreData then
begin
cveClienteAux:=arr[CurrentItem,0];
QRLCliente.Caption:=arr[CurrentItem,0];
QRLFecha.Caption:=arr[CurrentItem,1];
QRLNumero.Caption:=arr[CurrentItem,2];
QRLImporte.Caption:=arr[CurrentItem,3];
end;
Inc(CurrentItem);
end;


Como puedo hacer que para cada cliente diferente (el arreglo esta ordenado por cliente) se impriman los totales y se genere otro GroupHeader-TQRSubDetail-Group Footer?

Gracias por su ayuda