您的位置:首页 > 其它

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});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: