本文内以MSServer自带Northwind库文件内的Customers及Orders这两个表为例,建立两个报表文件,在查询得出Customers的表数据后,点击此表内的CustomerID数据,报表将转入至下一个报表,并显示与之相关的Orders的数据,即VS中所谓的钻取式报表。

1、打开一个工程,并新建一个From,放入一个Button及一个ReportViewer控件。
2、在工程内新建一个数据源,连接到Northwind库文件,显示Customers及Orders这两个表
3、新建一个报表文件,并以表格的形式来显示数据,将Customers表内的CustomerID、CompanyName及Address三个字段放入,形成一份有表头及数据的简单报表,并将此报表保存命名为customerReport
4、再建一个报表文件,与customerReport相同,也以表格的形式来显示报表,将Orders内的OrderID、CustomerID、ShipName及OrderDate四个字段放入表格内,报表保存为orderReport
5、orderReport的数据源根据主报表customerReport的数据来确定数据源的数据,查看表格的数据集名称,我的显示为NorthwindDataSet_Orders,也可以自己另建一个,具体方法见我的《RDLC报表(二)》
6、再打开customerReport报表,将CustomerID设置成为可点击的索引字段,以便转入下一个报表。选择CustomerID字段,按鼠标右键,在”文本框属性“窗口中,选择”导航“选项卡,在下面的”超链接“中选择”跳至报表“,在报表名称中选择”orderReport“,再按下后面的”参数...“按钮,输入一个参数名称,如customerid,参数值选择=Fields!CustomerID.Value。为了与其它数据相区分,可以将此列数据根据自己的习惯改变颜色或加下划线
7、在orderReport中,设置一个报表参数,与CurtomerReprot中的名称相同,以接收父表中传入的参数
8、新建两个取得数据的方法,一个从Customers中取得数据集,另一个从Orders中取得数据集,且带参数。此两个方法可以自己编写类库来实现,也可以在VS的数据集内添加。为了演示方便,我直接使用了Customers的GetData(),并编写了一个Orders的GetDataByCustomerID(@cid)的方法。
9、在From的Button中编写如下代码:

privatevoidbutton2_Click(objectsender, EventArgs e)
{
            NorthwindDataSet.CustomersDataTable dt1
=newNorthwindDataSetTableAdapters.CustomersTableAdapter().GetData();
this.reportViewer1.LocalReport.ReportEmbeddedResource="TestReport.customerReport.rdlc";
this.reportViewer1.LocalReport.DataSources.Clear();
this.reportViewer1.LocalReport.DataSources.Add(newReportDataSource("NorthwindDataSet_Customers", dt1));
this.reportViewer1.RefreshReport();
        }

10、使用报表的Drillthrough事件,当选择了钻取项时会发生此事件,给下一个报表取值,代码如下:

privatevoidreportViewer1_Drillthrough(objectsender, DrillthroughEventArgs e)
{
            LocalReport lp
=(LocalReport)e.Report;
stringcustomerid=lp.GetParameters()["customerid"].Values[0].Trim();

            lp.DataSources.Clear();
            lp.DataSources.Add(
newReportDataSource("NorthwindDataSet_Orders",
newNorthwindDataSetTableAdapters.OrdersTableAdapter().GetDataByCustomerID(customerid)));
        }

运到结果:
运行第一份报表:

钻取后运行第二份报表:

