ActiveReports使用教程:常用工具箱表格控件作用功能概況
ActiveReports 是一款專注于 .NET 和 .NET Core 平臺的報表控件。通過拖拽式報表設計器,可以快速地設計 Excel表格、Word文檔、圖表、數據過濾、數據鉆取、精準套打等類型報表,全面滿足 WinForm、ASP.NET、ASP.NET MVC、WPF 平臺中各種報表的開發需要。同時,通過豐富的 API 可以靈活的實現報表創建、加載和運行時的個性化自定義需求。

概要
表格是用行和列來組織數據的元素。設計狀態下,表格默認有三行三列,9個單元格,每個單元格中填有一個文本框。根據需要,可以添加行、列、分組。在RDL報表中,還可以在單元格中嵌入其他數據元素。通過CTRL鍵與鼠標點擊組合操作,或者直接用鼠標劃過多行或者多列,可選中多個行列。使用鼠標右鍵菜單中的【使行高相同】和【使列寬相同】命令,可使多行同高,或是多列同寬。
綁定數據
將一個表格拖放到報表設計區域之后,即可將數據添加到單元格,以實現數據綁定。可以從數據集的字段列表中拖放字段到單元格(注意是第二行上的單元格),也可以通過單元格右上角的小圖標按鈕選擇一個數據集的字段,還可以將單元格的Value屬性設置為<表達式>以顯示自定義的數據內容(比如:=單價*金額)。單元格的默認控件是文本框,可以從工具箱拖放其他類型的控件到單元格,比如拖放圖形(Image)控件到單元格,用于顯示圖片。
分組
設計狀態下,除了默認的三行,可以通過分組添加新的行。添加一個分組時,會添加一個代表【分組頭】的行和一個代表【分組尾】的行。分組的典型用途是按類別顯示數據,比如產品清單報表,默認按照產品ID排序、顯示一覽表。設置產品類別為分組,可先按照產品類別、再按產品ID排序,還可以統計每個分組的產品總數,顯示在【分組尾】中。
外觀
有很多方法控制表格數據區域的外觀。可以合并單元格,控制是否可見、文本顏色、背景顏色。可以在單元格內使用圖形元素,也可以設置單元格本身的邊框,甚至可以鎖定表格的行或列頭,使之不隨滾動條滾動。
屬性對話框
表格屬性對話框可用于設定表格的屬性。打開屬性對話框的方法是,選中整個表格,注意不是選中某個單元格,然后點擊屬性窗格下方的【屬性對話框…】鏈接。
【常規】
名稱:控件名稱,本報表范圍內要保證唯一。
工具提示:輸入一段文字,用戶查看報表、鼠標進入本控件區域時,將顯示此文本。
數據集名稱:選擇一個與本控件綁定的數據集。
區域內頁碼:本控件是否單獨排頁碼。
在表格之前插入換頁符號:表格另起一頁。
在表格之后插入換頁符號:表格末頁另起一頁再顯示其他元素的內容。
在可能的情況下,將表格顯示在同一頁中:如果表格從某頁中間開始,而總高度不超過一頁,就另起一頁。
每頁重復顯示列頭:內容跨頁時每頁都帶欄目標題。
每頁重復顯示列尾:內容跨頁時每頁都帶表尾中的內容,往往是合計信息。
禁止單獨顯示列尾:如果顯示到列尾時恰好要跨頁,至少帶一行數據到新頁。
【可見性】
初始化可見性:
可見:報表運行時表格可見。
隱藏:報表運行時表格不可見。
表達式:基于表達式顯示或隱藏。可以使用在運行時計算的表達式來確定可見性。表達式計算結果為 Boolean 值,值為 True 時表示隱藏該項,值為 False 時表示顯示該項。
可見性可以通過其他報表元素進行切換:勾選此項會在已設置的其他報表元素上顯示切換圖像。在下拉框中可以鍵入或選擇要在其中顯示切換圖像的報表文本框的名稱,例如 Textbox1。點擊此元素可以切換當前表格的可見性。注意:您選擇的報表元素必須位于此元素的當前作用域或包含作用域中。
【導航】
文檔結構圖標簽:輸入文本或表達式,用作本控件在文檔結構圖(即目錄)中的項目名稱。
書簽ID:輸入文本或表達式,用作跳轉到本控件的書簽的定位ID。在其他控件處設置【跳轉到書簽】為這個ID,就可以在查看報表時點擊其他控件跳轉到本控件。
【排序】
可以設置多個排序條件,以控制數據輸出的次序,每個條件的升降序可以不同。比如先按年度降序、再按省份升序。
表達式:可以是單個字段,也可以是幾個字段的組合表達式。
方向:選擇升序或降序。
【分組】
分組可用于將數據按照特定的分類進行組織和統計,例如在一個產品清單報表中,默認情況安裝產品ID顯示一覽表,通過設置分組,可以按照產品類別,將同一類別的產品信息組織在一起顯示。
點擊加號圖標可添加新的分組。分組屬性可在多個選項卡中設置。
【分組-常規】
名稱:輸入一個分組名稱。
分組:選擇一個字段,或者編輯一個表達式,作為分組的依據。典型的是類別性質的字段,例如產品類別ID、年度、月份、業務區域,等等。
文檔結構圖標簽:輸入一個文本表達式,作為目錄項的名稱。
上級分組:指定一個父級分組,以實現多級分組。
【分組-過濾】
可設定過濾條件,僅顯示部分分組的數據。一個過濾條件由三部分組成:表達式、運算符、值。
(1)表達式:過濾條件的檢查對象,一般是某個字段。
(2)運算符:即比較操作符,具體包括:
Equal:相等。即過濾出左邊的表達式計算結果(或某個字段值)等于某個指定值(運算符右邊的值)的數據。
Like:字符串包含。即過濾條件是左邊的表達式形如右邊的值。右邊的值一般會包含星號通配符(*)。
No
tEqual:不等于。
GreaterThan:大于。
GreaterThanOrEqual:不小于,即大于或等于
LessThan:小于。
LessThanOrEqual:不大于,即小于或等于。
TopN:只顯示數據集的前幾條數據,具體幾條,由下面指定的【值】來確定。
BottomN:只顯示數據集的后幾條數據,具體幾條,由下面指定的【值】來確定。
TopPercent:只顯示數據集的前百分之幾的部分數據,具體顯示百分之幾,由下面指定的【值】來確定。
BottomPercent:只顯示數據集的后百分之幾的部分數據,具體顯示百分之幾,由下面指定的【值】來確定。
In:只顯示表達式結果等于幾個具體值的數據,具體的值由下面指定的【值】確定。
Between:只顯示表達式結果落在兩個具體值之間的數據,兩個具體的值由下面指定的【值】確定。
(3)值
根據運算符的不同,過濾條件中運算符右邊的值可能是單個常數值,也可能是多個常數值(對于Between,In等運算符)。
值可能包含通配符,例如運算符為Like時,值可能是"陜西省*市"。
對于TopPercent和BottomPercent運算符,值應該是不帶百分號的數字部分,比如想要過濾一半數據的話,值應該是50,而不是50%或者0.5。
【分組-排序】
可以設置多個排序條件,以控制數據輸出的次序,每個條件的升降序可以不同。比如先按年度降序、再按省份升序。
表達式:可以是單個字段,也可以是幾個字段的組合表達式。
方向:選擇升序或降序。
【分組-可見性】
此處可設置當前分組是否隱藏。
可見:總是顯示,即不隱藏。
隱藏:即總是不顯示。
表達式:根據表達式的計算結果決定是否隱藏。表達式應返回True/False。注意:True表示隱藏,False表示要顯示。
可見性可以通過其他報表元素進行切換:選擇當前報表內的另一個元素,通常是一個文本框,比如TextBox1。用戶查看報表時,文本框左邊將顯示一個用加號和減號表示的折疊和展開圖標。用戶點擊該圖標,當前元素將在顯示與隱藏之間來回切換。典型的應用場景是:文本框中的內容設置為"顯示或隱藏明細列表",然后通過這個文本框左邊的加減號點擊,控制一個表格或列表是否顯示。
【分組-數據輸出】
此處設置報表數據導出為XML時的元素Tag。
元素名稱:輸入一個XML元素名稱,這個名稱將用作報表數據輸出為XML文件時的Tag。例如"ProductType"。
集合:輸入一個XML集合名稱,這個名稱將用作XML數據輸出的元素名稱Tag的上級Tag。例如"ProductTypes"。
輸出:選擇【是】或【否】,表示在進行XML輸出時是否包含本數據。
【分組-布局】
起始位置換頁:在本部分內容之前插入硬分頁。
結束位置換頁:在本部分內容之后插入硬分頁。
包括分組頭:顯示頭部區域。不勾選可隱藏頭部區域。
包括分組尾:顯示尾部區域。不勾選可隱藏尾部區域。
重復分組頭:換頁時是否重復頭部區域。
重復分組尾:換頁時是否重復尾部區域。
區域內頁碼:是否單獨排頁碼,默認根據整個報表統一排頁碼。
如果可以,將表格分組內容打印在同一頁中:本區域內容較多,又可以在一頁內顯示時,單獨用一頁顯示。這樣可能導致前一頁下部空白。
禁止單獨顯示尾部:不要將尾部顯示在一個頁面的頂部,上面一行明細也沒有。
【詳細數據分組】
詳細數據分組用于在詳情中不顯示重復數據。設置詳細信息分組時, 該值將為分組表達式的每個不同結果而不是對每一行數據重復。例如,如果你使用NorthWind中Customers表去創建一個沒有設置詳細數據分組的列表,由于在同個國家內會有多個Customer,所以最終每個國家都會被列舉出來多次。如果將詳細數據分組設置為=Fields!Country.Value,每個國家只會被列舉一次。
注意:如果詳細數據分組表達式返回值本來就不同于其他值,比如"CustomerID", 那么所得結果與未設置時并無差別。
【詳細數據分組-常規】
名稱:輸入一個分組名稱。
分組:選擇一個字段,或者編輯一個表達式,作為分組的依據。典型的是類別性質的字段,例如產品類別ID、年度、月份、業務區域,等等。
文檔結構圖標簽:輸入一個文本表達式,作為目錄項的名稱。
上級分組:指定一個父級分組,以實現多級分組。
【詳細數據分組-過濾】
可設定過濾條件,僅顯示部分分組的數據。一個過濾條件由三部分組成:表達式、運算符、值。
(1)表達式:過濾條件的檢查對象,一般是某個字段。
(2)運算符:即比較操作符,具體包括:
Equal:相等。即過濾出左邊的表達式計算結果(或某個字段值)等于某個指定值(運算符右邊的值)的數據。
Like:字符串包含。即過濾條件是左邊的表達式形如右邊的值。
NotEqual:不等于。
GreaterThan:大于。
GreaterThanOrEqual:不小于,即大于或等于。
LessThan:小于。
LessThanOrEqual:不大于,即小于或等于。
TopN:只顯示數據集的前幾條數據,具體幾條,由下面指定的【值】來確定。
BottomN:只顯示數據集的后幾條數據,具體幾條,由下面指定的【值】來確定。
TopPercent:只顯示數據集的前百分之幾的部分數據,具體顯示百分之幾,由下面指定的【值】來確定。
BottomPercent:只顯示數據集的后百分之幾的部分數據,具體顯示百分之幾,由下面指定的【值】來確定。
In:只顯示表達式結果等于幾個具體值的數據,具體的值由下面指定的【值】確定。
Between:只顯示表達式結果落在兩個具體值之間的數據,兩個具體的值由下面指定的【值】確定。
(3)值
根據運算符的不同,過濾條件中運算符右邊的值可能是單個常數值,也可能是多個常數值(對于Between,In等運算符)。
值可能包含通配符,例如運算符為Like時,值可能是"陜西省*市"。
對于TopPercent和BottomPercent運算符,值應該是不帶百分號的數字部分,比如想要過濾一半數據的話,值應該是50,而不是50%或者0.5。
【分組-可見性】
此處可設置當前分組是否隱藏。
可見:總是顯示,即不隱藏。
隱藏:即總是不顯示。
表達式:根據表達式的計算結果決定是否隱藏。表達式應返回True/False。注意:True表示隱藏,False表示要顯示。
可見性可以通過其他報表元素進行切換:選擇當前報表內的另一個元素,通常是一個文本框,比如TextBox1。用戶查看報表時,文本框左邊將顯示一個用加號和減號表示的折疊和展開圖標。用戶點擊該圖標,當前元素將在顯示與隱藏之間來回切換。典型的應用場景是:文本框中的內容設置為"顯示或隱藏明細列表",然后通過這個文本框左邊的加減號點擊,控制一個表格或列表是否顯示。
【分組-數據輸出】
此處設置報表數據導出為XML時的元素Tag。
元素名稱:輸入一個XML元素名稱,這個名稱將用作報表數據輸出為XML文件時的Tag。例如"ProductType"。
集合:輸入一個XML集合名稱,這個名稱將用作XML數據輸出的元素名稱Tag的上級Tag。例如"ProductTypes"。
輸出:選擇【是】或【否】,表示在進行XML輸出時是否包含本數據。
【分組-布局】
起始位置換頁:在本部分內容之前插入硬分頁。
結束位置換頁:在本部分內容之后插入硬分頁。
區域內頁碼:是否單獨排頁碼,默認根據整個報表統一排頁碼。
【過濾】
如果需要只顯示數據集的一部分數據,可在此設置過濾條件。點擊對話框右上角的加號圖標,可創建新的過濾條件。一個過濾條件由三部分組成:表達式、運算符、值。
(1)表達式:過濾條件的檢查對象,一般是某個字段。
(2)運算符:即比較操作符,具體包括:
Equal:相等。即過濾出左邊的表達式計算結果(或某個字段值)等于某個指定值(運算符右邊的值)的數據。
Like:字符串包含。即過濾條件是左邊的表達式形如右邊的值。
NotEqual:不等于。
GreaterThan:大于。
GreaterThanOrEqual:不小于,即大于或等于。
LessThan:小于。
LessThanOrEqual:不大于,即小于或等于。
TopN:只顯示數據集的前幾條數據,具體幾條,由下面指定的【值】來確定。
BottomN:只顯示數據集的后幾條數據,具體幾條,由下面指定的【值】來確定。
TopPercent:只顯示數據集的前百分之幾的部分數據,具體顯示百分之幾,由下面指定的【值】來確定。
BottomPercent:只顯示數據集的后百分之幾的部分數據,具體顯示百分之幾,由下面指定的【值】來確定。
In:只顯示表達式結果等于幾個具體值的數據,具體的值由下面指定的【值】確定。
Between:只顯示表達式結果落在兩個具體值之間的數據,兩個具體的值由下面指定的【值】確定。
(3)值
根據運算符的不同,過濾條件中運算符右邊的值可能是單個常數值,也可能是多個常數值(對于Between,In等運算符)。
值可能包含通配符,例如運算符為Like時,值可能是"陜西省*市"。
對于TopPercent和BottomPercent運算符,值應該是不帶百分號的數字部分,比如想要過濾一半數據的話,值應該是50,而不是50%或者0.5。
【數據輸出】
此處設置報表數據導出為XML時的元素Tag。
元素名稱:輸入一個XML元素名稱,這個名稱將用作報表數據輸出為XML文件時的Tag。例如"Product"。
輸出:自動=讓系統決定是否導出(系統會根據某些條件決定是否導出,比如文本框內的字符串是常量時不導出,僅導出來自數據集的字段值內容);是=總是導出;否=不導出);僅內容=只導出數據內容