【问题标题】:How to write events of "fastreport band" in delphi code如何在delphi代码中编写“fastreport band”事件
【发布时间】:2014-11-19 11:16:03
【问题描述】:

我的快速报告中有主数据带。我可以在 pascal 脚本中的“打印后的主数据”上编写代码,但我想知道有没有办法以主要的 delphi 形式编写这段代码。

帕斯卡脚本:

procedure MasterDataOnAfterPrint(Sender : TfrxComponent) 
begin
   Sup_Page.Text := 'Cont on Page ' + IntToStr(<Page> + 1);
end;

【问题讨论】:

  • 您在寻找frxReport1AfterPrint(Sender: TfrxReportComponent); 还是在寻找How to use custom Delphi function in FastReport 4?
  • 我正在寻找 delphi 代码中 fastreport 组件的事件...例如(发送者为 TfrxMasterData)。AfterPrint := CustomProcedure;

标签: delphi pascal fastreport pascalscript


【解决方案1】:

您有不同的选项可以在打印时干扰您的报告。
您可以使用事件AfterPrint 和/或BeforePrint,它们将在每次打印时将组件作为参数提供。
如果您想访问事件中提供的另一个组件,您可以使用 FindComponent 为实际打印的页面提供组件。
要访问报告中的函数,您可以调用 Calc 并将函数名称作为参数。
根据您的需求,另一个选项是使用 GetValue 事件,每次评估变量时都会调用该事件,提供变量的名称和值的 var 参数,这将使您能够返回您的值喜欢。
一个简短的例子可能有用:

procedure TFormOrDM.frxReport1AfterPrint(Sender: TfrxReportComponent);
begin
  // if Sender is TfrxMasterdata then  // Filter out all Masterdatasets
  if Sender.Name = 'Masterdata1' then // Filter out a specific Masterdatasets
  begin
    TFrxMemoView(frxReport1.FindComponent('Sup_Page')).Text := 'Cont on Page ' + FloatToStr(frxReport1.Calc('<Page>') + 1);
  end;
end;

procedure TFormOrDM.frxReport1BeforePrint(Sender: TfrxReportComponent);
begin
  // Another place you might use to acsess components
end;

procedure TFormOrDM.frxReport1GetValue(const VarName: string; var Value: Variant);
begin
  if VarName = 'myValue' then // own variable defined in the report
    Value := 'Cont on Page ' + FloatToStr(frxReport1.Calc('<Page>') + 1);
end;

【讨论】:

  • 非常感谢您,先生.. 竖起大拇指
猜你喜欢
  • 1970-01-01
  • 2021-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多