FastReport VCL程式設計師手冊:互動式報表
FastReport VCL是用於Delphi,C ++ Builder,RAD Studio和Lazarus的報告和文件建立VCL庫。它提供了視覺化模板設計器,可以訪問最受歡迎的資料來源,報告引擎,預覽,將過濾器匯出為30多種格式,並可以部署到雲,Web,電子郵件和列印中。
近日,FastReport VCL更新至v6.9,在新版本中,在PDF匯出中增加了對以下物件的互動式表單支援:文字,核取方塊和圖片。能夠透過InteractiveFormsFontSubset屬性將所需的字形僅包含在互動式形式中。同時修復了多個Bug問題。歡迎下載體驗。(點選下方按鈕下載)
【慧都網】免費下載 FastReport VCL
在互動式報表中,可以定義對滑鼠單擊預覽視窗中任何報表物件的反應。例如,使用者可以單擊資料行,從而執行包含所選行的詳細資料的新報告。
任何報告都可以互動。為此,您只需要建立一個TfrxReport.OnClickObject事件處理程式。以下是此處理程式的程式碼示例:
Pascal:
procedure TForm1.frxReport1ClickObject(Page: TfrxPage; View: TfrxView; Button: TMouseButton; Shift: TShiftState; var Modified: Boolean); begin if View.Name = 'Memo1' then ShowMessage('Memo1 contents:' + #13#10 + TfrxMemoView(View).Text); if View.Name = 'Memo2' then begin TfrxMemoView(View).Text := InputBox('Edit', 'Edit Memo2 text:', TfrxMemoView(View).Text); Modified := True; end; end;
C ++:
void __fastcall TForm1::frxReport1ClickObject(TfrxView *Sender, TMouseButton Button, TShiftState Shift, bool &Modified) { TfrxMemoView * Memo; if(Memo = dynamic_cast <TfrxMemoView *> (Sender)) { if(Memo->Name == "Memo1") ShowMessage("Memo1 contents:\n\r" + Memo->Text); if(Memo->Name == "Memo2") { Memo->Text = InputBox("Edit", "Edit Memo2 text:", Memo->Text); Modified = true; } } }
在OnClickObject處理程式中,您可以執行以下操作:
- 修改傳遞給處理程式的物件或頁面的內容(因此,應指定“ Modified”標誌,以便將修改內容考慮在內);
- 呼叫TfrxReport.PrepareReport用於重建/重建報告的方法。
在此示例中,單擊名稱為“ Memo1”的物件將顯示一條包含該物件內容的訊息。單擊《備忘錄2》時,會顯示一個對話方塊,可以在此修改該物件的內容。將«Modified»標記設定為«True»可以保留和顯示更改。
同樣,可以為點選定義不同的反應。例如,它可以執行新報告。有必要注意以下幾點。一個TfrxReport元件只能在預覽視窗中顯示一個報告。這就是為什麼應該在單獨的TfrxReport物件中或在同一物件中執行報表,但是必須刪除當前報表的原因。
為了向終端使用者提供有關可點選物件的提示,我們可以在滑鼠游標經過預覽視窗中的可點選物件時對其進行修改。為此,請在報表設計器中選擇所需的物件,並將其cursor屬性設定為crDefault以外的其他值。
另一個細節涉及定義可點選物件。在簡單的報表中,可以在物件的名稱或其內容中定義它。但是,這並不總是在更復雜的情況下執行。例如,應在選定的資料行中建立詳細的報告。使用者單擊內容為“ 12”的«Memo1»物件。該物件指的是什麼資料線?這就是為什麼您應該知道主鍵,它清楚地標識了這一行的原因。FastReport可以為每個報表的物件分配一個字串,其中包含任何資料(在本例中為主鍵的資料)。此字串儲存在TagStr屬性中。
讓我們透過一個報告示例來說明此過程,該示例包含在FastReportDemo.exe-“簡單列表”演示中。這是公司的客戶列表,其中包含諸如“客戶名稱”,“地址”,“聯絡人”等資料。資料來源是DBDEMOS演示資料庫中的“ Customer.db”表。該表具有一個主鍵,即«CustNo»欄位,該欄位未在報告中顯示。我們的任務是透過單擊完成的報告中的任何物件來確定其引用的記錄,這意味著獲取主鍵的值。為此,只需TagStr在“主資料”區域中的所有物件的屬性中輸入以下值:
[Customers."CustNo"]
在報表的構建過程中,TagStr屬性的內容的計算方法與文字物件的內容計算方法相同;這意味著將用變數的值代替所有變數。在這種特殊情況下,變數是括在方括號中的變數。這就是為什麼TagStr在建立報表後,“ 1005”,“ 2112”等型別的行將包含在主資料上的物件的屬性中的原因。從字串到整數的簡單轉換將為我們提供主鍵的值,透過它可以找到所需的記錄。
如果主鍵是複合鍵(即它包含多個欄位),則TagStr屬性的內容可以如下:
[Table1."Field1"];[Table1."Field2"]
構造報告後,該TagStr屬性包含“ 1000; 1”型別的值,從中獲取鍵的值也不難。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69995027/viewspace-2769329/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- FastReport VCL程式設計師手冊:使用TfrxReport元件AST程式設計師元件
- 報表生成器FastReport .Net程式設計師手冊:WCF服務的簡單例子AST程式設計師單例
- FastReport VCL如何從程式碼訪問報告物件AST物件
- FastReport VCL報表控制元件教程:元件編輯器寫作AST控制元件
- 程式設計師裝B手冊程式設計師
- 程式設計師語錄手冊程式設計師
- 程式設計師街頭生存手冊程式設計師
- 極限程式設計 vs 互動式設計 (轉)程式設計
- 程式設計師技術進階手冊(一)程式設計師
- 互動式UI設計指南UI
- fastreport .net列印普通報表AST
- ActiveReports 報表應用教程 (9)---互動式報表之動態排序排序
- 程式設計師健康手冊——終極好姿勢指南程式設計師
- 程式設計師必備:技術面試準備手冊程式設計師面試
- iOS 與 JS 互動手冊 - JavaScriptCoreiOSJSJavaScript
- ActiveReports 報表應用教程 (8)---互動式報表之動態過濾
- FastReport 如何透過程式碼建立報告表單AST
- 轉職成為TypeScript程式設計師的參考手冊TypeScript程式設計師
- ActiveReports 報表應用教程 (11)---互動式報表之文件目錄
- Axure RP 10 互動式原型設計原型
- 複雜報表設計之動態報表
- shell程式設計之免互動程式設計
- 優秀互動設計師成長指南
- 風變程式設計:互動式學習,更容易堅持!程式設計
- 程式設計模式-表驅動程式設計程式設計設計模式
- 程式設計師裝逼速成手冊:你們感受一下程式設計師
- Axure RP 9:互動式原型設計工具原型
- sql語句的程式設計手冊(轉)SQL程式設計
- Fastreport.Net使用者手冊(十七):HTML標籤ASTHTML
- 表單互動設計之必選項思考
- 表單互動設計之二:校驗思考
- FastReport VCL在 TfrxReport.OnGetValue 中傳遞變數值AST變數
- 勞動報:(上海)程式設計師收入趨勢調查程式設計師
- HTML 互動式表單驗證HTML
- 互動式動畫設計工具Principle中文版動畫
- 互動設計指南
- 移動應用設計:註冊和表單
- 筆記┃ 網易資深互動設計師帶你探索設計師成長之道筆記