PDA

Ver la Versión Completa : FastReport: Funcionamiento de SUM.


Jose_Pérez
07-09-2005, 14:11:18
Hola a todos:

Estoy intentando hacer un listado de producción de vehículos. Dependiendo del tipo de vehículo, el cáculo de realiza en horas, viajes o kilómetros. Programando el evento OnBeforePrint del MasterData he conseguido imprimir correctamente la columna según el vehículo.


procedure MasterDataOnBeforePrint(Sender: TfrxComponent);
begin

If Get('Tipo')=1 Then
begin
MemoMasterContador1.Text:='';
MemoMasterContador2.Text:='[<Kilometros> #n%2,0n]';
end;

If Get('Tipo')=2 Then
begin
MemoMasterContador1.Text:='[<Horas> #n%2,0n] h.';
MemoMasterContador2.Text:='[<Minutos> #n%2,0n] min.';
end;

If Get('Tipo')=3 Then
begin
MemoMasterContador1.Text:='';
MemoMasterContador2.Text:='[<Viajes> #n%2,0n]';
end;

end;


El problema viene en el GroupFooter y la función SUM. No puedo programa el evento OnBeforePrint del mismo modo que hice con el MasterData, porque justo en ese momento el report habrá terminado de imprimir los datos, y SUM dará un valor vacío ¿Me explixco?

Es decir, esto no funciona:


procedure GroupFooterOnBeforePrint(Sender: TfrxComponent);
begin

If Get('Tipo')=1 Then
begin
MemoFooterContador1.Text:='';
MemoFooterContador2.Text:='[Sum(<Kilometros>) #n%2,0n]';
end;

If Get('Tipo')=2 Then
begin
MemoFooterContador1.Text:='[Sum(<Horas>) #n%2,0n] h.';
MemoFooterContador2.Text:='[Sum(<Minutos>) #n%2,0n] min.';
end;

If Get('Tipo')=3 Then
begin
MemoFooterContador1.Text:='';
MemoFooterContador2.Text:='[Sum(<Viajes>) #n%2,0n]';
end;

end;


¿Cómo puedo resolverlo?

Saludos y gracias.