RDL(C) Report Design Step by Step 1: DrillThrough Report
RDL(C) Report Design Step by Step 1: DrillThrough Report
前一段时间,发了几篇关于RDLC报表的随笔,由于这些随笔中没有关于报表设计方面的内容,于是不少网友和我联系,问了一些关于报表设计方面的问题,最近准备写几篇关于RDLC报表设计的随笔。
这篇随笔主要描述实现钻取报表的步骤。
钻取报表的数据源应该是两个具有主子关系的表,在这篇随笔中以Northwind数据库中的订单和订单明细作为数据源。
1、在Visual Studio 2005中创建一个Windows应用程序RDLCDR。
2、在项目中添加数据源,数据源并不一定用来为报表提供数据(当然Visual Studio 2005提供的操作非常方便),主要是在报表设计时可以方便向报表中进行字段拖曳。添加数据源意味着在项目中添加了一个数据集Orders.xsd文件,当报表的数据不是来源于关系型数据库(如Flat Files或Web Services等)时,我们可以自己定义一个xsd文件作为报表设计时的数据源,而在程序中重新为报表载入数据。
3、在项目中添加报表rptOrder.rdlc,这个报表非常简单,不具体介绍其设计步骤。报表文件中将显示“订单”的内容,其结构如下图1所示:
图1 “订单”报表的结构
4、同上,添加报表rptOrderDetails.rdlc,其结构如下图2所示:
图2 “订单明细”报表的结构
5、在报表rptOrder.rdlc中,选中表控件的“表详细信息”行的第一列“=Fields!订单ID.Value”单元格,右键“属性”弹出“文本框属性”对话框(如图3所示),在“导航”选项卡的“超链接操作”中,选中“跳至报表”并在下拉列表中选择报表rptOrderDetails,单击下拉列表右边的“参数...”按钮,进行入图4所示的设置。
图3 “文本框属性”对话框
图4 “跳至报表”参数设置
6、在报表rptOrderDetails中,使用菜单“报表” →“报表参数”进入“报表参数”对话框,并如下图5所示设置参数orderid,这个参数主要用于从rptOrder接收传值。
图5 报表参数orderid设置(点击小图看大图)
7、选中报表rptOrderDetail中的表格控件,右键“属性”,进入“表属性”对话框,在“筛选器”选项卡中,设置如下图6所示的筛选器。在构造筛选器时,最好使用“编辑表达式”对话框生成表达式,除非足够熟悉,否则,手写表达式很可能会出现错误,例如表达式前面一定要有“=”。
图6 筛选器设置
OK,至此,报表设计需要做的内容就完成了,下面是如何为报表提供数据,并显示在ReportViewer中了。
8、在WinForm窗体上放置ReportViewer控件,并单击控件右上角的三角符号,弹出“ReportViewer 任务”对话框中(图7),选择报表RDLCDR.rptOrder.rdlc。如果前面提到的数据集文件(.xsd文件)是由系统自动生成的话,系统会自动为窗体生成DataAdapter、BindingSource和DataSet,删除之,我们在下面的步骤中手动指定报表的数据源,否则可能会出现报表不报错,但报表内无数据的情况。
图7 ReportViewer任务对话框
9、在窗体中使用下图8所示的代码为报表和钻取报表指定数据源,完成最后的操作。需要注意的是下图8中的“数据集名称”必须指定正确,而这个名称可以从下图9所示的对话框中取得。
图8 指定数据源的代码(点击小图看大图)
图9 “数据集名称”的出处
结果截图如下:
图10 “订单”报表
图11 “订单明细”钻取报表
Demo下载
另外,在Web应用程序中,也可以使用此方法建立DrillThrough报表,不过代码中的Microsoft.Reporting.WinForms.ReportDataSource要改为Microsoft.Reporting.WebForms.ReportDataSource。
RDL(C) Report Design Step by Step 1: DrillThrough Report相关推荐
- RDL(C) Report Design Step by Step 3: Mail Label
RDL(C) Report Design Step by Step 3: Mail Label Crystal Report在报表向导中提供了三种向导类型给用户进行选择--Standard.Cross ...
- RDL(C) Report Design Step by Step 2: SubReport
RDL(C) Report Design Step by Step 2: SubReport 前两天,有网友在Blog上评论要求将子报表的配置贴出来,由于这两天有些别的事情,所以耽搁了:另外,自己也比 ...
- RDL(C) Report Design Step by Step
RDL(C) Report Design Step by Step 1: DrillThrough Report 前一段时间,发了几篇关于RDLC报表的随笔,由于这些随笔中没有关于报表设计方面的内容, ...
- Design POX controller step by step
Design POX controller step by step In this article, I'll describe how to understand the POX controll ...
- 数据库设计Step by Step (10)——范式化
引言:前文(数据库设计Step by Step (9)--ER-to-SQL转化)讨论了如何把ER图转化为关系表结构.本文将介绍数据库范式并讨论如何范式化候选表.我们先来看一下此刻处在数据库生命周期中 ...
- 数据库设计Step by Step (9)——ER-to-SQL转化
2019独角兽企业重金招聘Python工程师标准>>> 引言:前文(数据库设计 Step by Step (8)--视图集成)讨论了如何把局部ER图集成为全局ER图.有了全局ER图后 ...
- 【Step By Step】将Dotnet Core部署到Docker下
一.使用.Net Core构建WebAPI并访问Docker中的Mysql数据库 这个的过程大概与我之前的文章<尝试.Net Core-使用.Net Core + Entity FrameWor ...
- python写一个通讯录step by step V3.0
python写一个通讯录step by step V3.0 更新功能: 数据库进行数据存入和读取操作 字典配合函数调用实现switch功能 其他:函数.字典.模块调用 注意问题: 1.更优美的格式化输 ...
- C#2.0实例程序STEP BY STEP--实例二:数据类型
C#2.0实例程序STEP BY STEP--实例二:数据类型 与其他.NET语言一样,C#支持Common Type Sysem(CTS),其中的数据类型集合不仅包含我们熟悉的基本类型,例如int, ...
最新文章
- Ubuntu网络设置
- LeetCode 137. Single Number II--三次异或消除相同的数--C++,Python解法
- 好书速递 | FPGA原理和结构
- 中南林科大c语言程序设计,2017年中南林业科技大学计算机与信息工程学院802C语言与数据结构之C程序设计考研题库...
- PHP单选框实现的方法,jQuery简单实现遍历单选框的方法
- 【Flink】Flink checkpoint 本地磁盘 没有清除
- 小心!你的脸正在成为色情片主角
- JS - 移动设备终端的touch事件
- VC6 SDK 下载
- 南通市城管局推动“数字化城管”向“智慧城管”升级
- java中system.in怎么用
- ACM/IOI 国家队集训队论文集锦
- 计算机后台打印机程序,打印机不能正常工作,提示'操作无法完成,后台打印程序服务没有运行'的解决方法...
- 创业公司的融资阶段:天使轮、种子轮、A轮、C轮、E轮到底是什么意思?
- 3种思路,打造用户画像的标签体系
- 中国人民银行清算总中心CDA业务数据分析师培训正式开课
- 域名的解析及域名根服务器
- 《论文写作》课程心得
- 诺基亚 索爱 低端手机及智能手机 与 QQ邮箱或MyTT 通讯录同步 介绍
- MSRA前端实习面经