好!
我正在尝试直接将参数列表直接传递给子报表,因为主报表正被重用作为我正在执行的所有清单(子报表)的主报表,因此,没有必要随子报表的不同而将其传递给主报表。
我已经尝试过将参数的值作为数据源传递到子报表中,但是不允许在与另一个数据源/数据集相关的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)参数传递它吗?