1. 程式人生 > 其它 >FastReport VCL程式設計師手冊:在 TfrxReport.OnGetValue 中傳遞變數值

FastReport VCL程式設計師手冊:在 TfrxReport.OnGetValue 中傳遞變數值

FastReport VCL是用於Delphi,C ++ Builder,RAD Studio和Lazarus的報告和文件建立VCL庫。它提供了視覺化模板設計器,可以訪問為30多種格式,並可以部署到雲,網站,電子郵件和列印中。

近日,FastReport VCL更新至v6.9,在新版本中,在PDF更新中增加了對以下物件的並行表單支援:文字,替換和圖片。相互之間形式中。同時修復了多個Bug問題。【慧都網】歡迎下載體驗。

指令碼變數

指令碼變數不在報告變數中,而是在TfrxReport.Script. 您可以使用 FastScript 方法定義它們。讓我們看看報告變數和指令碼變數之間的一些區別:

使用指令碼變數很容易。只需通過這種方式為變數賦值:

Pascal:

frxReport1.Script.Variables['My Variable'] := 'test';

C++:

frxReport1->Script->Variables->Variables["My Variable"] = "test";

在這種情況下,如果變數不存在,FastReport 將建立一個變數,或者為其分配一個值。將字串分配給該變數時,無需使用額外的引號。

在 TfrxReport.OnGetValue 中傳遞變數值

將值傳遞給報告的最後一種方法是使用TfrxReport.OnGetValue事件處理程式。如果您需要傳遞動態值(可能會因記錄而異),這種方式很方便。前兩種方法可用於傳遞靜態值。

讓我們看一下使用這種方式的例子。讓我們建立報告併為其放置“文字”物件。在此物件中鍵入以下文字:

[My Variable]

現在建立TfrxReport.OnGetValue事件處理程式:

procedure TForm1.frxReport1GetValue(const VarName: String; 
  var Value: Variant);
begin
  if CompareText(VarName, 'My Variable') = 0 then
    Value := 'test'
end;

執行報告,我們將看到變數顯示正確。在TfrxReport.OnGetValue每一次事件處理程式被呼叫時的FastReport發現未知的變數。事件處理程式應返回該變數的值。

如果您對FastReport感興趣,可以在慧都網免費下載最新試用版,歡迎加入FastReport QQ交流群:702295239