Skip to Content
0
Dec 07, 2021 at 08:25 PM

Ruta de acceso al informe no válida CR 2016 y ASPX .NET

310 Views

Buenas tardes, el problema que tengo es que agregué a mi código el método Page_UnLoad para cerrar y hacer un dispose al ReportDocument me marca error de ruta de acceso al informe no válida al cambiar de página


protected void Page_Init(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(strConnStringReport);
                user = builder.UserID;
                password = builder.Password;
                db = builder.InitialCatalog;
                server = builder.DataSource;

                try
                {
                    reportdocument = new ReportDocument();
                    string nombreReporte = string.Empty;
                    if (Request.QueryString["tiporeporte"] == "Produccion")
                    {
                        nombreReporte = "corReporteProduccion.rpt";
                    }
                    else if (Request.QueryString["tiporeporte"] == "Cortos")
                    {
                        nombreReporte = "corReporteProduccion_Cortos.rpt";
                    }
                    else if (Request.QueryString["tiporeporte"] == "Excedentes")
                    {
                        nombreReporte = "corReporteProduccion_Excedentes.rpt";
                    }
                    else if (Request.QueryString["tiporeporte"] == "Recubrimientos")
                    {
                        nombreReporte = "corReporteProduccion_Recubrimientos.rpt";
                    }
                    else if (Request.QueryString["tiporeporte"] == "Copias")
                    {
                        nombreReporte = "corReporteProduccion_Copias.rpt";
                    }
                    else if (Request.QueryString["tiporeporte"] == "Informacion")
                    {
                        nombreReporte = "corReporteProduccion_InfoPedidos.rpt";
                    }
                    else
                    {
                        nombreReporte = "corReporteProduccion.rpt";
                    }

                    reportdocument.Load(Path.Combine(System.Web.HttpContext.Current.Server.MapPath("~/ReportesRSCPCM/Produccion"), nombreReporte));
                    reportdocument.SetDatabaseLogon(user, password, server, db);

                    reportdocument.SetParameterValue("@cust_num", Request.QueryString["cust_num"]);
                    reportdocument.SetParameterValue("@co_num", Request.QueryString["co_num"]);
                    reportdocument.SetParameterValue("@FechaInicial", Request.QueryString["FechaInicial"] + " " + Request.QueryString["HoraInicial"]);
                    reportdocument.SetParameterValue("@FechaFinal", Request.QueryString["FechaFinal"] + " " + Request.QueryString["HoraFinal"]);
                    reportdocument.SetParameterValue("@whse", Request.QueryString["whse"]);

                    crReporteProduccion.ReportSource = reportdocument;
                    Session["crReporteProduccion"] = reportdocument;
                    //reportdocument.Close();
                    //reportdocument.Dispose();
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                }
                catch (Exception x)
                {
                    throw x;
                }
            }
            else
            {
                reportdocument = new ReportDocument();
                reportdocument = (ReportDocument)Session["crReporteProduccion"];
                crReporteProduccion.ReportSource = reportdocument;
            }
        }
        protected void Page_UnLoad(object sender, EventArgs e)
        {
            reportdocument.Close();
            GC.Collect();
            GC.WaitForPendingFinalizers();
        }