翻譯|使用教程|編輯:張瑩心|2021-11-04 13:59:09.280|閱讀 343 次
概述: FastReport多級報告的結構可以比作一棵樹——樹干、大樹枝、從它們長出的細樹枝,等等直到葉子——或者與公司結構進行比較:部門、分部、員工。它們通常被稱為主從或主從,由幾個表組成。一張表包含主要實體的列表;與第一個表綁定的另一個表包含一個從屬實體列表,其中包含對第一個表的引用,指定第二個表中的某個實體從屬于第一個表中的哪個實體,依此類推。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
FastReport VCL是用于 Delphi、C++ Builder、RAD Studio 和 Lazarus 的報告和文檔創建 VCL 庫。它提供了可視化模板設計器,可以訪問 30 多種格式,并可以部署到云、網站、電子郵件和打印中。
在這篇文章中,想告訴你 FastReport 如此強大的多級報告。他們的結構可以比作一棵樹——樹干、大樹枝、從它們長出的細樹枝,等等直到葉子——或者與公司結構進行比較:部門、分部、員工。它們通常被稱為主從或主從,由幾個表組成。一張表包含主要實體的列表;與第一個表綁定的另一個表包含一個從屬實體列表,其中包含對第一個表的引用,指定第二個表中的某個實體從屬于第一個表中的哪個實體,依此類推。FastReport 最多支持六層嵌套(通過使用 Nested 報表對象可能會更多,但這將在后面描述)。在實際應用中,很少需要打印具有大量數據嵌套的報告;通常,1-3 級就足夠了。
顧客:
CustNo Company
1221 Kauai Dive Shoppe
1231 Unisco
1351 Sight Diver
訂單:
訂單無客戶無銷售日期
1003 1351 12.04.1988
1023 1221 01.07.1988
1052 1351 06.01.1989
1055 1351 04.02.1989
1062
1981 2060 139 1989
如您所見,第二個表包含所有公司發出的所有訂單的列表。要獲取特定公司的訂單列表,應從表中選擇數據,其中字段 CustNo 等于所選公司的編號。使用這些數據構建的報告將如下所示:
1221 考艾島潛水專柜
1023 1988年7月1日
1123 1993年8月24日
1231 聯合船代
1060 1989年2月28日
1351 視覺潛水員
1003 1988年4月12日
1052 1989年6月1日
1055 1989年2月4日
現在我們開始做報告。我們在 Delphi 中創建了一個新項目,并為表單設置了兩個 TTable 組件、一個 TDataSource 組件、兩個 TfrxDBDataSet 組件和一個 TfrxReport 組件。
Table1 :
DatabaseName = 'DBDEMOS'
TableName = 'Customer.db'
Table2 :
DatabaseName = 'DBDEMOS'
TableName = 'Orders.db'
DataSource1 : DataSet = Table1 frxDBDataSet1 : DataSet = Table1 UserName = 'Customers' frxDBDataSet2 : DataSet = Table2 UserName = '訂單'
在報表設計器中,我們在 Report|Data... 窗口中連接我們的數據源。
將第一級數據(主)和第二級數據(詳細信息)帶添加到頁面。從數據面板(在右側),我們將表字段拉到各自的波段(主和細節)。它看起來像這樣:
注意 - 第一級數據帶必須位于上方!如果位于2級數據帶以下,FastReport會在開始上報時提示錯誤。
啟動后,我們將看到每個客戶的訂單列表都是相同的,并且包含訂單表中的所有記錄。這是因為我們沒有打開 Orders 表中的記錄過濾。
讓我們回到我們的數據源。對于表 2 組件,我們設置 MasterSource = DataSource1 屬性。因此,我們設置了主從連接。現在我們必須在下級源中設置記錄過濾條件。為此,請調用 Table 2 組件中 MasterFields 屬性的編輯器:
我們必須連接兩個源中的兩個 CustNo 字段。為此,請在上面的列表中選擇 CustNo 索引,選擇字段并單擊添加按鈕。一堆字段將被重新定位到較低的窗口中。之后,使用 ОК 按鈕關閉編輯器。
當報表啟動時,FastReport 將執行以下操作。它將從主表 (Customer) 中選擇下一個記錄并將過濾器設置為從屬表 (Orders)。只有滿足條件 Orders.CustNo = Customer.CustNo 的錄音才會留在表中。也就是說,對于每個客戶,只會顯示該客戶的訂單:
同樣,您最多可以構建具有六個數據級別的報告。
如果您對 FastReport 報表工具感興趣,歡迎加入 FastReport QQ 交流群:599154289
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn