【问题标题】:Calling Drillthrough report in rdlc在 rdlc 中调用钻取报告
【发布时间】:2012-04-23 18:48:45
【问题描述】:

我有一个 rdlc 报告名称attendence.rdlc,它采用三个参数employeeId、monthId 和year 来生成员工的每月出勤状态。像

当我单击 >> 按钮时:

我需要调用钻取(在我的情况下是同一份报告)报告增加月份和年份的参数。

如何在 rdlc 报表中创建钻取事件处理程序?

【问题讨论】:

    标签: c# rdlc


    【解决方案1】:

    我的问题已经解决了。在 rdlc 中,当有人调用 goto_report/goto_url 时,它实际上是由 Drillthrough 报告调用的。因此,如果我显然在回发 url 之外创建了一个偶数处理程序,例如

     protected void Page_Load(object sender, EventArgs e)
     { 
    
     if (!IsPostBack)
        {
           //otherscode u need
           //now call report first time
          string path = HttpContext.Current.Server.MapPath(your report path);
          ReportViewer1.Reset(); //important
          ReportViewer1.ProcessingMode = ProcessingMode.Local;
          ReportViewer1.LocalReport.EnableHyperlinks = true;
    
          LocalReport objReport = ReportViewer1.LocalReport;
          objReport.DataSources.Clear();
          objReport.ReportPath = path;
    
          // Add Parameter if you need
          List<ReportParameter> parameters = new List<ReportParameter>();
          parameters.Add(new ReportParameter("parameterName", ParameterValue));
          ReportViewer1.LocalReport.SetParameters(parameters);
          ReportViewer1.ShowParameterPrompts = false;
          ReportViewer1.ShowPromptAreaButton = false;
          ReportViewer1.LocalReport.Refresh();
    
          //Add Datasourdce
          ReportDataSource reportDataSource = new ReportDataSource();
          reportDataSource.Name = "odsReportData";
          reportDataSource.Value = YourReportDataSourseValue;
          objReport.DataSources.Add(reportDataSource);
          objReport.Refresh();
        }
    
        ReportViewer1.Drillthrough += new DrillthroughEventHandler(DemoDrillthroughEventHandler);
    
        }
    
    
    
    
    
    
    
       public void DemoDrillthroughEventHandler(object sender, DrillthroughEventArgs e)
       {
      /*Collect report parameter from drillthrough report*/
        ReportParameterInfoCollection DrillThroughValues = e.Report.GetParameters();
        Type parameterName = Type.Parse(DrillThroughValues[1].Values[0].ToString());
    
      /*Bind data source with report*/
        LocalReport localReport = (LocalReport)e.Report;
        localReport.DataSources.Clear();
        localReport.DataSources.Add(new ReportDataSource("odsData", reportData));
        localReport.EnableHyperlinks = true;     
    
       /*Add parameter to the report if report have paramerter*/
        List<ReportParameter> parameters = new List<ReportParameter>();
        parameters.Add(new ReportParameter("ParameterName", ParameterValue));
        localReport.SetParameters(parameters);
        localReport.Refresh();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-19
      • 1970-01-01
      • 1970-01-01
      • 2020-05-03
      • 2021-07-31
      • 1970-01-01
      相关资源
      最近更新 更多