ActiveReports 报表应用教程 (7)---交叉报表及数据透视图实现方案
在ActiveReports中可以通过矩阵控件非常方便的实现交叉报表,同时还可以设置数据的分组、排序、过滤、小计、合计等操作,可以满足您报表的智能数据分析等需求。在矩阵控件中组的行数和列数由每个行分组和列分组中的唯一值的个数确定。同时,您可以按行组和列组中的多个字段或表达式对数据进行分组。在运行时,当组合报表数据和数据区域时,随着为列组添加列和为行组添加行,矩阵将在页面上水平和垂直增长。
在矩阵控件中,也可以包括最初隐藏详细信息数据的明细切换,然后用户便可单击该切换以根据需要显示更多或更少的详细信息,以此实现数据向下钻取功能。
我们这里将要演示的是产品销售数据分析表,列分组按照产品类别和产品名称进行分组;行分组按照年和月进行分组,并对销量大于2000的数据进行高亮显示,以下是详细实现步骤:
1、创建报表文件在应用程序中创建一个名为rptCrossTable1.rdlx的ActiveReports报表文件,使用的项目模板为ActiveReports页面报表,创建完成之后从VS的报表菜单项中选择转换为连续页面布局(CPL)报表,将固定页面报表转换为连续页面报表。
2、打开报表资源管理器,并按照以下信息创建报表数据源名称:NWind_CHS类型:MicorsoftOleDbProviderOLEDB提供程序:Microsoft.Jet.OLEDB.4.0服务器或文件名称:Data\NWind_CHS.mdb3、添加数据集在新建的NWind_CHS数据源上鼠标右键并选择添加数据集菜单项,数据集信息如下:
常规-名称:SaleDetails
查询-查询:
SELECT
t.*,类别.类别名称
FROM
(
SELECT
DATEPART("yyyy",订单.订购日期)
AS
订购年,DATEPART("m",订单.订购日期)
AS
订购月,类别.类别ID,产品.产品名称,订单明细.数量,订单明细.单价,订单明细.折扣
FROM
((订单
INNERJOIN
订单明细
ON
订单.订单ID=订单明细.订单ID)
INNERJOIN
产品
ON
订单明细.产品ID=产品.产品ID)
INNERJOIN
类别
ON
产品.类别ID=类别.类别ID)
as
t
INNERJOIN
类别
ON
t.类别ID=类别.类别ID
ORDERBY
订购年,订购月
4、设计报表界面从VisualStudio工具箱中将ActiveReports7页面布局报表分类下的Matrix控件添加到报表设计界面,然后从属性窗口的命令区域选择属性对话框命令,以打开矩阵控件Matrix的属性设置对话框,然后按照以下表格设置矩阵控件Matrix的属性:
矩阵-常规-数据集名称:SaleDetails行分组-常规-添加分组:名称:Matrix1_订购年分组:=[订购年]
表达式:=[订购年]行分组-常规-添加分组:名称:Matrix1_订购月
分组:=[订购月]
表达式:=[订购月]列分组-常规-添加分组:名称:Matrix1_类别名称
分组:=[类别名称]
表达式:=[类别名称]列分组-常规-添加分组:名称:Matrix1_产品名称
分组:=[产品名称]
表达式:=[产品名称]
完成以上设置之后回到报表设计界面,选中数据单元格TextBox4,在属性窗口的命令区域中点击属性对话框命令,并按照以下表格设置数据单元格的属性:
常规-值:=Sum([数量]*[单价]*(1-[折扣]))外观-背景色-颜色:=IIf((Sum([数量]*[单价]*(1-[折扣]))>2000)And(Sum([数量]*[单价]*(1-[折扣]))<>"","#c21952","White")需要注意的是,我们将外观-背景色-颜色属性通过表达式的方式来完成对数据的高亮显示,如果销售量大于2000单元格背景色设置为高亮,小于等于2000设置为白色。
最终完成的设计界面如下:
5、运行程序通过F5键运行程序,得到以下效果:
在线演示及×××地址:
http://www.gcpowertools.com.cn/products/activereports_demo.htm
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。