翻譯|行業(yè)資訊|編輯:胡濤|2023-08-17 11:06:35.817|閱讀 167 次
概述:本文介紹報(bào)表生成器FastReport .Net中創(chuàng)建組別和總數(shù)相關(guān)教程,歡迎查閱~
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
相關(guān)鏈接:
FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC報(bào)表分析解決方案,使用FastReport .NET可以創(chuàng)建獨(dú)立于應(yīng)用程序的.NET報(bào)表,同時(shí)FastReport .Net支持中文、英語(yǔ)等14種語(yǔ)言,可以讓你的產(chǎn)品保證真正的國(guó)際性。
前面我們看了 "Master-detail "報(bào)告類(lèi)型,它打印了兩個(gè)相關(guān)來(lái)源的數(shù)據(jù)。FastReport可以創(chuàng)建一個(gè)相似的報(bào)表,使用一個(gè)數(shù)據(jù)源。故我們使用了組。一個(gè)組是三個(gè)帶子的集合:"Group header"、"Data "和 "Group footer”。在設(shè)計(jì)器中,這看起來(lái)如下:
一個(gè)組總是包含一個(gè)頁(yè)眉和數(shù)據(jù)。組的頁(yè)腳是可選的,可以進(jìn)行刪除。為了使用一個(gè)組,你應(yīng)該為組頭設(shè)置組的條件,并將數(shù)據(jù)源連接到 "Data "帶。條件可以是任何表達(dá)式,但作為一項(xiàng)規(guī)則,這是數(shù)據(jù)源的一個(gè)列。組的打印是以下列方式進(jìn)行的:
假設(shè)我們有一個(gè)產(chǎn)品表,數(shù)據(jù)如下:
數(shù)據(jù)可以在CategoryName列上進(jìn)行分組。這一列將被打印在組頭中。數(shù)據(jù)本身是由ProductName字段呈現(xiàn)的。該報(bào)告將如下:
如果我們運(yùn)行該報(bào)告,將看到以下內(nèi)容:
將一個(gè)組添加到一個(gè)報(bào)告中可以通過(guò)兩種方法來(lái)完成。
第一種方法:你在 "Group header "窗口中添加 "組頭 "組別。要做到這一點(diǎn),按 "Add "按鈕并選擇 "組頭 "帶。FastReport將該組添加到可用的 "Data "帶中,或者將創(chuàng)建一個(gè)完整的組,如果報(bào)告中沒(méi)有這樣的帶:
為了配置一個(gè)組,雙擊 "Group header "帶。你會(huì)看到組頭編輯窗口:
你需要設(shè)置組的條件。這可以是任何表達(dá)式或數(shù)據(jù)源列。也要選擇排序方式。默認(rèn)情況下,數(shù)據(jù)是按升序排序的。
第二種方法:你使用向?qū)В梢詮?"Report|Group Expert..."菜單中調(diào)用該向?qū)А榱藙?chuàng)建一個(gè)組,輸入組的條件并按 "Add "按鈕:
該向?qū)言摻M的所有元素添加到報(bào)告中。它還會(huì)在組的標(biāo)題上創(chuàng)建 "Text"對(duì)象,在其中打印組的條件:
組的工作正確,需要滿足以下條件:數(shù)據(jù)源必須在組條件中使用的那一列上排序。如果這個(gè)條件沒(méi)有得到滿足,你會(huì)看到很多組包含1-2個(gè)數(shù)據(jù)行:
內(nèi)容有可能以?xún)煞N方式對(duì)數(shù)據(jù)源進(jìn)行排序。
這兩種方法是等同的,然而使用第一種方法是很容易的。創(chuàng)建組時(shí),你可以在一個(gè)對(duì)話框中設(shè)置數(shù)據(jù)分組和排序。
在某些情況下,不應(yīng)使用第一種方法。我們應(yīng)根據(jù)產(chǎn)品名稱(chēng)的第一個(gè)字母設(shè)置分組,產(chǎn)品將只按第一個(gè)字母排序,這表現(xiàn)為錯(cuò)誤。你應(yīng)使用第二種方法,并表示根據(jù)產(chǎn)品的全名進(jìn)行排序。
一個(gè)嵌套組有幾個(gè) "Group header "帶。最后一個(gè)帶子包含 "Data "帶:
每個(gè)組頭都有自己的組別條件。
創(chuàng)建一個(gè)嵌套組可以用與普通組相同的方式進(jìn)行。在第一種情況下,你創(chuàng)建一個(gè)簡(jiǎn)單的組并在 "Configure Bands "窗口中添加嵌套組。為此,選擇現(xiàn)有的 "Group header "帶,按 "Add "按鈕,再添加一個(gè) "Group header "帶:
然后調(diào)用所添加組的編輯器,設(shè)置組的條件。
在第二種情況下,使用分組專(zhuān)家。設(shè)置分組條件并點(diǎn)擊 "Add "按鈕。向?qū)研陆M添加到現(xiàn)有組中。
嵌套組的打印與普通組的打印沒(méi)有多大區(qū)別。在打印數(shù)據(jù)時(shí),F(xiàn)astReport將檢查所有組的所有分組條件。如果條件改變,相應(yīng)的組會(huì)結(jié)束,新的組開(kāi)始打印。
對(duì)于組的管理,可以使用組專(zhuān)家。可從 "Report|Group Expert... "菜單中調(diào)用:
分組通常用于打印每組中的某些總值。如可以是組中的行數(shù),也可以是某一數(shù)據(jù)列的總和。打印此類(lèi)值時(shí),使用合計(jì)。在 一章中將介紹如何使用合計(jì)。
為了打印組中的總值,需要執(zhí)行以下操作:
在 "Data(數(shù)據(jù))"窗口中選擇 "Actions|New total...(Actions|New total...)"項(xiàng),創(chuàng)建總計(jì);
在 "Evaluate on each row of the band "組合框中選擇組的數(shù)據(jù)段;
在 "Print on the band "組合框中選擇組頁(yè)腳;
將打印總值的 "Text "對(duì)象放在組頁(yè)腳上。
若要打印每組中的行數(shù),請(qǐng)按如下方式配置總數(shù):
為了顯示總計(jì)的值,將其拖到組頁(yè)腳:
準(zhǔn)備的報(bào)告如下:
在向?qū)А康膸椭拢梢蕴砑踊騽h除分組,也可以更改分組順序。更改分組順序可使用按鈕 和
。通過(guò) "Edit...(編輯...)"按鈕,您可以更改所選組的分組條件。
組頁(yè)眉和頁(yè)腳具有 "RepeatOnEveryPage "屬性。如果組不適合打印在報(bào)表的某一頁(yè)上,,使用該屬性,您可以在打印組的每一頁(yè)上打印組頁(yè)眉/頁(yè)腳。當(dāng)打印這樣的頁(yè)眉/頁(yè)腳時(shí),F(xiàn)astReport設(shè)置其 "Repeated "標(biāo)志。這可用于在普通組頭和重復(fù)時(shí)打印不同的對(duì)象,如在新頁(yè)面上打印 "continue... "文本。故請(qǐng)使用 "Text "對(duì)象的 "PrintOn "屬性(更多詳情請(qǐng)參見(jiàn) "Booklet "報(bào)告類(lèi)型 "部分)。
為了打印不同的文本,請(qǐng)?jiān)诮M頭放置兩個(gè)對(duì)象,:
第一個(gè)對(duì)象將打印在普通頁(yè)眉上。將其 "PrintOn "屬性值設(shè)置為 "FirstPage, LastPage, OddPages, EvenPages"(即除 "RepeatedBand "外的所有值);
第二個(gè)對(duì)象將只打印重復(fù)的頁(yè)眉。將其 "PrintOn "屬性設(shè)置為 "RepeatedBand"。在頁(yè)眉上添加帶有 "continue... "文本的 "Text "對(duì)象。
報(bào)告打印如下:
組頁(yè)腳可以在每一頁(yè)上重復(fù)出現(xiàn):
在本報(bào)告中,組頁(yè)腳有兩個(gè)對(duì)象,一個(gè)位于另一個(gè)之上:
"Group Header" 帶具有一些有用的屬性。
"StartNewPage "屬性允許在打印組之前形成新頁(yè)面。故每個(gè)組都將放置在新頁(yè)面上。
為避免第一頁(yè)為空,新頁(yè)面不會(huì)在第一組之前添加。
“ResetPageNumber "屬性允許在打印組時(shí)重置頁(yè)碼。通常它與 "StartNewPage "屬性一起使用。如果同時(shí)啟用這兩個(gè)屬性,每個(gè)組都將打印在新頁(yè)面上,并有自己的頁(yè)碼。
本次關(guān)于 FastReport .Net 介紹就講解到這里了,點(diǎn)擊此處查看關(guān)于用戶(hù)指南的更多內(nèi)容。如果您想獲取更多產(chǎn)品試用/授權(quán)/價(jià)格信息,請(qǐng)點(diǎn)擊FastReport .Net了解,或者點(diǎn)擊咨詢(xú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