ActiveReports 报表应用教程 (7)---交叉报表及数据透视图实现方案
在 ActiveReports 中可以通过矩阵控件非常方便的实现交叉报表,同时还可以设置数据的分组、排序、过滤、小计、合计等操作,可以满足您报表的智能数据分析等需求。在矩阵控件中组的行数和列数由每个行分组和列分组中的唯一值的个数确定。同时,您可以按行组和列组中的多个字段或表达式对数据进行分组。在运行时,当组合报表数据和数据区域时,随着为列组添加列和为行组添加行,矩阵将在页面上水平和垂直增长。
在矩阵控件中,也可以包括最初隐藏详细信息数据的明细切换,然后用户便可单击该切换以根据需要显示更多或更少的详细信息,以此实现数据向下钻取功能。
我们这里将要演示的是产品销售数据分析表,列分组按照产品类别和产品名称进行分组;行分组按照年和月进行分组,并对销量大于2000的数据进行高亮显示,以下是详细实现步骤:
1、创建报表文件
在应用程序中创建一个名为 rptCrossTable1.rdlx 的 ActiveReports 报表文件,使用的项目模板为 ActiveReports 页面报表,创建完成之后从 VS 的报表菜单项中选择转换为连续页面布局(CPL)报表,将固定页面报表转换为连续页面报表。
2、打开报表资源管理器,并按照以下信息创建报表数据源
名称:
NWind_CHS
类型:
Micorsoft OleDb Provider
OLE DB 提供程序:
Microsoft.Jet.OLEDB.4.0
服务器或文件名称:
Data\NWind_CHS.mdb
![]()
3、 添加数据集
在新建的 NWind_CHS 数据源上鼠标右键并选择添加数据集菜单项,数据集信息如下:
常规-名称:SaleDetails
查询-查询:
SELECT t.*, 类别.类别名称 FROM (
SELECT DATEPART("yyyy",订单.订购日期) AS 订购年, DATEPART("m",订单.订购日期) AS 订购月,类别.类别ID,产品.产品名称,订单明细.数量, 订单明细.单价, 订单明细.折扣 FROM (( 订单
INNER JOIN 订单明细 ON 订单.订单ID = 订单明细.订单ID)
INNER JOIN 产品 ON 订单明细.产品ID = 产品.产品ID)
INNER JOIN 类别 ON 产品.类别ID = 类别.类别ID ) as t
INNER JOIN 类别 ON t.类别ID = 类别.类别ID
ORDER BY 订购年,订购月
4、设计报表界面
从 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设置为白色。
最终完成的设计界面如下:
![]()
5、运行程序
通过 F5 键运行程序,得到以下效果:
![]()
在线演示及源码下载地址:
http://www.gcpowertools.com.cn/products/activereports_demo.htm

