调用RDLC钻取报告 [英] Calling Drillthrough report in rdlc

查看:273
本文介绍了调用RDLC钻取报告的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个RDLC报告名称attendence.rdlc这需要三个参数雇员,monthId和年产生员工的月出勤status.Like

I have a rdlc report name attendence.rdlc which take three parameter employeeId,monthId and year to generate employee's monthly attendance status.Like

当我点击>>按钮类似于:

When i click >> button Like :

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

i need to call drillthrough (in my case same report) report increasing month and year's parameter.

如何创建一个钻取甚至处理程序RDLC报告?

How to create a drillthrough even handler in rdlc report?

推荐答案

我的问题已经solved.In RDLC当有人叫goto_report / goto_url..it的实际钻取report.So称为如果我创建呐,甚至处理明显的外回发网址像

My problem have been solved.In rdlc when someone calling goto_report/goto_url..it's actually called by Drillthrough report.So if i create na even handler obviously outside of postback url like

 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();
}

这篇关于调用RDLC钻取报告的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