ReportViewer教程(14)-钻取报表和传入参数
2012-11-17 08:36
253 查看
当我们在前面做的报表上点击某一公司名称时,钻取了另一张报表并传递以该公司名称为内容的参数,
这张表显示了该公司的详细资料。
我们按照 ReportViewer教程(2)-添加空报表Report1.rdlc
和 ReportViewer教程(3)-添加空报表Report1.rdlc
的方法添加一个名为Report2.rdlc的新报表,从已有的数据源中拖入相应的字段到报表中。
在报表的空白处右击调出菜单,
选“报表参数”,调出“报表参数”对话框:
在名称和提示中分别输入“Parameter_公司名称”,按确定。
从工具箱中拖入一个文本框到“table1”表的上方,在其中输入:
=Parameters!Parameter_公司名称.Value & " 详细信息"
做好的表如下图:
右击“table1”表的右上角(如下图),选“属性”,
调出表属性对话框(如下图),再选"筛选器"选项卡
在表达式的第一行中下拉后选:"=Fields!公司名称.Value"一项,如下图:
在"值"的第一行下拉后选"表达式",如下图:
在出来的“编辑表达式”对话框中选参数,再双击参数“Parameter_公司名称”参数,
这样参数就自动填为:=Parameters!Parameter_公司名称
如下图:
再按确定,退出“编辑表达式”对话框。再按确定,退出表属性对话框。
这时Report2.rdlc报表就做好了。
再调出Report1.rdlc报表设计画面,
右击公司名称下面一个单元格,点属性,调出该单元格的“文本框属性”,
选“导航”选项卡,再选“跳至报表”,下拉后有“Report2”,将它选中:如下图:
再点击“跳至报表”右面的参数按钮:
在参数对话框中选 参数名称为:Parameter_公司名称
参数值为:=Fields!公司名称.Value
按确定。再按确定退出该单元格的“文本框属性”对话框。
这样Report1.rdlc报表也就设置好了。
二个表设好后还要输入一些引发钻取事件的代码。
调出Form1.vb代码编辑画面,添加一个钻取事件的方法“名为DemoDrillthroughEventHandler”:
如果是 .net VB ,添加代码如下:
Private Sub DemoDrillthroughEventHandler(ByVal sender As System.Object, ByVal e As DrillthroughEventArgs)
Dim myLocalReport As LocalReport
myLocalReport = e.Report
myLocalReport.DataSources.Add(New ReportDataSource("DataSet1_DataTable1", Me.DataSet1.DataTable1))
End Sub
在再Form1_Load中添加一行代码:
AddHandler ReportViewer1.Drillthrough, AddressOf DemoDrillthroughEventHandler
如果是 .net C# ,添加代码如下:
要有命名空间:using Microsoft.Reporting.WinForms;
void DemoDrillthroughEventHandler(object sender, DrillthroughEventArgs e)
{
LocalReport localReport = (LocalReport)e.Report;
localReport.DataSources.Add(new ReportDataSource
("DataSet1_DataTable1",this.DataSet1.DataTable1));
}
在再Form1_Load中添加一行代码:
reportViewer1.Drillthrough += new DrillthroughEventHandler(DemoDrillthroughEventHandler);
代码添加完后运行程序:
点击某一公司的名称(如上图),得到如下图的报表:
一切都OK了。
上面是从一个报表向另一个报表传送参数,如果从程序的代码中向报表传送参数,请按下面的图示来做。
下图说明了用.net vb 代码向Report1.rdlc的报表传送内容为“定单报表”的参数:
如果是 .net C# 的话,用下面的代码:
ReportParameter p = new ReportParameter("Report_Parameter_0", "定单报表");
this.reportViewer1.LocalReport.SetParameters(new ReportParameter[]{p});
相关文章推荐
- ReportViewer教程(1)-新建工程,添加Form和报表浏览器
- ReportViewer教程(15)-矩阵报表-4
- 【水晶报表内功心法】--信手拈来,掌控对象 之 多值参数传入
- ReportViewer教程(2)-添加空报表Report1.rdlc
- ReportViewer教程(15)-矩阵报表-5
- 【水晶报表内功心法】--信手拈来,掌控对象 之 多值参数传入
- SQL Reporting Services 困惑的解决 直接传递参数并用ReportViewer来呈现报表
- ReportViewer教程(3)-添加空报表Report1.rdlc
- ReportViewer教程(15)-矩阵报表-6
- ActiveReports 报表应用教程 (14)---数据可视化
- ReportViewer教程(4)-为报表打造数据源
- SQL Reporting Services 困惑的解决 直接传递参数并用ReportViewer来呈现报表
- ReportViewer教程(5)-将数据源字段放入报表
- ReportViewer报表的使用及参数传递
- ReportViewer教程(6)-将报表浏览器与报表联系
- 使用RDLC报表向报表传入参数
- ReportStudio入门教程(二十四) - 在报表中引入参数的内容
- ReportViewer教程(8)-对报表作一些调整(格式和属性)
- [导入]使用RDLC报表(三)--向RDLC报表传入参数
- ReportViewer教程(9)-给报表增加页打印日期编号