FastReport VCL程式設計師手冊:在 TfrxReport.OnGetValue 中傳遞變數值
阿新 • • 發佈:2021-06-16
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