FastReport OnBeforePrint для GroupFooter срабатывает два раза.

Lisichkin
Дата: 27.02.2014 13:17:11
Добрый день!

FastReport 4.6.77
OnBeforePrint для GroupFooter срабатывает два раза.
Когда футер печатается с самого начала страницы.
Дело в том что на событии OnBeforePrint у меня происходит расчет, который как следствие задваивается….

procedure GroupFooter1OnBeforePrint(Sender: TfrxComponent);
begin
  SumNedovoz := SumNedovoz + SUM(<fdsUnpaidDelivery."NotPaid">,MasterData1) - <fdsUnpaidDelivery."Vozvrat">;
  SumNDSNedovoz := SumNDSNedovoz + SUM(<fdsUnpaidDelivery."SumNDSNotPaid">,MasterData1)-<fdsUnpaidDelivery."NDSVozvrat">;
  ShowMessage(SUM(<fdsUnpaidDelivery."NotPaid">,MasterData1) - <fdsUnpaidDelivery."Vozvrat">);  
end;


P.S. Report.EngineOptions.DoublePass = false
Lisichkin
Дата: 27.02.2014 14:05:39
Не смог победить ошибку :( Пришлось обманывать FastReport

var
  SumNedovoz: Double;
  SumNDSNedovoz: Double;
  clients: TStringList;                            
    
procedure GroupFooter1OnBeforePrint(Sender: TfrxComponent);
var index: Integer;                                        
begin
  index := clients.IndexOf(<fdsUnpaidDelivery."ClientShortName">);
  if index=-1 then begin                                           
    SumNedovoz := SumNedovoz + SUM(<fdsUnpaidDelivery."NotPaid">,MasterData1) - <fdsUnpaidDelivery."Vozvrat">;
    SumNDSNedovoz := SumNDSNedovoz + SUM(<fdsUnpaidDelivery."SumNDSNotPaid">,MasterData1)-<fdsUnpaidDelivery."NDSVozvrat">;
    clients.Add(<fdsUnpaidDelivery."ClientShortName">);
  end else begin
    //ShowMessage('Повтор для: '+<fdsUnpaidDelivery."ClientShortName">);                
  end                
end;

begin
  SumNedovoz := 0.0;  
  SumNDSNedovoz := 0.0;
  clients := TStringList.Create;                      
end.
gpi
Дата: 27.02.2014 19:07:16
Engine.SecondScriptCall в FastReport 4.6.77 есть?
Lisichkin
Дата: 28.02.2014 10:15:05
gpi
Engine.SecondScriptCall - не нашел.
Есть ConvertNulls и DoublePass