Relations
兩個數據源之間可以設置關系。關系用于定義 "master-detail"關系。例如,"Categories "表中的一條記錄可以在 "Products "表中有多個條目:
要創(chuàng)建關系,您需要說明以下內容:
- Parent table;
- Child table;
- 父表中關鍵列的集合;
- 子表中關鍵列的集合。
兩個表都有 CategoryID 字段,可以在該字段上設置關系。因此,一個類別可能包含多個產品。
如何在 FastReport 中使用相關數據源?有兩種方法。
第一種方法可以建立 "master-detail "類型的報告。為此,需要使用兩個 "Data "帶。主數據帶連接到主數據源,詳細數據帶連接到詳細數據源。我們的示例如下:
如果運行這樣的報告,就會打印出每個類別的產品清單:
第二種方法允許從詳細數據源引用主數據源。我們將舉例說明。假設我們要打印所有產品的列表。為此,我們需要一個與 "Products "表相連的 "Data "帶:
這樣的報告將打印所有類別的所有產品。比方說,我們想在每個產品旁邊打印它所屬的類別名稱。如果不使用關系,這將更加困難。我們所知道的產品類別就是它的 id(由 "Products "表中的 "CategoryID "列表示)。我們要打印的類別名稱存儲在 "Category "表的 "CategoryName "列中。借助關系,我們可以按以下方式引用類別名稱:
[Products.Categories.CategoryName]對于 "Products"表的當前行,FastReport 將在 "類別 "表中找到相應的父行,并返回 "CategoryName "列的值。
在一般情況下,引用父表字段的方式允許表祖先的數量不受限制:
如果我們將上圖所示的列拖入報告中,就會得到一個包含文本的 "Text "對象:
如果我們運行它,就會看到以下內容:
如需下載fastreport最新試用版,請點產品名跳轉產品下載頁>>