2010-09-06 66 views
5

Estoy tratando de hacer lo siguiente con fastreport y delphi. Tengo un informe que contiene ...FastReport - Cómo sumar valores específicos de groupfooter en una nueva banda de pie de página

EncabezadoDelGrupo -------> para Vendedor cliente Masterdata -------> CustomerName, Equilibrio PieDelGrupo -------> Suma (Saldo) de Salesman-1 MasterData -------> CustomerName, Balance GroupFooter -------> Suma (saldo) de Salesman-2 MasterData -------> CustomerName, Balance GroupFooter -------> Suma (saldo) de Salesman-3 . . . Masterdata -------> CustomerName, Equilibrio PieDelGrupo -------> Suma (Balance) de Vendedor-N

====> Aquí quiero tener: pie de página-2 - ------> SUM (Suma (Saldo) de Vendedor-1, Suma (Saldo) de Vendedor-2, Suma (Saldo) de Vendedor-3) (¡SOLO!)

ReportFooter --- -----> Saldo total del cliente.

¿Alguien tiene una idea para resolver el problema con el motor de script fastreport?

Gracias.

Respuesta

2

me gustaría crear un informe variable global 'salessum'

var 
    salessum: extended; 

procedure MYReportOnStartReport(Sender: TfrxComponent); 
begin 
    salessum := 0.0; 
end; 

En el caso OnBeforePrint de la banda de detalle incrementar el salessum si se trata de uno de los vendedores deseados.

procedure MYReportDetailBeforePrint(Sender: TfrxComponent); 
begin 
    if (mydata.salesmankey = "key 1") or (mydata.salesmankey = "key2") or (...) then 
    begin 
    salessum := salessum + mydata.amount; 
    end; 
end; 

Si desea que la suma extra al final del informe a continuación, añadir una banda de resumen del informe y en el caso OnBeforePrint establecer el valor del campo de texto correspondiente a la cadena con formato de salessum.

procedure MYReportSummaryBeforePrint(Sender: TfrxComponent); 
begin 
    txtMyBestSalesMenTotal.Text := FormatFloat('#,##0.00', salessum); 
end; 

Alternativamente, si desea que la suma adicional inmediatamente después del subtotal vendedor de 3 a continuación, agregar un campo de texto en la banda de pie de grupo vendedor y en el caso OnBeforePrint establezca su propiedad visible como true/false dependiendo de qué tecla vendedor actualmente está procesando y estableciendo su valor al valor de salessum. También necesitarás asegurarte de que la banda se estira automáticamente.

He comenzado a hacer casi todas las tareas de suma usando secuencia de comandos y variables de informe, ya que es mucho más fácil controlar cuándo y dónde deben incrementarse, reiniciarse o imprimirse, etc. Usar las funciones sum integradas (en cualquier sistema de informes)) solo es útil para totales muy simples, que, por alguna razón, son muy pocos de mis informes.

Espero que tenga sentido (¡y es lo que realmente estás tratando de lograr!).

Cuestiones relacionadas