1、创建报表文件
在应用程序中创建一个名为 rptVacations.rdlx 的 ActiveReports 报表文件,使用的项目模板为 ActiveReports 页面报表,创建完成之后从 VS 的报表菜单项中选择转换为连续页面布局(CPL)报表,将固定页面报表转换为连续页面报表。
2、打开报表资源管理器,并按照以下信息创建报表数据源
名称: | NorthWind_CHS |
类型: | Micorsoft OleDb Provider |
OLE DB 提供程序: | Microsoft.Jet.OLEDB.4.0 |
服务器或文件名称: | Data\NWind_CHS.mdb |
3、 添加数据集
在新建的 NorthWind_CHS 数据源上鼠标右键并选择添加数据集菜单项
常规-名称:SalesByDay
查询-查询:
SELECT
订单.订购日期,
Sum
(订单明细.单价*订单明细.数量)
AS
营业额
FROM
订单明细
INNERJOIN
订单
ON
订单明细.订单ID = 订单.订单ID
WHERE
DateDiff("yyyy",'2012-01-01',订单.订购日期) = 0
GROUPBY
订单.订购日期;
4、设计报表界面
从 Visual Studio 工具箱中将 Calendar 控件添加到报表设计界面,按照以下列表设置 Calendar 控件的属性:
数据 | 数据集名称:SalesByDay 起始日期:=Fields!订购日期.Value 截止日期:=Fields!订购日期.Value 值:=Fields!营业额.Value |
导航 | 跳转到报表:Reports\rptOrderDetailsForSub.rdlx 跳转到报表-参数: 名称=Date 值==Fields!订购日期.Value |
5、创建贯穿报表的子报表
在应用程序中创建一个名为 rptOrderDetailsForSub.rdlx 的 ActiveReports 报表文件,使用的项目模板为 ActiveReports 页面报表,创建完成之后从 VS 的报表菜单项中选择转换为连续页面布局(CPL)报表,将固定页面报表转换为连续页面报表。并为报表创建以下参数:
名称: | Date |
数据类型: | DateTime |
提示用户输入值显示的文本; | 其实日期: |
隐藏: | True |
6、在子报表中打开报表资源管理器,并按照以下信息创建报表数据源
名称: | NWind_CHS |
共享数据源: | True |
引用: | ..\Data\NWind_CHS_Access.rdsx |
7、 添加数据集
在新建的 NWind_CHS 数据源上鼠标右键并选择添加数据集菜单项
常规-名称:OrderDetails
参数-名称:Param
参数-值:=[@Date]
查询-查询:
SELECT
订单.订单ID, 订单.客户ID, 订单.订购日期, 产品.产品名称,订单明细.数量, 订单明细.单价, 订单明细.折扣
from
(( 订单
innerjoin
订单明细
on
订单.订单ID = 订单明细.订单ID )
innerjoin
产品
on
订单明细.产品ID = 产品.产品ID )
where
? = 订购日期
ORDERBY
订单.订单ID;
8、运行程序
点击2012年度销售数据报表中有数据的日期,然后可以贯穿钻取到当天的销售明细报表中:
本文转自 powertoolsteam 51CTO博客,原文链接:http://blog.51cto.com/powertoolsteam/1255858,如需转载请自行联系原作者