ActiveReports使用教程:矩表是什么?
ActiveReports 是一款專注于 .NET 和 .NET Core 平臺的報表控件。通過拖拽式報表設(shè)計器,可以快速地設(shè)計 Excel表格、Word文檔、圖表、數(shù)據(jù)過濾、數(shù)據(jù)鉆取、精準(zhǔn)套打等類型報表,全面滿足 WinForm、ASP.NET、ASP.NET MVC、WPF 平臺中各種報表的開發(fā)需要。同時,通過豐富的 API 可以靈活的實現(xiàn)報表創(chuàng)建、加載和運行時的個性化自定義需求。
概要
矩表(Tablix)顯示按行和列進行分組的聚合數(shù)據(jù)匯總。它提供了增強的布局功能, 從簡單的創(chuàng)建b表到高級矩陣。矩表實質(zhì)上是兩個數(shù)據(jù)區(qū)域(表和矩陣)的組合。因此,它提供了表和矩陣的所有功能,以及添加包括行或列上的多個相鄰組的功能支持和靈活的跨組布局。
您還可以使用矩表數(shù)據(jù)區(qū)域的上下文菜單中的"使行高相同"和"使列寬相同"來設(shè)置多行的高度或者多列的寬度。您可以使用Ctrl鍵和鼠標(biāo)單擊,或者在行頭或列頭上拖動鼠標(biāo)來對多個行或列進行選擇。
在HTML5Viewer中,您甚至可以凍結(jié)矩表數(shù)據(jù)區(qū)域的行和列標(biāo)題。
本主題描述矩表數(shù)據(jù)區(qū)域中的元素如何協(xié)同工作并解釋其基本操作。
- 矩表數(shù)據(jù)區(qū)域
- 行控點和列控點
- 矩表的布局操作
矩表數(shù)據(jù)區(qū)域由設(shè)計區(qū)上的虛線表示的四個區(qū)域組成:角部區(qū)、行組區(qū)、列組區(qū)和正文區(qū)。默認情況下,每個矩表的單元格都包含一個文本框元素,每個單元格的函數(shù)由其位置決定。您可以使用 LayoutDirection 屬性更改矩表數(shù)據(jù)區(qū)域的布局。
報表設(shè)計器包括一個專門設(shè)計用于管理矩表分組結(jié)構(gòu)的分組編輯器窗口。分組編輯器窗口位于報表設(shè)計器的下面。
下面的圖片展示的矩表的各個數(shù)據(jù)區(qū),其中列分組為"月份",行分組為"區(qū)域",以及嵌套的行分組"省份".
分組編輯器窗口包含了以下分組:
- 行分組:分組編輯器中的行分組列表顯示了矩表中所有的行分組。
- 區(qū)域"分組:矩表行組區(qū)寫著"=[區(qū)域]"的單元格對應(yīng)著分組編輯窗口行分組區(qū)中的"區(qū)域"分組。此分組在報表運行時將會展示當(dāng)前區(qū)域字段的值。
- "省份"分組:"省份"分組是"區(qū)域"分組中的一個嵌套分組。矩表行組區(qū)寫著"=[省份]"的單元格對應(yīng)著分組編輯窗口行分組區(qū)中的"省份"分組。此分組在報表運行時將會展示當(dāng)前省份字段的值。
-
列分組:分組編輯器中的列分組列表顯示了矩表中所有的列分組。
- "月份"分組:矩表列組區(qū)寫著"=[月份]"的單元格對應(yīng)著分組編輯窗口列分組區(qū)中的"月份"分組。此分組在報表運行時將會展示當(dāng)前月份。
- 靜態(tài)單元格:在分組組編輯器窗口中, 行組和列組中的靜態(tài)單元格不顯示, 因為這些單元格不與任何分組的數(shù)據(jù)關(guān)聯(lián)。靜態(tài)行和列單元格用于在矩表數(shù)據(jù)區(qū)域中顯示標(biāo)簽和總計。靜態(tài)的列分組單元格中"合計"、"銷售額"、"搭贈費"和"比例"都是標(biāo)簽。 靜態(tài)的行分組單元格中"小計"和"合計"也是標(biāo)簽。
下列的表格中顯示了銷售額、搭贈和比例在行方向上按照區(qū)域和省份分組,列是根據(jù)月份分組動態(tài)生成??傆嬓酗@示的是銷售額的總和和搭贈的總和。
要在矩表數(shù)據(jù)區(qū)域中執(zhí)行基本操作, 我們需要首先了解靜態(tài)和動態(tài)行和列的概念。
矩表數(shù)據(jù)區(qū)域中的行或列可以是靜態(tài)或動態(tài)的。矩表數(shù)據(jù)區(qū)域包含提供網(wǎng)格類型布局的多個行和列, 您可以在其中添加或刪除靜態(tài)或動態(tài)行和列, 以便有效地顯示數(shù)據(jù)。
- 靜態(tài)行和列——靜態(tài)行或列與任何組數(shù)據(jù)都不關(guān)聯(lián)。當(dāng)報表運行時, 只呈現(xiàn)一次靜態(tài)行或列。使用矩表數(shù)據(jù)區(qū)域中的靜態(tài)行或列顯示標(biāo)簽和總計??梢允褂梅纸M編輯器窗口來識別靜態(tài)行和列。
- 動態(tài)行和列——動態(tài)行或列與一個或多個分組關(guān)聯(lián), 并為分組中的每個唯一值呈現(xiàn)一次??梢允褂梅纸M編輯器窗口來識別矩表數(shù)據(jù)區(qū)域中的動態(tài)行和列。還可以通過添加行組或列組來創(chuàng)建動態(tài)行或列。
行控點和列控點
選擇矩表數(shù)據(jù)區(qū)域時,將顯示行控點和列控點。這些控點幫助您處理數(shù)據(jù)區(qū)域,并且能夠地指定在矩表布局中添加的數(shù)據(jù)類型。
下表顯示了矩表數(shù)據(jù)區(qū)域中出現(xiàn)的不同類型的控點。
矩表的布局操作
矩表數(shù)據(jù)區(qū)域提供了用于執(zhí)行基本布局操作的上下文菜單選項。通過右鍵單擊選定的行, 可以從上下文菜單中訪問矩表行的版式選項。
-
插入行:從以下選項中選擇在選定的單元格組內(nèi)或外部插入一行。
-
組內(nèi):在當(dāng)前選擇行組內(nèi)插入行。
- 上方:在當(dāng)前選擇行的上方插入行。
- 下方:在當(dāng)期選擇行的下方插入行。
-
外部分組:在當(dāng)前選擇行組的外部插入行。
- 上方:在當(dāng)前選擇行組的外部上方插入行。
- 下方:在當(dāng)前選擇行組的外部下方插入行。
-
組內(nèi):在當(dāng)前選擇行組內(nèi)插入行。
- 刪除行:刪除當(dāng)前選擇的行。
- 使行高相同:為多個選定的行設(shè)置相同的高度。
-
添加行分組:從以下選項中選擇在矩表中插入行組。
- 父分組:添加一個父分組。
- 子分組:添加一個子分組。
- 上方相鄰:在所選擇的行分組的上方添加一個相鄰的分組。
- 下方相鄰: 在所選擇的行分組的下方添加一個相鄰的分組。
- 行分組:通過選擇刪除行分組選項刪除一個行分組。
通過右鍵單擊選定的列, 可以從上下文菜單中訪問矩表列的版式選項。
-
插入列:從以下選項中選擇在選定的單元格組內(nèi)或外部插入列。
-
組內(nèi):在當(dāng)前選擇列組內(nèi)插入列。
- 左側(cè):在當(dāng)前選擇列的左側(cè)插入列。
- 右側(cè):在當(dāng)前選擇列的右側(cè)插入列。
-
組外:在當(dāng)前選擇列組的外部插入列。
- 左側(cè):在當(dāng)前選擇列祖的外部的左側(cè)插入列。
- 右側(cè):在當(dāng)前選擇列祖的外部的右側(cè)插入列。
- 刪除列:刪除當(dāng)前選擇的列。
- 使列寬相同:為多個選定的列設(shè)置相同的寬度。
-
添加列分組:從以下選項中選擇在矩表中插入列組。
- 父分組:插入一個父級的列分組。
- 子分組:插入一個子級的列分組。
- 左側(cè)相鄰:在選定的列組的左側(cè)插入同級別相鄰的列組。
- 右側(cè)相鄰:在選定的列組的右側(cè)插入同級別相鄰的列組。
- 列分組:通過選擇刪除組選項刪除一個列分組。
-
組內(nèi):在當(dāng)前選擇列組內(nèi)插入列。
矩表數(shù)據(jù)區(qū)域可用于使用行組和列組顯示復(fù)雜數(shù)據(jù)。讓我們看幾個場景,了解矩表數(shù)據(jù)區(qū)域是如何工作的。
3.5.1 使用多個相鄰的組
在矩表數(shù)據(jù)區(qū)域中,與矩陣和表數(shù)據(jù)區(qū)域不同,可以創(chuàng)建多個相鄰的組。讓我們以銷售報告為例,了解分組在矩表數(shù)據(jù)區(qū)域中的工作方式。
場景
組織希望創(chuàng)建按年份和媒體類型顯示銷售數(shù)據(jù)的銷售報表。若要使用矩表數(shù)據(jù)區(qū)域設(shè)計這樣的報表,需要在列組區(qū)域中創(chuàng)建多個相鄰的組,在行組區(qū)中是單個組,并在正文區(qū)中顯示聚合數(shù)據(jù)。
讓我們看看矩表數(shù)據(jù)區(qū)域的每個區(qū)域是如何工作的,創(chuàng)建下面給出的期望輸出。
列組區(qū)
列組區(qū)域包含兩個相鄰的組,即年份和媒體類型。年份組根據(jù)年2004和2005顯示分組的數(shù)據(jù),媒體類型組根據(jù)存儲在數(shù)據(jù)庫中的DVD、VHS、LaserDisc、HD-DVD媒體類型顯示分組的數(shù)據(jù)值。行組區(qū)
行組區(qū)包含 StoreName 的單個組。行組區(qū)中的單元格顯示行組值,并表示行組層次結(jié)構(gòu)的成員。正文區(qū)
此區(qū)域顯示矩表中的 TotalAmount 的合計總和。當(dāng)單元格位于詳細行或列中,矩表正文區(qū)中的單元格將顯示明細數(shù)據(jù),當(dāng)單元格位于組的行或列中時則聚合組數(shù)據(jù)。
3.5.2 合并單元格
在矩表數(shù)據(jù)區(qū)域中, 可以合并具有重復(fù)值的單元格。讓我們以"商店經(jīng)理"的報告為例,了解在數(shù)據(jù)區(qū)域中單元合并的工作原理。
場景
組織希望創(chuàng)建一個報表,以顯示所有商店經(jīng)理的姓名,使用單元合并的概念,其中具有相同值的單元格自動合并,以避免混亂。
要設(shè)計這樣的報表,您需要在矩表數(shù)據(jù)區(qū)域中創(chuàng)建嵌套組,以便根據(jù)Region(區(qū)域)、District(地區(qū))和StoreName(店名)顯示Manager(經(jīng)理)的名稱。
讓我們看看矩表數(shù)據(jù)區(qū)域的每個區(qū)域是如何工作的, 以創(chuàng)建下面給出的期望輸出。
列組區(qū)
列組區(qū)不包含任何組, 但每個列都有靜態(tài)標(biāo)簽。有四列標(biāo)簽, 即Region、District、Store和Manager,作為標(biāo)題用來描述有關(guān)數(shù)據(jù)的信息。行組區(qū)
行組區(qū)包含嵌套在父/子關(guān)系中的三組, 以顯示行組數(shù)據(jù)。將自動合并區(qū)域 (父) 和區(qū)組 (子) 值,以刪除重復(fù)的數(shù)據(jù)值。正文區(qū)
此區(qū)域顯示Manager的全名。正文區(qū)通過在表達式中使用 and 運算符串聯(lián)兩個字段 "FirstName" 和 "LastName" 來顯示Manager的全名。