翻譯|行業(yè)資訊|編輯:胡濤|2023-08-09 11:51:32.743|閱讀 121 次
概述:本文介紹報(bào)表生成器FastReport .Net中關(guān)于"Data "帶報(bào)告的操作,歡迎查閱~
# 界面/圖表報(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支持中文、英語(yǔ)等14種語(yǔ)言,可以讓你的產(chǎn)品保證真正的國(guó)際性。
這種類型的報(bào)告是經(jīng)常需要的。它允許從數(shù)據(jù)源中打印一個(gè)行的列表。例如,這可以是一個(gè)客戶名單。
要打印數(shù)據(jù)源的數(shù)據(jù),需要 "Data "帶。當(dāng)該條帶將被打印,其次數(shù)與數(shù)據(jù)源中的行數(shù)相同。
If the "Data" band is not connected to the source, it gets printed once.
當(dāng)你創(chuàng)建一個(gè)新的報(bào)告時(shí),它已經(jīng)包含幾個(gè)空帶,包括 "Data"帶。這個(gè)帶子也可以從 "Configure Bands "窗口中,通過(guò)選擇 "Report|Configure Bands... "菜單項(xiàng)添加到報(bào)告中。
為了把一個(gè)帶子連接到數(shù)據(jù)上,雙擊它。在編輯器窗口中選擇數(shù)據(jù)源并點(diǎn)擊 "ОК":
當(dāng)你把帶子連接到數(shù)據(jù)源后,你可以把 "Text "對(duì)象放在帶子上,它將顯示數(shù)據(jù)列的信息。最快的方法是--從 "Data "窗口中拖出一個(gè)數(shù)據(jù)列,然后把它放到帶子上。在 一章中閱讀更多關(guān)于 "Text "對(duì)象的內(nèi)容。
默認(rèn)情況下,"Data "帶按自然順序打印數(shù)據(jù)。通常情況下,在打印前需要對(duì)數(shù)據(jù)進(jìn)行排序。例如,一個(gè)客戶名單可以通過(guò)按字母順序排序來(lái)舒適地呈現(xiàn)。
你可以在 "Data "段編輯器中控制排序。為了調(diào)用編輯器,請(qǐng)雙擊帶子上的一個(gè)空位:
作為一個(gè)排序條件,你可以使用一個(gè)數(shù)據(jù)列或一個(gè)表達(dá)式。你可以指出幾個(gè)(不超過(guò)三個(gè))排序條件。
例如,如果你想按城市對(duì)客戶列表進(jìn)行排序,然后再按客戶的名字排序。對(duì)于每個(gè)條件,你可以選擇排序的順序--升序或降序。
另一種排序數(shù)據(jù)的方法 - 使用SQL查詢作為數(shù)據(jù)源。該查詢將在數(shù)據(jù)服務(wù)器上執(zhí)行,并返回一個(gè)排序的行。
為了過(guò)濾打印在 "Data "帶中的行,調(diào)用其編輯器并切換到 "Filter "標(biāo)簽:
作為一個(gè)過(guò)濾表達(dá)式,你可以表示任何正確的表達(dá)式。關(guān)于表達(dá)式的更多細(xì)節(jié)可以在 章節(jié)中找到。
在上面的例子中,使用了以下過(guò)濾器:
[Products.Discontinued] == false
表明所有斷開連接標(biāo)志等于false的數(shù)據(jù)行將被選中。
你可以使用復(fù)雜的過(guò)濾條件:
[Products.Discontinued] == false && [Products.UnitPrice] < 10表明所有斷開連接標(biāo)志等于false的數(shù)據(jù)行,以及價(jià)格小于10的數(shù)據(jù)行將被選中。
You also may use dialogue forms to perform data filtering. See more details in the "Dialogue forms" chapter.
一個(gè) "Data "帶可以包含一個(gè)頁(yè)眉和一個(gè)頁(yè)腳。頁(yè)眉將在數(shù)據(jù)前打印一次,頁(yè)腳將在所有數(shù)據(jù)輸出后打印。
為了給 "Data "帶添加頁(yè)眉和頁(yè)腳,選擇 "Report|Configure Bands... "菜單項(xiàng)。在窗口中,選擇 "Data "帶,然后右擊鼠標(biāo)。在上下文菜單中選擇 "Header "和/或 "Footer "項(xiàng)目:
這些帶子在以下情況下可以發(fā)揮作用:
當(dāng)在一頁(yè)上打印多個(gè)列表時(shí)( "報(bào)告)。在這種情況下,每個(gè)數(shù)據(jù)帶都可以有自己的頁(yè)眉和頁(yè)腳:
在本節(jié)中,我們將研究?jī)煞N數(shù)據(jù)打印模式--"Break "和 "Keep together"。
在常規(guī)的帶狀打印模式中,F(xiàn)astReport檢查當(dāng)前頁(yè)是否有足夠的空間來(lái)打印一個(gè)帶狀。如果沒有,則在下一頁(yè)上全部打印出帶子。如果帶子的 "CanBreak "屬性被激活,F(xiàn)astReport將嘗試將帶子的一部分打印在可用的空間上,也就是 "Break "。
打破一個(gè)帶子的嘗試可以成功,也可以不成功。這取決于被放置在帶子上的對(duì)象的類型和它的設(shè)置。以下物體可以被打破:
在下圖中,顯示了一個(gè)帶子是如何被打破的。
Break algorithm does not always work correctly. The artifacts can occur in a situation, when there are several objects with different font size on a band.
斷帶的目的是為了節(jié)省印張上的空間。數(shù)據(jù)保持的目標(biāo)則相反:在一張紙上完全顯示一組帶子。在這種情況下,雖然紙張上會(huì)有很多未使用的空間,但數(shù)據(jù)的打印方式讓人很舒服。
"keep together "機(jī)制允許將一組帶子保持在一張紙上(或列,如果報(bào)告有列的話)。如果在打印時(shí),保留的數(shù)據(jù)到了頁(yè)面的末端,F(xiàn)astReport會(huì)將所有已經(jīng)打印過(guò)的數(shù)據(jù)重新定位到新的頁(yè)面。
你可以在以下情況下使用 "keep together":
一起打印 "Data"帶的所有行;
一起打印一個(gè)組的所有元素(頁(yè)眉、數(shù)據(jù)、頁(yè)腳);
將主數(shù)據(jù)源的行與所有明細(xì)行一起打印(在 "master-detai "報(bào)告中);
打印報(bào)告頁(yè)眉或數(shù)據(jù)頁(yè)眉與至少一個(gè)數(shù)據(jù)行;
打印報(bào)告頁(yè)腳或數(shù)據(jù)頁(yè)腳以及至少一個(gè)數(shù)據(jù)行;
一起打印父帶和子帶。
讓我們來(lái)看看 "keep together "機(jī)制的使用情況。
要把所有的數(shù)據(jù)行或組元素(頁(yè)眉、數(shù)據(jù)、頁(yè)腳)放在一起,請(qǐng)啟用 "KeepTogether "屬性。這個(gè)屬性在 "Data "和 "Group Header "帶中使用。
下圖顯示了在有和沒有保持在一起的情況下數(shù)據(jù)的打印情況:
要把主數(shù)據(jù)行和詳細(xì)數(shù)據(jù)行放在一起,請(qǐng)啟用 "KeepDetail "帶的 "KeepDetail "屬性。這個(gè)屬性用于 "master-detail "類型的報(bào)告中:
為了防止 "hanging "頁(yè)眉和頁(yè)腳,請(qǐng)使用 "KeepWithData "屬性。下面這些帶子都有這個(gè)屬性:
這個(gè)屬性允許保持至少有一個(gè)數(shù)據(jù)行的頁(yè)眉/頁(yè)腳:
為了使一個(gè)帶子和它的子帶子保持在一起,啟用 "KeepChild "屬性。
當(dāng)數(shù)據(jù)帶連接到一個(gè)空的數(shù)據(jù)源時(shí),它將不會(huì)被打印。有時(shí)需要打印一些文本,如 "No data",而不是只打印一個(gè)空頁(yè)。要做到這一點(diǎn):
該報(bào)告將以如下方式打印:
為了以分層形式打印這樣的源,你需要設(shè)置以下 "Data "帶屬性。這可以在 "屬性 "窗口中完成:
設(shè)置 "Data "帶屬性,它負(fù)責(zé)層次結(jié)構(gòu),方法如下:
當(dāng)我們運(yùn)行一個(gè)報(bào)告時(shí),我們將看到以下內(nèi)容:
當(dāng)打印層次結(jié)構(gòu)時(shí),F(xiàn)astReport將帶子向右移動(dòng)(通過(guò)縮進(jìn)屬性中指示的值),同時(shí)也將帶子寬度以相同的值減少。這使得你可以使用帶子對(duì)象的錨定屬性。下面是在這種情況下可以使用的該屬性的可能值:
在這個(gè)例子中,圖片對(duì)象的Anchor屬性被設(shè)置為L(zhǎng)eft, Top;帶有職位名稱的對(duì)象被錨定在Left, Right, Top;帶有名字的對(duì)象被錨定在Right, Top。
本次關(guān)于 FastReport .Net 中改變報(bào)表格式的介紹就講解到這里了,點(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