ActiveReports 报表应用教程 (7)---交叉报表及数据透视图实现方案的更多相关文章
- ActiveReports 报表应用教程 (9)---交互式报表之动态排序
在 ActiveReports 中除了提供对数据源进行排序的功能之外,还提供了最终用户排序功能,最终用户可以对报表进行区域内排序和整个数据源排序,结合数据钻取.过滤等功能可以让用户更方便地分析报表数据 ...
- ActiveReports 报表应用教程 (8)---交互式报表之动态过滤
用户可以使用ActiveReports参数 (Parameters)集合把数据提供给报表中的文本框或图表,也可以选择数据的一个子集显示到报表的特定区域,或者是把数据从主报表象子报表传递.用户可以通过三 ...
- ActiveReports 报表应用教程 (6)---分组报表
在 ActiveReports 中可以设置单级分组.嵌套分组,同时,还可以使用表格.列表以及矩阵等数据区域控件对数据源进行分组操作.分组报表在商业报表系统中应用不胜枚举,客户信息归类统计表.商品分类统 ...
- ActiveReports 报表应用教程 (12)---交互式报表之贯穿钻取
在葡萄城ActiveReports报表中提供强大的数据分析能力,您可以通过图表.表格.图片.列表.波形图等控件来实现数据的贯穿钻取,在一级报表中可以通过鼠标点击来钻取更为详细的数据. 本文展示的是20 ...
- ActiveReports 报表应用教程 (10)---交互式报表之向下钻取(详细数据按需显示解决方案)
在葡萄城ActiveReports报表中可以动态的显示或者隐藏某区域的数据,通过该功能用户可以根据需要显示或者隐藏所关心的数据,结合数据排序.过滤等功能可以让用户更方便地分析报表数据. 本文中展示的是 ...
- ActiveReports 报表应用教程 (3)---图表报表
ActiveReports 的图表控件支持绝大多数常用的二维和三维图表类型,包括XY图表和财务图表.通过使用图表控件的定制功能,如修改坐标轴.图注.图例等,用户可以创建任何其所需要的图表效果.用户还可 ...
- ActiveReports 报表应用教程 (11)---交互式报表之文档目录
通过文档目录,用户可以非常清晰的查看报表数据结构,并能方便地跳转到指定的章节,最终还可以将报表导出为PDF等格式的文件.本文以2012年各月产品销售分类汇总报表为例,演示如何在葡萄城ActiveRep ...
- ActiveReports 9实战教程(3): 图文并茂的报表形式
基于上面2节内容,我们搭建了AR9的开发环境,配置好了数据源.在本节,我们以官方提供的3个中文图文并茂的报表来展示AR9的功能,并通过实战的方式一一分享. 以往做报表相关的工作时,最害怕的是报表的UI ...
- ActiveReports 报表应用教程 (1)---Hello ActiveReports
在开始专题内容之前,我们还是了解一下 ActiveReports 是一款什么产品:ActiveReports是一款在全球范围内应用非常广泛的报表控件,以提供.NET报表所需的全部报表设计功能领先于同类 ...
随机推荐
- Aspose转PDF时乱码问题的解决
主要原因是服务器上一般安装的字体都是有限的,而我们日常生活工作中总是喜欢用一些比较特别的字体,比如宋体GB2312,这时候如果用Aspose转PDF就会出现乱码,解决方法也比较简单,把本地的特殊字体拷 ...
- C# 選擇本機檔案並上傳
參考自:http://www.dotblogs.com.tw/puma/archive/2008/11/07/5910.aspxhttp://www.codeproject.com/Articles/ ...
- 查看macbook是多少位
Prince-2:~ snowinmay$ uname -aDarwin Prince-2.local 12.5.0 Darwin Kernel Version 12.5.0: Sun Sep 29 ...
- 无法打开包括文件:'atlrx.h'的解决办法
VS 2008中由于将ALT项目的部分代码剥离出去成为了独立的开源项目,需要用到ALT中正则表达式等功能就需要手动下载. 我不是第一个遇到这个问题的,所以已经有前人给出了解决方案. 可到http:// ...
- iOS开发之身份证号码校验
// // Card.h // THCStore // // Created by Mac on 15/7/15. // Copyright (c) 2015年 Mac. All rights ...
- 如何生成ipa文件
xcode--Product--Archive 弹出Organizer-Archives选择Distribute---Save for EnterPrise or Ad_Hoc Deployment- ...
- SQL Server 2008 Windows身份验证改为混合模式身份验证
1.在当前服务器右键进入“属性页”->“安全性”->勾选Sql Server和Windows身份验证模式->确定. 由于默认不启用sa,所以如果启用sa账户登录,则还需要如下设置: ...
- CSS3 垂直居中 左右居中
display: -webkit-box; -webkit-box-orient: horizontal; -webkit-box-pack: center; -webkit-box-align: c ...
- android px dp sp
http://www.zcool.com.cn/article/ZMTUxODQw.html
- 深入理解javascript事件
.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier ...