none
Llamar una función para cargar un Crystal Report RRS feed

  • Pregunta

  • Hola Amigos!!!.

    Tengo una duda, estoy generando reportes a partir de Crystal reports, entonces dentro de un WebForm coloco un Visor de Crystal Reports, y en el LOAD del WF llamo a la siguiente función

    public void Report() { CrystalReportViewer1.Visible = true; Clases.Medio tk = new Clases.Medio();

    //Medio es la instancia de una clase ReportDocument reportDoc = new ReportDocument(); reportDoc.Load(Server.MapPath("RptSistemasaParame.rpt")); reportDoc.SetDatabaseLogon(tk.usuario, tk.pass, tk.Server, tk.BD); reportDoc.SetParameterValue("MunicipioParameter", ddlMunicipio.Text); CrystalReportViewer1.ReportSource = reportDoc; }

    Ahora para cada reporte tendría que crear una página aspx para llamar el reporte que deseo, pero lo que quiero hacer es utilizar

    un único Visor de Crystal y crear varias funciones para llamar a mis reportes, es posible esto?

    Espero me entiendan y me puedan colaborar.

    Muchas gracias.



    David Aguirre

    miércoles, 10 de octubre de 2012 22:46

Todas las respuestas

  • Hola,

    No es necesario crear una página para cada reporte, como vez en esta linea:

    reportDoc.Load(Server.MapPath("RptSistemasaParame.rpt"));

    Indicas el nombre del reporte, lo que tienes que hacer es que ese nombre sea dinámico; es decir, que cuando llames la página envíes un parámetro con el nombre del reporte (Puede ser en una variable de sesión o por QueryString).

    Sería algo como:

    string NombreReporte = ParametroQueRecibo

    reportDoc.Load(Server.MapPath(NombreReporte));



    Un saludo, Cristian Pérez


    jueves, 11 de octubre de 2012 1:42
  • Muchas gracias por colaborar.

    Tu respuesta me dio unas luces, y lo resolvi de la siguiente manera 

    En la página uno mando un parametro:

    string sName;
                sName = Server.UrlEncode("RptSistemasa.rpt");
                Response.Redirect("Reporteador.aspx?Value=" + sName);

    En la página del visor lo recibo

      private void CargarReporte()
            {
                string sName;
                sName = Request.QueryString["Value"];
                Pruebas.Clases.MedioCampista tk = new Pruebas.Clases.MedioCampista();
                ReportDocument reportDoc = new ReportDocument();
                reportDoc.Load(Server.MapPath(sName));
                reportDoc.SetDatabaseLogon(tk.usuario, tk.pass, tk.Server, tk.BD);
                crViewerGeneral.ReportSource = reportDoc;
            }

    Muchas gracias.


    David Aguirre

    viernes, 12 de octubre de 2012 3:40