如何將報表與Lazarus中FastReport的資料連線?
FastReport .NET是適用於Windows Forms,ASP.NET,MVC和.NET Core的全功能報表解決方案。它可以在Microsoft Visual Studio 2005-2019中使用。支援.Net Framework 2.0-4.x,.NET Core 3.0及以上版本。
在FastReport .NET 2021.1的新版本中,我們實現了對.NET 5的支援。新增了新條形碼-Deutsce Post Leitcode。將RTF轉換為報告物件的演算法已得到顯著改進。並且還新增了用於轉換數字的新功能。
慧都網歡迎免費下載體驗。
在上一篇有關使用圖表的圖表中,我們已經熟悉商業圖形和條形碼。現在是時候使任務複雜化並使用不同的資料來源了。大多數報告通常基於資料庫中的資料。為了訪問此資料,Lazarus提供了FastReport使用的強大機制。
資料訪問元件
這指的是“資料訪問”選項卡中的元件,這些元件可以用作報表的資料來源。任何TDataSet後繼元件都可以用於此目的。
除了訪問專案中定義的資料外,FastReport還允許您在執行時建立新元件。我們公司建立資料訪問元件的原理與Lazarus環境中使用的原理非常相似-我們在表單上強加了一個元件,並在物件檢查器中配置了它的屬性。在選擇資料庫格式時,執行時連線的功能受到更多限制,因此在撰寫本文時,只能在執行時建立DBF和SqLite3。
這是指DataAccess選項卡中的元件,這些元件使用FastReportn選項卡中的TfrxDBDataSet聯結器元件將表或其他資料來源連線到波段。該元件充當資料來源和FastReport核心之間的中介。該元件負責瀏覽記錄和訪問欄位。這樣,您就可以避免將FastReport核心與任何資料訪問庫繫結在一起。
FastReport可以與BDE和任何其他庫同時使用,也可以從與資料庫無關的源(例如陣列或檔案)中完全檢索資料。
TfrxDataSet元件旨在與資料來源一起使用,並且應注意其多功能性。它可以使用從TDataSet繼承的所有連線。這就是BDE,CVS和絕大多數其他庫!要與其他資料來源(陣列,檔案等)一起使用,請使用TfrxUserDataSet元件。
要將TfrxDBDataSet元件連結到資料來源,必須配置以下選項之一:
- DataSet屬性,直接連結到表或查詢。
- DataSource屬性,該屬性連線到TDataSource元件。
兩種連線方法都是等效的,只是第一種方法沒有TDataSource元件。
為了使元件及其相關資料在報告中可用,您需要明確指定在報告中使用哪些資料來源。在FastReport設計器中,選擇選單項“ Report / Data ...”,然後在出現的視窗中選中所需源旁邊的框。
FastReport設計器中的元件說明
TfrxDBFTable元件旨在組織對.dbf資料庫表的訪問,並具有以下屬性:
- FilePath指定資料庫資料夾的路徑。
- TableName分配資料庫的名稱。透過選擇資料庫,您還將更改路徑。
- FieldAliases允許您指定自定義欄位名稱。
- Filter包含一個用於過濾記錄的表示式。
- 已過濾確定是否應用過濾器。
- IndexFieldNames儲存構成索引的欄位的名稱。
- IndexName定義二級索引的名稱。
- MasterFields包括與主資料集關聯的欄位。
- 母版與母版資料集相同。
- UserName設定資料集的別名(使用者名稱)。
元件的屬性分配與Lazarus中的TDbf屬性相同。要將元件連線到資料庫表,只需填寫TableName屬性。透過設定Active:= True開啟表。
FieldAliases屬性編輯器允許您選擇在訪問表時將可用的欄位,併為每個欄位和整個表設定自定義名稱。
MasterFields屬性編輯器用於在兩個表之間建立主從關係。要在從屬表中連結兩個具有主從關係的表,請在Master屬性中指定主表,然後呼叫MasterFields屬性編輯器。如果表具有要使用的二級索引,請首先配置IndexName屬性。
該編輯器使您可以直觀地連結資料集的主欄位和明細欄位。當集透過主/從關係連結時,詳細集的內容在您瀏覽主集時被過濾,因此它僅包含與當前主集記錄相關的記錄。
要連結集欄位,請從左側列表(詳細集)中選擇該欄位,然後從右側列表(主集)中選擇該欄位,然後單擊“新增”按鈕。這會將欄位對映移到較低的列表。要清除底部列表,請使用“清除”按鈕。重要的是要注意,要連結的欄位必須是同一型別並且是關鍵。
但是在Lazarus本身中,這些屬性不適用於TDbf元件的選擇(主從分類和篩選),並且由於我們使用了此元件,因此它對我們也不起作用。
TfrxLazSqliteQuery元件旨在使用SqLite3對資料庫進行SQL查詢,並具有以下屬性:
- 資料庫指定資料庫連線名稱(預設始終為“ sqlLite”)。
- FieldAliases允許您指定自定義欄位名稱。
- 過濾器儲存一個表示式以過濾記錄。
- 已過濾確定是否應用過濾器。
- Master與Master資料集相同。
- 引數顯示查詢引數列表。
- SQL包含查詢文字。
- UserName設定資料集的別名(使用者名稱)。
- IgnoreDupParams-如果為true,則查詢引數的名稱將不會在引數編輯器中重複。
SQL屬性具有其自己的編輯器,用於填充SQL查詢:
Params屬性也有其自己的編輯器。如果查詢文字包含引數,則可用。
引數可以有兩種型別:一種是從主資料集分配的,另一種是具有特定值的,其中值可以是常量,對變數的引用或物件屬性。
如果引數是從主資料集中獲取的,則必須配置TfrxLazSqliteQuery.Master屬性。資料集必須包含與引數名稱相同的欄位。無需指定引數型別和值。
TfrxLazSqliteDataBase元件用於連線到SqLite3資料庫。其用途類似於TSQLite3Connection和TSqlTransaction元件,並且具有以下屬性:
- 已連線-啟用True時,將啟用連線。
- DatabaseName允許您選擇資料庫的名稱。
- LoginPrompt定義在連線資料庫時是否必須要求使用者輸入密碼。如果LoginPrompt = False,則必須在連線字串中指定使用者名稱和密碼。
透過資料庫訪問構建報告
考慮構建一個簡單的報告,其中包含資料訪問元件,我們將以LDemo演示資料庫為例。
首先,讓我們建立一個專案,透過該專案我們將進行實驗。在Lazarus中建立一個新專案,並將其放在表單元件TfrxReport,TfrxDesigner,TfrxDialogControls,TfrxDBDataset,TDbf上。
配置與資料庫的連線。為此,請找到Dbf1的TableName屬性,然後在對話方塊中選擇資料庫檔案-任何具有.dbf副檔名的檔案都可以使用。然後將frxDBDataset1屬性DataSet設定為“ Dbf1”。
然後將按鈕新增到表單,然後在OnClick中輸入以下程式碼:
procedure TForm1.Button1Click(Sender: TObject); begin frxReport1.DesignReport; end;
記住要允許Linux專案使用執行緒。安裝文章中對此進行了描述 。之後,編譯並執行專案。建立終端使用者報告設計器不需要任何其他操作。
當您單擊“設計”時,設計器將開啟並顯示一個空報告。考慮在這種環境下構建簡單的報告。順便說一句,到目前為止,您已經知道如何將資料庫從Lazarus連線到FR。
一個簡單的“列表”型別報告
現在,我們將在執行時從一個已經使用FR的資料庫表中輸出資料。執行以下步驟來生成報告:
1.單擊設計器工具欄上的“新建報告”按鈕。FastReport將建立一個空報告,其中包含頁面“程式碼”,“資料”,“ Page1”。
2.切換到“資料”頁面,然後在頁面上放置“ DBF表”元件:
3.選擇要連線的資料庫。為此,透過從演示專案中選擇customer.dbf檔案,在物件檢查器中設定TableName屬性。
4.要將1級資料庫連線到表,請雙擊該表,然後在開啟的視窗中選擇我們的表。然後將所需欄位從“資料樹”視窗拖放到報告表上。我們的報告將如下所示:
要檢視生成的報告,請單擊工具欄上的“預覽”按鈕。
有用的資料處理選項
“資料”選項卡不僅適用於資料訪問元件。使用“文字”和“繪圖”物件,可以放置說明標籤並繪製簡單的圖,如下圖所示:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69995027/viewspace-2765839/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- fastreport .net列印普通報表AST
- powerbuildr中如何使用dblink連線的表UI
- FastReport 如何透過程式碼建立報告表單AST
- 達夢資料庫如何將Excel表的資料複製到表中資料庫Excel
- 如何在weka中連線資料庫資料庫
- FastReport資訊:Blazor中的報告和PDF文件ASTBlazor
- 資料庫與python的連線資料庫Python
- 如何配置報表生成器FastReport.Net環境AST
- 資料庫表連線的簡單解釋資料庫
- 資料結構與演算法 | 線性表 —— 連結串列資料結構演算法
- 如何連線MySQL資料庫MySql資料庫
- php與資料庫連線如何實現資料的順序和倒序PHP資料庫
- PHP中的資料庫連線方法PHP資料庫
- IDEA中資料庫連線Idea資料庫
- 聊聊國產資料庫遷移中的表連線效能問題資料庫
- lazarus資料序列為JSONJSON
- 資料結構與演算法-線性表-單連結串列資料結構演算法
- 資料結構-線性表、連結串列資料結構
- 在scrapy的pipelines中連線資料庫資料庫
- 資料庫中字串連線符的使用資料庫字串
- 精PHP與MYSQL資料庫連線PHPMySql資料庫
- Java中的資料庫連線池:HikariCP與C3P0Java資料庫
- linq如何設定連線資料庫的字串資料庫字串
- 【資料結構】線性表-單連結串列資料結構
- 不能連線資料庫如何解決資料庫
- DBeaver如何連線一個資料庫資料庫
- 如何掌握python連線redis資料庫?PythonRedis資料庫
- JDBC中連線資料庫的常用jar包JDBC資料庫JAR
- django中的資料庫連線池實現Django資料庫
- 雜談---資料庫連線中的藝術資料庫
- SQLYOG連線資料庫時報錯1251SQL資料庫
- 資料庫連線異常故障報告資料庫
- 用c#建立與資料庫的連線 c#連sqlserverC#資料庫SQLServer
- SQLAlchemy - 資料庫的連線、建立會話與模型SQL資料庫會話模型
- 如何將MacBook連線到電視?Mac
- jq 將form表單中的資料轉為jsonORMJSON
- Stimulsoft Reports報表使用者手冊:資料帶中的交叉表報表
- lazarus 開啟 sqlite3資料SQLite