ActiveReports 报表应用教程 (3)---图表报表
ActiveReports 的图表控件支持绝大多数常用的二维和三维图表类型,包括XY图表和财务图表。通过使用图表控件的定制功能,如修改坐标轴、图注、图例等,用户可以创建任何其所需要的图表效果。用户还可以通过代码把定义好的图表输出为多种图像格式。 本文将演示如何在 ActivReports 中实现图文混淆报表。
我们将要实现的是2011年度各类产品销量统计报表,其中图表按照产品类别统计销量,表格按照类别和月份统计销售量。
1、创建报表文件
在 ASP.ENT 应用程序中添加一个名为 rptSalesByCategory.rdlx 的页面报表(PageReport)文件,使用的报表模板为“ActiveReports 7 页面报表”,创建完成之后通过 VS 的以下菜单完成报表转换操作:
2、为 rptSalesByCategory 报表添加数据源
通过 VS2010 “菜单” –> “其他窗口” –> “报表资源管理器 V7 ” 打开 ActiveReports 报表资源管理器,在数据源节点上鼠标右键,并选择“添加数据源”。在出现的报表数据源对话框中,输入下图所示的信息:
2.1、在新创建的 NWind_CHS 数据源节点上鼠标右键,并选择添加数据集,在出现的数据集对话框中输入一下信息:
常规选项卡 –> 名称:Sales
查询选项卡 –> 查询:
SELECT 类别.类别名称,t.* FROM (SELECT 类别.类别ID,SUM(订单明细.数量) AS 销售量 FROM (( 订单INNER JOIN 订单明细 ON 订单.订单ID = 订单明细.订单ID)INNER JOIN 产品 ON 订单明细.产品ID = 产品.产品ID)INNER JOIN 类别 ON 产品.类别ID = 类别.类别IDWHERE DATEDIFF("yyyy",订单.订购日期,'2011-01-01') = 0GROUP BY 类别.类别ID, 类别.类别名称ORDER BY 类别.类别ID, 类别.类别名称 ) as tINNER JOIN 类别 ON t.类别ID = 类别.类别ID
2.2、在 NWind_CHS 数据源节点上鼠标右键,并选择添加数据集,在出现的数据集对话框中输入一下信息:
常规选项卡 –> 名称:SaleDetails
查询选项卡 –> 查询:
SELECT 类别.类别名称,t.* FROM (SELECT DATEPART("m",订单.订购日期) AS 订购月,类别.类别ID,SUM(订单明细.数量) AS 销售量 FROM (( 订单INNER JOIN 订单明细 ON 订单.订单ID = 订单明细.订单ID)INNER JOIN 产品 ON 订单明细.产品ID = 产品.产品ID)INNER JOIN 类别 ON 产品.类别ID = 类别.类别IDWHERE DATEDIFF("yyyy",订单.订购日期,'2011-01-01') = 0GROUP BY DATEPART("m",订单.订购日期),类别.类别ID, 类别.类别名称ORDER BY DATEPART("m",订单.订购日期),类别.类别ID, 类别.类别名称 ) as tINNER JOIN 类别 ON t.类别ID = 类别.类别ID
3、创建图表对象
从 VS 工具箱中将 Chart 控件添加到报表设计界面,选中 Chart 后在属性窗口中的命令区域会显示 Chart 相关的操作命令,我们点击【图表数据…】命链接,此时会显示图表数据对话框,按照以下截图完成 Chart 的设置:
3.1 图表数据-常规设置
名称:
Chart1
工具提示:
2011年度各类产品销售量统计表
数据集名称:
Sales
3.2、图表数据-系列值
系列标签:
销售量
值:
=Sum([销售量])
3.3、图表数据-类别分组
分组-表达式:
=[类别名称]
标签:
=[类别名称]
4、创建数据明细表
我们将使用矩阵控件 Matrix 来显示每月,每类产品的销售量,从 VS 工具箱中将矩阵控件 Matrix 添加到报表设计界面,并选择矩阵控件,此时在属性窗口中的命令区域会显示【属性对话框…】命令链接,点击该链接。
4.1、矩阵-常规设置
数据集名称:
SaleDetails
4.2、矩阵-行分组
常规-分组-表达式:
=[订购月]
排序-表达式:
=[订购月]
4.3、矩阵-列分组
常规-分组-表达式:
=[类别名称]
4.4、我们得到的最终设计效果和运行效果如下图所示:
5、运行程序
源码下载地址: http://www.gcpowertools.com.cn/products/activereports_demo.htm
ActiveReports 报表应用教程 (3)---图表报表的更多相关文章
- ActiveReports 报表应用教程 (9)---交互式报表之动态排序
在 ActiveReports 中除了提供对数据源进行排序的功能之外,还提供了最终用户排序功能,最终用户可以对报表进行区域内排序和整个数据源排序,结合数据钻取.过滤等功能可以让用户更方便地分析报表数据 ...
- ActiveReports 报表应用教程 (8)---交互式报表之动态过滤
用户可以使用ActiveReports参数 (Parameters)集合把数据提供给报表中的文本框或图表,也可以选择数据的一个子集显示到报表的特定区域,或者是把数据从主报表象子报表传递.用户可以通过三 ...
- ActiveReports 报表应用教程 (12)---交互式报表之贯穿钻取
在葡萄城ActiveReports报表中提供强大的数据分析能力,您可以通过图表.表格.图片.列表.波形图等控件来实现数据的贯穿钻取,在一级报表中可以通过鼠标点击来钻取更为详细的数据. 本文展示的是20 ...
- ActiveReports 报表应用教程 (10)---交互式报表之向下钻取(详细数据按需显示解决方案)
在葡萄城ActiveReports报表中可以动态的显示或者隐藏某区域的数据,通过该功能用户可以根据需要显示或者隐藏所关心的数据,结合数据排序.过滤等功能可以让用户更方便地分析报表数据. 本文中展示的是 ...
- ActiveReports 报表应用教程 (7)---交叉报表及数据透视图实现方案
在 ActiveReports 中可以通过矩阵控件非常方便的实现交叉报表,同时还可以设置数据的分组.排序.过滤.小计.合计等操作,可以满足您报表的智能数据分析等需求.在矩阵控件中组的行数和列数由每个行 ...
- ActiveReports 报表应用教程 (6)---分组报表
在 ActiveReports 中可以设置单级分组.嵌套分组,同时,还可以使用表格.列表以及矩阵等数据区域控件对数据源进行分组操作.分组报表在商业报表系统中应用不胜枚举,客户信息归类统计表.商品分类统 ...
- ActiveReports 报表应用教程 (11)---交互式报表之文档目录
通过文档目录,用户可以非常清晰的查看报表数据结构,并能方便地跳转到指定的章节,最终还可以将报表导出为PDF等格式的文件.本文以2012年各月产品销售分类汇总报表为例,演示如何在葡萄城ActiveRep ...
- ActiveReports 9实战教程(3): 图文并茂的报表形式
基于上面2节内容,我们搭建了AR9的开发环境,配置好了数据源.在本节,我们以官方提供的3个中文图文并茂的报表来展示AR9的功能,并通过实战的方式一一分享. 以往做报表相关的工作时,最害怕的是报表的UI ...
- ActiveReports 报表应用教程 (1)---Hello ActiveReports
在开始专题内容之前,我们还是了解一下 ActiveReports 是一款什么产品:ActiveReports是一款在全球范围内应用非常广泛的报表控件,以提供.NET报表所需的全部报表设计功能领先于同类 ...
随机推荐
- Android SDK在线更新镜像服务器大全
http://www.androiddevtools.cn/ 原文:http://www.jb51.net/article/73732.htm 由于一些原因,Google相关很多服务都无法访问,所以在 ...
- Android学习之AsyncTask
我们在<Android学习之Handler消息传递机制>(http://www.cnblogs.com/zhouhb/p/5812447.html)已提到过,Android只允许UI线程修 ...
- UICollectionView瀑布流的实现原理(转)
http://ios.jobbole.com/85689/ 和使用 UIScollView 创刊一个瀑布流是一样的方式 7cc829d3gw1f4nq2oc09zj20j00hvq90.jpg 我的 ...
- Java中RSA非对称密钥加解密使用示例
一.简介: RSA加密算法是最常用的非对称加密算法,CFCA在证书服务中离不了它.RSA是第一个比较完善的公开密钥算法,它既能用于加密,也能用于数字签名.这个算法经受住了多年深入的密码分析,虽然密码分 ...
- POJ 2853 Sequence Sum Possibilities
Sequence Sum Possibilities Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5537 Accep ...
- netty 学习
示例 : wikit http://netty.io/wiki/index.html 书 : netty in action http://blog.csdn.net/abc_key/article/ ...
- Visual Studio .NET项目转换器(ProjectConverter)修改
Visual Studio .NET 项目转换器非常类似于ASP.NET版本转换器,区别在于它用于转换 Visual Studio 项目文件的版本.尽管在 .NET 框架的 1.0 版和 1.1 版之 ...
- Python 闭包
什么是闭包? 闭包(closure)是词法闭包(lexical closure)的简称.闭包不是新奇的概念,而是早在高级程序语言开始发展的年代就已产生. 对闭包的理解大致分为两类,将闭包视为函数或者是 ...
- Unity 全面理解加载和内存管理
最近一直在和这些内容纠缠,把心得和大家共享一下: Unity里有两种动态加载机制:一是Resources.Load,一是通过AssetBundle,其实两者本质上我理解没有什么区别.Resources ...
- vs2013update4 vs-mda-remote cordova真机测试ios
1.升级vs2013到update4 2.下载安装vs_langpack-enu英语语言包 3.下载安装vs2013mda目前版本0.3.1 如果开发andorid,需要android sdk,ant ...