翻譯|行業資訊|編輯:胡濤|2023-08-09 11:51:32.743|閱讀 121 次
概述:本文介紹報表生成器FastReport .Net中關于"Data "帶報告的操作,歡迎查閱~
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC報表分析解決方案,使用FastReport .NET可以創建獨立于應用程序的.NET報表,同時FastReport .Net支持中文、英語等14種語言,可以讓你的產品保證真正的國際性。
這種類型的報告是經常需要的。它允許從數據源中打印一個行的列表。例如,這可以是一個客戶名單。
要打印數據源的數據,需要 "Data "帶。當該條帶將被打印,其次數與數據源中的行數相同。
If the "Data" band is not connected to the source, it gets printed once.
當你創建一個新的報告時,它已經包含幾個空帶,包括 "Data"帶。這個帶子也可以從 "Configure Bands "窗口中,通過選擇 "Report|Configure Bands... "菜單項添加到報告中。
為了把一個帶子連接到數據上,雙擊它。在編輯器窗口中選擇數據源并點擊 "ОК":
當你把帶子連接到數據源后,你可以把 "Text "對象放在帶子上,它將顯示數據列的信息。最快的方法是--從 "Data "窗口中拖出一個數據列,然后把它放到帶子上。在 一章中閱讀更多關于 "Text "對象的內容。
默認情況下,"Data "帶按自然順序打印數據。通常情況下,在打印前需要對數據進行排序。例如,一個客戶名單可以通過按字母順序排序來舒適地呈現。
你可以在 "Data "段編輯器中控制排序。為了調用編輯器,請雙擊帶子上的一個空位:
作為一個排序條件,你可以使用一個數據列或一個表達式。你可以指出幾個(不超過三個)排序條件。
例如,如果你想按城市對客戶列表進行排序,然后再按客戶的名字排序。對于每個條件,你可以選擇排序的順序--升序或降序。
另一種排序數據的方法 - 使用SQL查詢作為數據源。該查詢將在數據服務器上執行,并返回一個排序的行。
為了過濾打印在 "Data "帶中的行,調用其編輯器并切換到 "Filter "標簽:
作為一個過濾表達式,你可以表示任何正確的表達式。關于表達式的更多細節可以在 章節中找到。
在上面的例子中,使用了以下過濾器:
[Products.Discontinued] == false
表明所有斷開連接標志等于false的數據行將被選中。
你可以使用復雜的過濾條件:
[Products.Discontinued] == false && [Products.UnitPrice] < 10表明所有斷開連接標志等于false的數據行,以及價格小于10的數據行將被選中。
You also may use dialogue forms to perform data filtering. See more details in the "Dialogue forms" chapter.
一個 "Data "帶可以包含一個頁眉和一個頁腳。頁眉將在數據前打印一次,頁腳將在所有數據輸出后打印。
為了給 "Data "帶添加頁眉和頁腳,選擇 "Report|Configure Bands... "菜單項。在窗口中,選擇 "Data "帶,然后右擊鼠標。在上下文菜單中選擇 "Header "和/或 "Footer "項目:
這些帶子在以下情況下可以發揮作用:
當在一頁上打印多個列表時( "報告)。在這種情況下,每個數據帶都可以有自己的頁眉和頁腳:
在本節中,我們將研究兩種數據打印模式--"Break "和 "Keep together"。
在常規的帶狀打印模式中,FastReport檢查當前頁是否有足夠的空間來打印一個帶狀。如果沒有,則在下一頁上全部打印出帶子。如果帶子的 "CanBreak "屬性被激活,FastReport將嘗試將帶子的一部分打印在可用的空間上,也就是 "Break "。
打破一個帶子的嘗試可以成功,也可以不成功。這取決于被放置在帶子上的對象的類型和它的設置。以下物體可以被打破:
在下圖中,顯示了一個帶子是如何被打破的。
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.
斷帶的目的是為了節省印張上的空間。數據保持的目標則相反:在一張紙上完全顯示一組帶子。在這種情況下,雖然紙張上會有很多未使用的空間,但數據的打印方式讓人很舒服。
"keep together "機制允許將一組帶子保持在一張紙上(或列,如果報告有列的話)。如果在打印時,保留的數據到了頁面的末端,FastReport會將所有已經打印過的數據重新定位到新的頁面。
你可以在以下情況下使用 "keep together":
一起打印 "Data"帶的所有行;
一起打印一個組的所有元素(頁眉、數據、頁腳);
將主數據源的行與所有明細行一起打印(在 "master-detai "報告中);
打印報告頁眉或數據頁眉與至少一個數據行;
打印報告頁腳或數據頁腳以及至少一個數據行;
一起打印父帶和子帶。
讓我們來看看 "keep together "機制的使用情況。
要把所有的數據行或組元素(頁眉、數據、頁腳)放在一起,請啟用 "KeepTogether "屬性。這個屬性在 "Data "和 "Group Header "帶中使用。
下圖顯示了在有和沒有保持在一起的情況下數據的打印情況:
要把主數據行和詳細數據行放在一起,請啟用 "KeepDetail "帶的 "KeepDetail "屬性。這個屬性用于 "master-detail "類型的報告中:
為了防止 "hanging "頁眉和頁腳,請使用 "KeepWithData "屬性。下面這些帶子都有這個屬性:
這個屬性允許保持至少有一個數據行的頁眉/頁腳:
為了使一個帶子和它的子帶子保持在一起,啟用 "KeepChild "屬性。
當數據帶連接到一個空的數據源時,它將不會被打印。有時需要打印一些文本,如 "No data",而不是只打印一個空頁。要做到這一點:
該報告將以如下方式打印:
為了以分層形式打印這樣的源,你需要設置以下 "Data "帶屬性。這可以在 "屬性 "窗口中完成:
設置 "Data "帶屬性,它負責層次結構,方法如下:
當我們運行一個報告時,我們將看到以下內容:
當打印層次結構時,FastReport將帶子向右移動(通過縮進屬性中指示的值),同時也將帶子寬度以相同的值減少。這使得你可以使用帶子對象的錨定屬性。下面是在這種情況下可以使用的該屬性的可能值:
在這個例子中,圖片對象的Anchor屬性被設置為Left, Top;帶有職位名稱的對象被錨定在Left, Right, Top;帶有名字的對象被錨定在Right, Top。
本次關于 FastReport .Net 中改變報表格式的介紹就講解到這里了,點擊此處查看關于用戶指南的更多內容。如果您想獲取更多產品試用/授權/價格信息,請點擊FastReport .Net了解,或者點擊咨詢。
FastReport技術QQ群:585577353 歡迎進群一起討論
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn