FastReport VCL在 TfrxReport.OnGetValue 中傳遞變數值

roffey發表於2021-06-16

是用於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發現未知的變數。事件處理程式應返回該變數的值。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69995027/viewspace-2776935/,如需轉載,請註明出處,否則將追究法律責任。

相關文章