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控制元件
- 程式設計師街頭生存手冊程式設計師
- fastreport .net列印普通報表AST
- FastReport 如何透過程式碼建立報告表單AST
- FastReport VCL在 TfrxReport.OnGetValue 中傳遞變數值AST變數
- 程式設計模式-表驅動程式設計程式設計設計模式
- Axure RP 10 互動式原型設計原型
- shell程式設計之免互動程式設計
- 風變程式設計:互動式學習,更容易堅持!程式設計
- 【遊戲互動】手遊適配設計遊戲
- sql語句的程式設計手冊(轉)SQL程式設計
- linux/unix程式設計手冊-16_20Linux程式設計
- 複雜報表設計之動態報表
- Axure RP 9:互動式原型設計工具原型
- Jupyter notebook/nteract/Atom中配置scala互動式程式設計環境程式設計
- 互動式動畫設計工具Principle中文版動畫
- 碼工成長手冊:剛畢業的程式設計師如何快速提升自己?程式設計師
- 摺疊屏手機上的互動設計
- LR.Net解放程式設計師雙手的自動生成程式碼程式設計師
- Global.asa程式設計完全參考手冊程式設計
- 解放程式設計師雙手之Supervisor程式設計師
- 一文學會Java的互動式程式設計環境jshellJava程式設計JS
- 皇家國際註冊賬號18669187779你眼中的程式設計師VS真實的程式設計師程式設計師
- 程式設計師必備手冊:阿里百萬年薪移動開發團隊整理,Android規範文件程式設計師阿里移動開發Android
- 如何利用AI做互動設計?北美互動設計師推薦10個顯著幫助UI/UX設計的AI工具!AIUIUX
- 程式設計師何苦為難程式設計師?程式設計師
- 如何運營設計沉浸式互動體驗模式模式
- 手遊UI互動動作設計研究:點選、滑動與拖拽UI
- 互動設計法則
- 程式設計師面試之MySQL資料庫表的設計程式設計師面試MySql資料庫
- 前端程式設計師面試指南,連HR都手動點讚了!前端程式設計師面試
- 一鏡到底——手遊互動中的情景化設計
- 作為雲端計算的互動設計師需要學習哪些?
- 程式設計師命令列查詞好幫手程式設計師命令列
- 10個最新互動式Web設計例項欣賞Web