none
Mostrar un reporte RDLC en proyectos diferentes RRS feed

  • Pregunta

  • Estimados amigos, estoy tratando de mostrar un reporte rdlc, pero por lo que veo me exige que lo direccione a una carpeta donde está el archivo de reporte rdlc. Pero cómo le hago, tengo que llevar el archivo rdlc en el directorio bin de mi pc para probar ? No hay otra forma donde no tenga que copiar el archivo manualmente...

    la cuestión es la siguiente, tengo un proyecto de Formularios, y dentro he creado el reporte en una subcarpeta. Y tengo otro proyecto llamado Util, donde he creado una funcion "MostrarReporte" para mostrar cualquier reporte:

      public bool MostrarReporte(ReporteEstructura pReporte, string NombreReporte)
            {
                bool retorno = true;
                try
                {
                                           
                    //He intentado con estas dos lineas y genera error.
                    //VReporte.LocalReport.ReportPath = Path.Combine(Application.StartupPath, NombreReporte);
                    //VReporte.LocalReport.ReportEmbeddedResource = Path.Combine(Application.StartupPath, NombreReporte);
                    
                  
    		//Acá da error. Pero es porque no le asigno la ruta correctamente donde está el rdlc.
                    for (int i = 0; i < pReporte.iListaParametro.Count; i++)
                    { this.VReporte.LocalReport.SetParameters(pReporte.iListaParametro.ElementAt(i)); }
                    
    
                    this.VReporte.RefreshReport();
                    this.Show();
                }
                catch { retorno = false; }
                return retorno;
            }

    Error: No se ha especificado el origen de la definición de informe

    lunes, 21 de abril de 2014 21:33

Respuestas

  • tienes dos opciones:

    -defines en el app.config en el <AppSettings> una key donde especifiques la ruta donde estaran los reportes y usas esta para armar el path

    - pone el rdlc para que se copie siempre cuando compilas junto al .exe imagen

    entonces si podrias usar el Application.StartupPath, ya que el VS al compilar copiar el rdlc automaticamente

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    lunes, 21 de abril de 2014 22:29
  • Hola:

     Para nada necesitas copiar nada en ningún directorio, bastara con que ordenes tus reportes en un proyecto del tipo Librería de clases dentro insertar los Forms y los RDLCS que necesites, dentro del Form el ReportViewer claro esta, al momento de que tu relaciones el RDLC al ReportViewer automáticamente en el Designer se crea esta linea de código:

     _reportViewer1.LocalReport.ReportEmbeddedResource = "NombreProyectoLibreriaDeClases.Report1.rdlc";

    Esa linea establece el Path de ubicación de tu RDLC sin mas ni mas y lo mejor que se crea sola, después bastara que agregues la referencia de tu proyecto de librería de clases a tu proyecto principal y listo, a consumir los reportes...

    Por si acaso en este articulo muestro como crear un RDLC:

    ReportViewer y Rdlc, ejemplo Factura (datos fijos)


    Saludos desde Monterrey, Nuevo León, México!!!

    lunes, 21 de abril de 2014 22:43

Todas las respuestas

  • Hol,

    Mira esta pagina  

    Ejemplo de un reporte Visual Studio (RDLC)


    AngelaMar Bogotá, Colombia


    lunes, 21 de abril de 2014 21:55
  • tienes dos opciones:

    -defines en el app.config en el <AppSettings> una key donde especifiques la ruta donde estaran los reportes y usas esta para armar el path

    - pone el rdlc para que se copie siempre cuando compilas junto al .exe imagen

    entonces si podrias usar el Application.StartupPath, ya que el VS al compilar copiar el rdlc automaticamente

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    lunes, 21 de abril de 2014 22:29
  • Hola:

     Para nada necesitas copiar nada en ningún directorio, bastara con que ordenes tus reportes en un proyecto del tipo Librería de clases dentro insertar los Forms y los RDLCS que necesites, dentro del Form el ReportViewer claro esta, al momento de que tu relaciones el RDLC al ReportViewer automáticamente en el Designer se crea esta linea de código:

     _reportViewer1.LocalReport.ReportEmbeddedResource = "NombreProyectoLibreriaDeClases.Report1.rdlc";

    Esa linea establece el Path de ubicación de tu RDLC sin mas ni mas y lo mejor que se crea sola, después bastara que agregues la referencia de tu proyecto de librería de clases a tu proyecto principal y listo, a consumir los reportes...

    Por si acaso en este articulo muestro como crear un RDLC:

    ReportViewer y Rdlc, ejemplo Factura (datos fijos)


    Saludos desde Monterrey, Nuevo León, México!!!

    lunes, 21 de abril de 2014 22:43
  • Muchas gracias a los tres por sus aportes, aunque se me olvidó aclarar que mi aplicacion es escritorio, no Web. Y por lo que acabo de leer los reportes rdlc son recomendados para Web y los rdl usando reporting service. Pero al final Luis Escobar muestra un ejemplo con rdlc.

    Muchas gracias luego les comento mi solución...

    martes, 22 de abril de 2014 13:40
  • Hola Bernardo,

    Espero estés bien, ¿Puedes compartir tu solución con la comunidad? Esperamos tus comentarios al respecto. Por el momento marcaremos la respuesta de Luis como posible respuesta a tu consulta, sin embargo tu puedes marcar la respuesta que te ayudo a resolver tu consulta.

    Saludos,

    Miguel      

    MSDN/TechNet Soporte Comunidades

    Por favor, recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema.
    Es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    jueves, 24 de abril de 2014 15:33
    Moderador