ReportViewer教程(14)-钻取报表和传入参数

 

当我们在前面做的报表上点击某一公司名称时,钻取了另一张报表并传递以该公司名称为内容的参数,

这张表显示了该公司的详细资料。

我们按照  ReportViewer教程(2)-添加空报表Report1.rdlc

                ReportViewer教程(3)-添加空报表Report1.rdlc

     的方法添加一个名为Report2.rdlc的新报表,从已有的数据源中拖入相应的字段到报表中。

ReportViewer教程(14)-钻取报表和传入参数

在报表的空白处右击调出菜单,

 

ReportViewer教程(14)-钻取报表和传入参数


选“报表参数”,调出“报表参数”对话框:
ReportViewer教程(14)-钻取报表和传入参数

在名称和提示中分别输入“Parameter_公司名称”,按确定。

 

    从工具箱中拖入一个文本框到“table1”表的上方,在其中输入:

=Parameters!Parameter_公司名称.Value & " 详细信息"

做好的表如下图:

ReportViewer教程(14)-钻取报表和传入参数

右击“table1”表的右上角(如下图),选“属性”,

ReportViewer教程(14)-钻取报表和传入参数

调出表属性对话框(如下图),再选"筛选器"选项卡
ReportViewer教程(14)-钻取报表和传入参数

 

在表达式的第一行中下拉后选:"=Fields!公司名称.Value"一项,如下图:


ReportViewer教程(14)-钻取报表和传入参数
 

在"值"的第一行下拉后选"表达式",如下图:

ReportViewer教程(14)-钻取报表和传入参数

在出来的“编辑表达式”对话框中选参数,再双击参数“Parameter_公司名称”参数,

这样参数就自动填为:=Parameters!Parameter_公司名称

如下图:

ReportViewer教程(14)-钻取报表和传入参数

再按确定,退出“编辑表达式”对话框。再按确定,退出表属性对话框。

这时Report2.rdlc报表就做好了。

 

再调出Report1.rdlc报表设计画面,

                ReportViewer教程(14)-钻取报表和传入参数


右击公司名称下面一个单元格,点属性,调出该单元格的“文本框属性”,

选“导航”选项卡,再选“跳至报表”,下拉后有“Report2”,将它选中:如下图:

 

ReportViewer教程(14)-钻取报表和传入参数

再点击“跳至报表”右面的参数按钮:

ReportViewer教程(14)-钻取报表和传入参数

在参数对话框中选 参数名称为: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);

代码添加完后运行程序:

ReportViewer教程(14)-钻取报表和传入参数

点击某一公司的名称(如上图),得到如下图的报表:

ReportViewer教程(14)-钻取报表和传入参数

一切都OK了。

  上面是从一个报表向另一个报表传送参数,如果从程序的代码中向报表传送参数,请按下面的图示来做。

 下图说明了用.net vb 代码向Report1.rdlc的报表传送内容为“定单报表”的参数:

ReportViewer教程(14)-钻取报表和传入参数

   

 如果是 .net C# 的话,用下面的代码:     

  ReportParameter p = new ReportParameter("Report_Parameter_0", "定单报表");

  this.reportViewer1.LocalReport.SetParameters(new ReportParameter[]{p});

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值