使用RDLC报表(四)--钻取式报表相关推荐

  1. ***S 2012 交互式报表 -- 钻取式报表

    ***S 2012 交互式报表 -- 钻取式报表 当分析者运用报表观察汇总数据时,当对某个数据感兴趣或是察觉异常时,往往需要调阅汇总值,以仔细深入分析.这种需求称之为钻取(Drill-Through) ...

  2. 如何利用API实现行式报表后台导入excel数据入库

     润乾报表提供了excel导入页面后入库的功能,丰富了用户导入excel的方式.对于普通填报表,润乾报表提供了直接后台入库和导入页面入库的方式,那么在行式填报表中,如何实现后台导入excel入库呢 ...

  3. RDLC报表系列--------钻取报表

    钻取报表开发步骤: 先看总体效果:如图 点击单据编号 下面就做个看看... 1.先添加一个RDLC报表文件作为钻取报表. 添加一个RDLC报表,在设计界面添加一个表格Table,配置好数据源如图: 2 ...

  4. [转]RDLC报表-参数传递及主从报表

    本文转自:http://www.cnblogs.com/yjmyzz/archive/2011/09/19/2180940.html 今天继续学习RDLC报表的"参数传递"及&qu ...

  5. [转]配置子报表和钻取报表

    您可以使用子报表和钻取报表将相关报表链接在一起. 子报表是在父报表的表体内嵌入其他报表的项.从概念上讲,子报表类似于为其他网页内容提供容器的网页中的框架.子报表呈现在包含它的父报表内.同时处理和显示这 ...

  6. Stimulsoft Reports.Net基础教程(七):创建列式报表①

    2019独角兽企业重金招聘Python工程师标准>>> 1.运行设计器 2.连接数据 2.1创建New Connection 2.2创建New Data Source 3.设置列选项 ...

  7. 个人永久性免费-Excel催化剂功能第75波-标签式报表转标准数据源

    数据处理永远是数据分析工作中重中之重的任务,大部分人深深地陷入在数据处理的泥潭中,今天Excel催化剂再接再厉,在过往已提供了主从结构报表数据源的数据转换后,再次给大家送上标签式报表数据源的数据转换操 ...

  8. 帆软报表如何传递主表原有参数给子表呢_报表工具--钻取功能--超链接下钻

    超链接钻取是一个非常实用的功能,在各种项目.应用中使用广泛,能够帮助数据分析用户清晰.直观地了解不同层级数据的上下级关系,并聚焦于自己感兴趣的内容.当然,润乾报表也支持这个功能,前面小编有介绍过列表钻 ...

  9. qtreewidgetitem 选中背景颜色_列表式报表阶梯背景色效果

    一行一条数据的列表式报表,在页面上查看数据容易造成混乱,为了便于查看数据,通常会在页面上做些动态背景色,隔行异色的效果,还可以做下图这种阶梯式效果. 分析下这张表有什么规律,算上标题行的话,第一列数据 ...

最新文章

  1. com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2013: 为队列管理器提供的安全性认证无效...
  2. 在deepin系统中制作桌面快捷方式
  3. 一幅漫画揭示了项目研发过程中存在的问题,太形象了
  4. Oracle 21C 新特性:数据泵相关新特性汇总
  5. 【BZOJ4197】寿司晚宴,状态压缩DP
  6. UITableViewController 滚动引起的cocos2d动画暂停问题的解决
  7. python车牌字符分割_OpenCV+Python识别车牌和字符分割的实现
  8. ESET Smart Security 3.0667与WindowsXP Sp3冲突
  9. 阿里云为什么在十三年后重构调度系统?
  10. UI——PS色彩搭配
  11. firebug-2.0.19-fx.xpi绿色免费下载
  12. JS基础知识思维导图
  13. 浙江海洋大学计算机 周斌,浙江海洋大学2018年硕士研究生调剂拟录取名单公示(一)...
  14. 我的未来作文计算机行业,我的未来职业畅想作文
  15. 更改WLAN的IP地址
  16. Python画水平和垂直线
  17. CPU的计算机能力和AVX512指令集
  18. 一个二维表查询的实现
  19. 皇家墨尔本理工大学计算机科学专业,皇家墨尔本理工大学计算机科学硕士专业.pdf...
  20. 华为g9显示无服务器,华为手机连不上电脑_华为p9手机连不上电脑

热门文章

  1. Java学习笔记1——类和对象
  2. 大型企业网络设备管理
  3. 面试精讲之面试考点及大厂真题 - 分布式专栏 22 分布式系统下调用链追踪技术
  4. 如何在Debian 9 / Debian 8上安装MariaDB 10.3
  5. js解码编码decodeURI与decodeURIComponent区别
  6. 【Python】如何在python中执行另一个py文件
  7. C#LeetCode刷题之#892-三维形体的表面积(Surface Area of 3D Shapes)
  8. C#LeetCode刷题-设计
  9. Docker映像存储在哪里? Docker容器路径介绍
  10. 编写react组件_如何编写第一个React.js组件