首页 > 解决方案 > 子报告 - 报告的位置规范中的错误

问题描述

我有以下错误,我在下面详细说明:

“在指定位置 SPECIFIC ROUTE\Encabezado.rdlc 找不到 'Encabezado' 子报告。验证子报告已发布且名称正确。”

InitializeComponent();
string nombreSP = "XXX_SP_REPORTING_SERVICES_DESPACHOS";
DataSet ds = frmListClass.ObtenerDS(parametrosXML, nombreSP);
string[] nodoParametro = frmListClass.ParsearParametros(parametrosXML);
int[] cantDecimales = frmListClass.ObtenerCantDecimales(parametrosXML);

ReportParameter p1  = new ReportParameter("Base", nodoParametro[0]);
ReportParameter p2  = new ReportParameter("User", nodoParametro[1]);
ReportParameter p3  = new ReportParameter("Sistema", nodoParametro[3]);
ReportParameter p4  = new ReportParameter("Caratula", nodoParametro[4]);
ReportParameter p5  = new ReportParameter("FormatoQRP", nodoParametro[5]);            
ReportParameter p6  = new ReportParameter("dcmlCant", cantDecimales[0].ToString());
ReportParameter p7  = new ReportParameter("dcmlCantTalle", cantDecimales[1].ToString());
ReportParameter p8  = new ReportParameter("dcmlPrecio", cantDecimales[2].ToString());
ReportParameter p9  = new ReportParameter("dcmlImporte", cantDecimales[3].ToString());



ReportDataSource dataSource = new ReportDataSource(nombreSP, ds.Tables[0]);
this.reportViewer1.LocalReport.DataSources.Clear();
this.reportViewer1.ProcessingMode = ProcessingMode.Local;
string rutaEncabezado = @"D:\\BASCS-ReportingServices\\BAS-ReportingServices\\BCSLDSPT\\Encabezado.rdlc";
string rutaRDLC = @"D:\\BASCS-ReportingServices\\BAS-ReportingServices\\BCSLDSPT\\Report1.rdlc";
Stream subReport = File.OpenRead(rutaEncabezado);
Stream report = File.OpenRead(rutaRDLC);            
this.reportViewer1.LocalReport.LoadReportDefinition(report);
this.reportViewer1.LocalReport.LoadSubreportDefinition("Encabezado", subReport);
this.reportViewer1.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(AgregarEncabezado);                                                                     
this.reportViewer1.LocalReport.DataSources.Add(dataSource);
this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { p1, p2, p3, p4, p5, p6, p7, p8, p9/*, p10, p11, p12, p13*/ });
this.reportViewer1.RefreshReport();                        

Warning[] warnings;
string[] streamIds;
string mimeType;
string encoding;
string filenameExtension;
byte[] bytes = reportViewer1.LocalReport.Render("PDF", null, out mimeType, out encoding, out filenameExtension, out streamIds, out warnings);

string rutaArchivo = frmListClass.ObtenerRutaPDF(bytes);
System.Diagnostics.Process.Start(rutaArchivo);


void AgregarEncabezado(object sender, SubreportProcessingEventArgs e)
    {
        string Parametros = "1, 1, NULL, 1";            
        string cadenaConexion = "Data Source=SRVDESARROLLO7\\BASCS; Initial Catalog=bascsreport ;User Id=sa; Password=sa";
        string cadenaComandoSQL = frmListClass.SeteosSQL + frmListClass.SP_Encabezado + " " + Parametros;

        SqlConnection ConexionSQL = new SqlConnection(cadenaConexion);
        ConexionSQL.Open();
        SqlCommand ComandoSQL = new SqlCommand(cadenaComandoSQL, ConexionSQL);
        ComandoSQL.CommandType = CommandType.Text;
        ComandoSQL.Parameters.AddWithValue("@monoemp, @codempusu, @tituloinf, @whereemp", Parametros);
        SqlDataAdapter da = new SqlDataAdapter();
        da.SelectCommand = ComandoSQL;
        DataSet dsEncabezado = new DataSet();
        da.Fill(dsEncabezado, Parametros);
        ConexionSQL.Close();

        ReportDataSource dataSourceEncabezado = new ReportDataSource("XXX_SP_REPORTING_PARAMETROS_EMP", dsEncabezado.Tables[0]);
        e.DataSources.Add(dataSourceEncabezado);

    }

我需要能够将子报表(标题)传递给主报表,因为在其中我有在几乎所有报表中重复的标题中显示的参数。子报表在另一个项目中,这可能是问题吗?

SubreportProcessingEventHandler 可以定义不明确吗?

请我需要帮助!!

标签: c#rdlcsubreport

解决方案


推荐阅读