子报表(RDLC)的参数

时间:2019-06-06 19:58:03

标签: c# reporting rdlc subreport

好!

我正在尝试直接将参数列表直接传递给子报表,因为主报表正被重用作为我正在执行的所有清单(子报表)的主报表,因此,没有必要随子报表的不同而将其传递给主报表。

我已经尝试过将参数的值作为数据源传递到子报表中,但是不允许在与另一个数据源/数据集相关的Tablix的公式(表达式)中使用它。

这是它的定义方式:

  public FormBCSLCLIE(XDocument parametrosXML)
    {
        //LISTA DE PARAMETROS A DEFINIR DIRECTAMENTE EN EL SUBREPORT
        IList<ReportParameter> ListaParametros = new List<ReportParameter>();
        ListaParametros.Add(new ReportParameter("FormtFechaHora", Constantes_Reporting.FormatoFechaHoraEncabezado));
        ListaParametros.Add(new ReportParameter("Codorden", CodOrden));
        ListaParametros.Add(new ReportParameter("Codorden1", CodOrden1)); this.reportViewer1.LocalReport.SetParameters(ListaParametros);

        this.reportViewer1.ProcessingMode = ProcessingMode.Local;
        StreamReader streamEncab = File.OpenText(Constantes_Reporting.rutaEncabezadoHorizontal);
        this.reportViewer1.LocalReport.LoadReportDefinition(streamEncab);
        this.reportViewer1.LocalReport.LoadSubreportDefinition("ReportDtl", streamReportDtl);
        this.reportViewer1.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(AgregarReportDtl);
   }

   void AgregarReportDtl(object sender, SubreportProcessingEventArgs e)
    {            
        ReportDataSource dataSourceVariablesGrales = new ReportDataSource(Constantes_Reporting.Variables_Grales, (DataTable)Constructores_Reporting.Variables_Grales);            
        ReportDataSource dataSourceVariables = new ReportDataSource(Constantes_Reporting.Variables, (DataTable)dsClientes.Variables);            
        ClassReporting.CargarDT(classXML.parametrosXML, Constructores_Reporting.nombreSP, dsClientes);                        
        ReportDataSource dataSourceDtl = new ReportDataSource(Constantes_Reporting.Input_Items, (DataTable)dsClientes.Input_Items);            


        int Demora = int.Parse(dsClientes.Tables["Demora"].Rows[0][0].ToString());
        ClassReporting.GuardarInfoEjecucion(classXML.parametrosXML, Constantes_Reporting.nombreMaquina, Demora);

        e.DataSources.Add(dataSourceVariablesGrales);
        e.DataSources.Add(dataSourceVariables);
        e.DataSources.Add(dataSourceDtl);

    }

有人知道如何直接从Method / Subprocess(SubreportProcessingEventHandler)参数传递它吗?

0 个答案:

没有答案