在葡萄城ActiveReports報表中可以通過矩陣控件非常友善的實作交叉報表,同時還可以設定資料的分組、排序、過濾、小計、合計等操作,可以滿足您報表的智能資料分析等需求。在矩陣控件中組的行數和列數由每個行分組和列分組中的唯一值的個數确定。同時,您可以按行組和列組中的多個字段或表達式對資料進行分組。在運作時,當組合報表資料和資料區域時,随着為列組添加列和為行組添加行,矩陣将在頁面上水準和垂直增長。
在矩陣控件中,也可以包括最初隐藏詳細資訊資料的明細切換,然後使用者便可單擊該切換以根據需要顯示更多或更少的詳細資訊,以此實作資料向下鑽取功能。
我們這裡将要示範的是産品銷售資料分析表,列分組按照産品類别和産品名稱進行分組;行分組按照年和月進行分組,并對銷量大于2000的資料進行高亮顯示,以下是詳細實作步驟:
在應用程式中建立一個名為 rptCrossTable1.rdlx 的 ActiveReports 報表檔案,使用的項目模闆為葡萄城ActiveReports報表頁面報表,建立完成之後從 VS 的報表菜單項中選擇轉換為連續頁面布局(CPL)報表,将固定頁面報表轉換為連續頁面報表。
名稱:
NWind_CHS
類型:
Micorsoft OleDb Provider
OLE DB 提供程式:
Microsoft.Jet.OLEDB.4.0
伺服器或檔案名稱:
Data\NWind_CHS.mdb
在建立的 NWind_CHS 資料源上滑鼠右鍵并選擇添加資料集菜單項,資料集資訊如下:
正常-名稱:SaleDetails
查詢-查詢:
t.*, 類别.類别名稱
(
DATEPART("yyyy",訂單.訂購日期)
訂購年, DATEPART("m",訂單.訂購日期)
訂購月,類别.類别ID,産品.産品名稱,訂單明細.數量, 訂單明細.單價, 訂單明細.折扣
(( 訂單
訂單明細
訂單.訂單ID = 訂單明細.訂單ID)
産品
訂單明細.産品ID = 産品.産品ID)
類别
産品.類别ID = 類别.類别ID )
t
t.類别ID = 類别.類别ID
訂購年,訂購月
從 Visual Studio 工具箱中将 ActiveReports 7 頁面布局報表分類下的 Matrix 控件添加到報表設計界面,然後從屬性視窗的指令區域選擇屬性對話框指令,以打開矩陣控件 Matrix 的屬性設定對話框,然後按照以下表格設定矩陣控件 Matrix 的屬性:
矩陣-正常-資料集名稱:
SaleDetails
行分組-正常-添加分組:
名稱:Matrix1_訂購年
分組:=[訂購年]
表達式:=[訂購年]
名稱:Matrix1_訂購月
分組:=[訂購月]
表達式:=[訂購月]
列分組-正常-添加分組:
名稱:Matrix1_類别名稱
分組:=[類别名稱]
表達式:=[類别名稱]
名稱:Matrix1_産品名稱
分組:=[産品名稱]
表達式:=[産品名稱]
完成以上設定之後回到報表設計界面,選中資料單元格 TextBox4 ,在屬性視窗的指令區域中點選屬性對話框指令,并按照以下表格設定資料單元格的屬性:
正常-值:
=Sum([數量] *[單價] * (1-[折扣]))
外觀-背景色-顔色:
=IIf( (Sum( [數量] * [單價] * (1- [折扣] )) > 2000) And ( Sum( [數量] * [單價] * (1- [折扣] )) <> "" , "#c21952", "White" )
需要注意的是,我們将外觀-背景色-顔色屬性通過表達式的方式來完成對資料的高亮顯示,如果銷售量大于2000單元格背景色設定為高亮,小于等于2000設定為白色。
最終完成的設計界面如下:
通過 F5 鍵運作程式,得到以下效果:
<a href="http://www.gcpowertools.com.cn/products/activereports_demo.htm?from=ARBlog" target="_blank">http://www.gcpowertools.com.cn/products/activereports_demo.htm</a>
相關閱讀:
<a href="http://www.grapecity.com.cn/enterprise-solutions/activereports_server/library/" target="_blank">【報表福利大放送】100餘套報表模闆免費下載下傳 </a>