none
ReportViewer , como mostrar informe desde un WCF RRS feed

  • Pregunta

  • Hola!

      Tengo un servicio web (WCF) mediante el cual una aplicacion realiza altas, bajas, consultas, moficiaciones a una tabla de una base de datos.

    Ahora bien, no soy capaz de crear un informe con ReportViewer en vs2013 community.  Hago todos los pasos como veo en los tutoriales pero a la hora de ejecutar la aplicación me muestra el informe vacio.

    intuyo que hay que dar alguna orden para cargar los datos antes de llamar al informe, pero no se que puede ser.

    Algun ejemplo ?. idea?.

    gracias!
    jueves, 27 de noviembre de 2014 12:27

Respuestas

Todas las respuestas

  • Hola Carmelo.

    Lo primero que tienes que hacer es conectarte a la base de datos con los data sources.

    Esta formas es la mas simple.

    La otra opción es que tu consumas los datos que expone un servicio esto es un poco mas complicado.

    Pero si tu tienes acceso a los datos lo mas simple es que los data sourse los cargues con Procedimientos Almacenados o con consultas.

    Saludos

    Aldo Flores Reyes

    @alduar

    http://alduar.blogspot.com


    jueves, 27 de noviembre de 2014 12:37
  • >>Hago todos los pasos como veo en los tutoriales pero a la hora de ejecutar la aplicación me muestra el informe vacio.

    que tutorial ?

    el reporte lo tienes integrado al servicio de reporting service, o es un reporte local (.rdlc) ?

    >>intuyo que hay que dar alguna orden para cargar los datos antes de llamar al informe, pero no se que puede ser.

    el servicio de wcf lo invocas desde codigo .net y lo asignas el ReportSource, porque podrias poner un breakpoint en el codigo para ver si el servicio retornar datos que mostrar en el repote

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 27 de noviembre de 2014 12:46
  • No puedo conectarme a la base de datos porque acceso a la información usando un servicio web WCF

    ==> "La otra opción es que tu consumas los datos que expone un servicio esto es un poco mas complicado."

    Eso es lo que necesito, yo cargo el asistente del ReportViewer, es en modo Local, no conecto con ningún servidor de reporting.   Cuando me pide fuente de los datos (source) le indico de mi proyecto el ServiceWCF al que conectar y me muestra los campos del dataset que hay en dicho servicio

    todo normal, creo.

    Ejecuto aplicación  pero el informe aparece sin información, si fuese una base de datos local como el dataset estaría lleno con los registros me los mostraría.   pero ahora bien, no se como pasar la información del ServicioWeb WCF a algún sitio para que el reportviewer la utilice.

    Para traerme la información yo hago:

    MiServicio.DataSEtTableAdapters.SiembrasTableAdapter ta = new .... etc...

    MiServicio.DatasetSiembra.SiembrasDataTable dt = new .. etc..

    ta.Fill (dt,IdUsuario);

    así tengo un dataTable tipado con la informaci´n,   pero ¿como le indico a reportViewer que ha de tomar esa información para llenar el informe?.

    Gracias!

    jueves, 27 de noviembre de 2014 13:45
  • >>Hago todos los pasos como veo en los tutoriales pero a la hora de ejecutar la aplicación me muestra el informe vacio.

    que tutorial ?

    >> perdón, cuando digo tutorial me refiero a varios videos que veo en youtube acerca de como crear los informes, pero claro, todos lo hacen en una base de datos local, no consumiendo un servicio

    el reporte lo tienes integrado al servicio de reporting service, o es un reporte local (.rdlc) ?

    ===> es un reporte local

    >>intuyo que hay que dar alguna orden para cargar los datos antes de llamar al informe, pero no se que puede ser.

    el servicio de wcf lo invocas desde codigo .net y lo asignas el ReportSource, porque podrias poner un breakpoint en el codigo para ver si el servicio retornar datos que mostrar en el repote

    Si, desde net, pero mi problema es que no se como pasar esa información al reporte, la información la tengo, lo verifico y esta, pero no se como pasarla al reporte.

    ==> gracias por la posible ayuda... estoy atascado en este punto, nunca habia hecho informe desde un servicio web

    jueves, 27 de noviembre de 2014 13:48
  • En el evento del Formulario donde se va a cargar el reporte, una vez que llenas el DataSet (con el método que tu indicaste), debes asignarselo al Reporte de la siguiente form:

    this.reportViewer1.LocalReport.DataSources.Add(dt);

    this.reportViewer1.RefreshReport();



    Thks, Eduardo Velez.

    jueves, 27 de noviembre de 2014 13:57
  • En el evento del Formulario donde se va a cargar el reporte, una vez que llenas el DataSet (con el método que tu indicaste), debes asignarselo al Reporte de la siguiente form:

    this.reportViewer1.LocalReport.DataSources.Add(dt);

    this.reportViewer1.RefreshReport();

    Me da error  , no permite compila, te pongo algo de código por si te sirve de ayuda a detectar mi problema:

    ==> con el siguiente codigo instancio el servicio, creo un objeto dt que es el DataTable y llamando al servicio lleno el dataTable.

                ServiceSiembras.SiembrasClient service = new ServiceSiembras.SiembrasClient();
                ServiceSiembras.DataSetSiembras.SiembrasDataTable dt = new ServiceSiembras.DataSetSiembras.SiembrasDataTable();
                service.ListarSiembras(2, true, true, ref dt);

    ==> Luego cuando voy a agregar el dataTable como indicas, son tipos distinto: El compilador espera un tipoDatasource, y yo le estoy pasando segun indicas un dataTable...

    reportViewer1.LocalReport.DataSources.Add(dt);
                this.reportViewer1.RefreshReport();

    jueves, 27 de noviembre de 2014 14:51
  • Hola Carmelo:

    Te dejo dos artículos, el primero trata sobre como diseñar un LocalReport y como enlazarlo a un fuente de datos del tipo List(Of T):

    ReportViewer y Rdlc, ejemplo Factura (datos fijos)

     el segundo muestra como enlazar el reporte a una lista genérica cargada con datos provenientes de una base de datos:

    ReportViewer y Rdlc, ejemplo Factura (Base de datos)

    Espero te sean de utilidad.


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

    jueves, 27 de noviembre de 2014 17:02
  • Gracias!... cargar un reporte cuando la base de datos está en local o accesible por una conexión sqlServer / storeproc no tengo problemas....  Lo que no acierto a comprender es como hacer un reporte cuando la fuente de los datos está en un servicio web.

    Creo el reporte, todo bien, pero no consigo que aprezcan datos de las tablas...

    jueves, 27 de noviembre de 2014 17:54