翻譯|行業(yè)資訊|編輯:胡濤|2024-01-17 11:24:49.387|閱讀 137 次
概述:本文主要介紹在報(bào)表生成器FastReport .Net中,如何創(chuàng)建數(shù)據(jù)源關(guān)系,歡迎查閱~
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC報(bào)表分析解決方案,使用FastReport .NET可以創(chuàng)建獨(dú)立于應(yīng)用程序的.NET報(bào)表,同時(shí)FastReport .Net支持中文、英語等14種語言,可以讓你的產(chǎn)品保證真正的國際性。
兩個(gè)數(shù)據(jù)源之間可以設(shè)置關(guān)系。關(guān)系用于定義 "master-detail"關(guān)系。例如,"Categories "表中的一條記錄可以在 "Products "表中有多個(gè)條目:
要?jiǎng)?chuàng)建關(guān)系,您需要說明以下內(nèi)容:
兩個(gè)表都有 CategoryID 字段,可以在該字段上設(shè)置關(guān)系。因此,一個(gè)類別可能包含多個(gè)產(chǎn)品。
如何在 FastReport 中使用相關(guān)數(shù)據(jù)源?有兩種方法。
第一種方法可以建立 "master-detail "類型的報(bào)告。為此,需要使用兩個(gè) "Data "帶。主數(shù)據(jù)帶連接到主數(shù)據(jù)源,詳細(xì)數(shù)據(jù)帶連接到詳細(xì)數(shù)據(jù)源。我們的示例如下:
如果運(yùn)行這樣的報(bào)告,就會(huì)打印出每個(gè)類別的產(chǎn)品清單:
第二種方法允許從詳細(xì)數(shù)據(jù)源引用主數(shù)據(jù)源。我們將舉例說明。假設(shè)我們要打印所有產(chǎn)品的列表。為此,我們需要一個(gè)與 "Products "表相連的 "Data "帶:
這樣的報(bào)告將打印所有類別的所有產(chǎn)品。比方說,我們想在每個(gè)產(chǎn)品旁邊打印它所屬的類別名稱。如果不使用關(guān)系,這將更加困難。我們所知道的產(chǎn)品類別就是它的 id(由 "Products "表中的 "CategoryID "列表示)。我們要打印的類別名稱存儲(chǔ)在 "Category "表的 "CategoryName "列中。借助關(guān)系,我們可以按以下方式引用類別名稱:
[Products.Categories.CategoryName]對(duì)于 "Products"表的當(dāng)前行,F(xiàn)astReport 將在 "類別 "表中找到相應(yīng)的父行,并返回 "CategoryName "列的值。
在一般情況下,引用父表字段的方式允許表祖先的數(shù)量不受限制:
如果我們將上圖所示的列拖入報(bào)告中,就會(huì)得到一個(gè)包含文本的 "Text "對(duì)象:
如果我們運(yùn)行它,就會(huì)看到以下內(nèi)容:
要?jiǎng)?chuàng)建關(guān)系,請(qǐng)單擊 "Data "窗口中的 "Actions "按鈕,然后選擇 "New relation... "項(xiàng)。您將看到關(guān)系編輯器:
首先,需要選擇父表和子表。然后,在窗口下部選擇相關(guān)數(shù)據(jù)列。可以通過一個(gè)或多個(gè)數(shù)據(jù)列將表關(guān)聯(lián)起來。列設(shè)置完成后,按 "確定 "按鈕關(guān)閉關(guān)系編輯器。
在 "Data "窗口中,選擇子數(shù)據(jù)源并打開列列表,就可以看到創(chuàng)建的關(guān)系。在這些列中,可以看到與父數(shù)據(jù)源的關(guān)系:
父數(shù)據(jù)源的數(shù)據(jù)列可以通過拖放方法插入到報(bào)表中。因此,如果我們選擇如圖所示的列,并將其拖到報(bào)告頁面上,就會(huì)得到一個(gè)內(nèi)容如下的 "Text"對(duì)象:
[Products.Categories.CategoryName]
要編輯關(guān)系,請(qǐng)打開子數(shù)據(jù)源的列列表,找到需要的關(guān)系并點(diǎn)擊工具欄上的 "Eidt..."按鈕。這將調(diào)用我們之前看過的關(guān)系編輯器。
有一系列系統(tǒng)變量可在報(bào)告中使用:
Variable | Description |
---|---|
Date |
報(bào)告開始的日期和時(shí)間。 |
Page | 當(dāng)前頁碼。 |
TotalPages | 報(bào)告的總頁數(shù)。要使用此變量,需要啟用報(bào)告的雙通道。您可以在 "報(bào)告 |
PageN | 表格中的頁碼:"Page N"。 |
PageNofM |
表格頁碼:"Page N of M"。 |
Row# | 組內(nèi)數(shù)據(jù)行號(hào)。該值在新組開始時(shí)重置。 |
AbsRow# |
數(shù)據(jù)行的絕對(duì)數(shù)。該值在新組開始時(shí)不會(huì)重置。 |
Page# |
當(dāng)前頁碼。如果將多個(gè)準(zhǔn)備好的報(bào)告合并到一個(gè)數(shù)據(jù)包中,該變量將返回?cái)?shù)據(jù)包中的當(dāng)前頁碼。該變量實(shí)際上是一個(gè)宏,當(dāng)在預(yù)覽窗口中查看組件時(shí),它的值將被替換。這意味著不能在表達(dá)式中使用它。 |
TotalPages# |
報(bào)告的總頁數(shù)。如果將多個(gè)準(zhǔn)備好的報(bào)告合并為一個(gè)數(shù)據(jù)包,該變量將返回一個(gè)數(shù)據(jù)包的頁數(shù)。該變量實(shí)際上是一個(gè)宏。該變量實(shí)際上是一個(gè)宏,當(dāng)在預(yù)覽窗口中查看組件時(shí),它的值將被替換。這意味著你不能在表達(dá)式中使用它。 |
HierarchyLevel | 層次結(jié)構(gòu)報(bào)告中的當(dāng)前層次結(jié)構(gòu)級(jí)別(請(qǐng)參閱 "打印層次結(jié)構(gòu)")。頂層等于 1。 |
HierarchyRow# |
層次結(jié)構(gòu)報(bào)告中的完整行號(hào),如 "1.2.1"。 |
本次關(guān)于 FastReport .Net 介紹就講解到這里了,點(diǎn)擊此處查看關(guān)于用戶指南的更多內(nèi)容。如果您想獲取更多產(chǎn)品試用/授權(quán)/價(jià)格信息,請(qǐng)點(diǎn)擊FastReport .Net了解,或者點(diǎn)擊咨詢。
FastReport技術(shù)QQ群:585577353 歡迎進(jìn)群一起討論
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn