C#报表控件ReportViewer rdlc 例(4)
来源:互联网 发布:chrome 页面调试js 编辑:程序博客网 时间:2024/05/16 06:15
本文内以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中编写如下代码:
private void button2_Click(object sender, EventArgs e)
{
NorthwindDataSet.CustomersDataTable dt1 = new NorthwindDataSetTableAdapters.CustomersTableAdapter().GetData();
this.reportViewer1.LocalReport.ReportEmbeddedResource = "TestReport.customerReport.rdlc";
this.reportViewer1.LocalReport.DataSources.Clear();
this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("NorthwindDataSet_Customers", dt1));
this.reportViewer1.RefreshReport();
}
10、使用报表的Drillthrough事件,当选择了钻取项时会发生此事件,给下一个报表取值,代码如下:
private void reportViewer1_Drillthrough(object sender, DrillthroughEventArgs e)
{
LocalReport lp = (LocalReport)e.Report;
string customerid = lp.GetParameters()["customerid"].Values[0].Trim();
lp.DataSources.Clear();
lp.DataSources.Add(new ReportDataSource("NorthwindDataSet_Orders",
new NorthwindDataSetTableAdapters.OrdersTableAdapter().GetDataByCustomerID(customerid)));
}
运到结果:
运行第一份报表:
钻取后运行第二份报表:
再次感谢原作者
- C#报表控件ReportViewer rdlc 例(4)
- C#报表控件ReportViewer rdlc 例(4)
- C#报表控件ReportViewer rdlc 例(3)
- C#报表控件ReportViewer rdlc 例(2)
- C#报表控件ReportViewer rdlc 例(1)
- C#报表控件ReportViewer rdlc 例(1) .
- C#报表控件ReportViewer
- 报表ReportViewer显示图片--rdlc
- 报表ReportViewer显示图片--rdlc
- 报表ReportViewer显示图片--rdlc
- C#报表控件ReportViewer的使用
- asp.net 打印ReportViewer报表 rdlc报表
- 在VS2010Winform项目中使用RDLC报表定义文件、ReportViewer控件生成本地报表
- 真正地全动态报表:RDLC+ReportViewer
- ReportViewer rdlc 报表导出 pdf 中文乱码
- 报表ReportViewer显示rdlc资源的图片
- Asp.net报表ReportViewer设计(RDLC)
- Asp.net报表ReportViewer设计(RDLC)
- 新窗口打开文件如果是不能识别的文件档自动关闭窗口的问题。
- 画中画iframe
- Android的电话功能介绍
- android 改变线程优先级Change Thread Priority
- 关键词:上帝粒子
- C#报表控件ReportViewer rdlc 例(4)
- svn window下简易使用手记
- C++ Primier读后感 之 第七章 函数
- 项管师考试经验
- 交互设计:是“授之以渔”还是“授之以鱼”?----寻求自动与自由的契合
- Microsoft Application Blocks for .NET
- C#报表控件ReportViewer rdlc 例(3)
- 项目管理实践教程一、工欲善其事,必先利其器【Basic Tools】
- 大型多人游戏中间件