none
Objeto Report Viewer -- No se refresca el reporte...

    Question

  • Hola a tod@s.

    No consigo hacer que un reporte se actualice en una aplicación de VB.NET y SQL Server 2012 LocalDB

    Les cuento:

    Tengo un objeto ReportViewer acoplado en un formulario. Creé un origen de datos y diseñé un nuevo informe.

    La cadena de conexión del origen de datos es la siguiente:

    db_gescontact5ConnectionString = "Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\db_gescontact5.mdf;Integrated Security=True;Connect Timeout=30"

    La bbdd que es un fichero de Sql Server 2012 y que gestiono mediante localDB se llama db_gescontact5 y se encuentra en la carpeta del proyecto.

    El caso es que el reporte se muestra perfectamente pero cuando hago algún cambio (edito algún registro) los datos no se refrescan...

    Para cargar el reporte tengo un formulario llamado frmInformeGeneral.frm y en el evento load tengo los siguientes métodos:

     Private Sub frmInformeGeneral_Load(sender As Object, e As EventArgs) Handles MyBase.Load

            Me.datosTableAdapter.Fill(Me.Db_gescontact5DataSet.datos)
            ReportViewer1.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout)
            ReportViewer1.ZoomMode = Microsoft.Reporting.WinForms.ZoomMode.Percent
            ReportViewer1.ZoomPercent = 75
            Me.ReportViewer1.RefreshReport()

    End Sub

    Como ven en la última línea utilizo el método RefreshReport pero no se actualiza..


    El caso es que si cierro el reporte, edito un registro de la bbdd y vuelvo a abrir el reporte no se reflejan los cambios hasta que cierre por completo la aplicación y la vuelva a abrir...

    En el formulario que tiene acoplado el reporte, se crearon automáticamente los siguientes objetos:

    Db_gescontact5Dataset
    Dbgescontact5DataSetBindingSource
    datosTableAdapter
    datosBindingSource

    ¿Alguna idea? Es que empecé ayer con los reportes (conocía los de vb6) pero en .NET no había trabajado. Utilizo VS2012

    Gracias de antemano por vuestra ayuda.
    Un saludo! :)

    Wednesday, August 07, 2013 2:08 PM

Answers

  • Olviden la consulta.. ya di con la solución...

    Aunque tengo el Visual Studio 2012 y el VS2013 Preview instalados, por alguna extraña razón resulta que el runtime necesario para ver los informes no estaba actualizado.

    Me descargué el MICROSOFT REPORT VIEWER 2012 RUNTIME y cuando volví a probar el programa funcionó a la perfección ¬¬ 48 horas perdidas en esto!

    En fin, que dejo la solución por aquí por si a alguno le ocurre lo mismo en un futuro..

    Muchas gracias a Jose Barba por intentar ayudar y orientar a este novato en reportes! :P

    Saludos !!


    • Marked as answer by OMIXAM Thursday, August 08, 2013 11:18 AM
    • Edited by OMIXAM Thursday, August 08, 2013 11:20 AM
    Thursday, August 08, 2013 11:18 AM

All replies

  • Hola

    debería ser así la línea donde asignas el Refresh()

    Si es un Reporte Local:

    ReportViewer1.LocalReport.Refresh()

    Si consultas al servidor de informes:

    ReportViewer1.ServerReport.Refresh()


    Si se solucionó tu consulta no olvides marcar la respuesta. Saludos

    Wednesday, August 07, 2013 2:27 PM
  • Hola

    debería ser así la línea donde asignas el Refresh()

    Si es un Reporte Local:

    ReportViewer1.LocalReport.Refresh()

    Si consultas al servidor de informes:

    ReportViewer1.ServerReport.Refresh()


    Si se solucionó tu consulta no olvides marcar la respuesta. Saludos

    Hola José Barba y gracias por responderme :)

    No me funcióno. He modificado el código del form load dejándolo así:

     Private Sub frmInformeGeneral_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            'TODO: esta línea de código carga datos en la tabla 'Db_gescontact5DataSet.datos' Puede moverla o quitarla según sea necesario.

           Me.datosTableAdapter.Fill(Me.Db_gescontact5DataSet.datos)
            ReportViewer1.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout)
            ReportViewer1.ZoomMode = Microsoft.Reporting.WinForms.ZoomMode.Percent
            ReportViewer1.ZoomPercent = 75
            ReportViewer1.LocalReport.Refresh()

       End Sub

    Entiendo que es un reporte local porque utilizo una bbdd llamada dbgescontact5.mdf que se encuentra en la carpeta del proyecto y enlazo el reporte mediando un origen de datos que se conecta a esa bbdd y cuya cadena de conexión es: 

    "db_gescontact5ConnectionString = "Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\db_gescontact5.mdf;Integrated Security=True;Connect Timeout=30"

    Utilizo LocalDB  para conectar a mi fichero de base de datos (db_gescontact5.mdf) que es la misma bbdd a la que se conecta el reporte. Cuando creé el reporte el mismo asistente me la copió la base de datos dentro del proyecto.

    El caso es que he modificado el código pero sigue igual :(

    Alguna idea?

    Saludos.

    Wednesday, August 07, 2013 2:44 PM
  • Puede ser el caso que si modificas la base de datos necesites primero actualizar los campos de ese dataset eso es muy recurrente con Reporting Services sucede que se modifica una columna o algún dato de la tabla y este no se ve reflejado hasta que se actualicen los campos

    Si se solucionó tu consulta no olvides marcar la respuesta. Saludos

    Wednesday, August 07, 2013 3:04 PM
  • Puede ser el caso que si modificas la base de datos necesites primero actualizar los campos de ese dataset eso es muy recurrente con Reporting Services sucede que se modifica una columna o algún dato de la tabla y este no se ve reflejado hasta que se actualicen los campos

    Si se solucionó tu consulta no olvides marcar la respuesta. Saludos

    ¿Y cómo se supone que hago eso?

    Porque cuando edito el formulario de datos (que lo hago a código) y pulso el botón de grabar el dataset se actualiza porque al guardar los cambios, abro un formulario para ver los datos y salen actualizados en el formulario de ver datos. Es el dataset al cual se conecta el reporte el que no se está actualizando por mucho que guarde los cambios realizados en la bbdd.

    He intentado actualizar el dataset al que se conecta el reporte pero no sé como hacerlo... El reporte utiliza como origen de datos un objeto llamado "datosBindingSource" pero no encuentro ningún método que sea "refresh" ó "update" para actualizarlo.

    Algo que si he notado es que cuando abro la aplicación y abro el reporte por primera vez tarda unos dos segundos en cargar los datos y abrirse el reporte. Al cerrarlo y volverlo a abrir por segunda vez,  lo hace en menos de un segundo, es decir, al cerrarse y volverse a abrir no vuelve a cargar los datos del dataset por lo que creo que pueda estar ahí el problema..

    He subido 3 capturas de pantalla por si sirven de ayuda..

    Captura 1

    Captura 2

    Captura 3
    • Edited by OMIXAM Wednesday, August 07, 2013 3:33 PM
    Wednesday, August 07, 2013 3:15 PM
  • Esa demora es normal siempre sucede eso con el primer uso.

    Ahora lo que te comentaba acerca de actualizar los datos en el Reporting Services al abrir el dataset hay una opción que dice Actualizar Campos. No estoy seguro si tengas la misma facilidad en todo caso alguien más podrá ayudarte a encontrar una solución a tu inconveniente

    Saludos


    Si se solucionó tu consulta no olvides marcar la respuesta. Saludos

    Wednesday, August 07, 2013 3:49 PM
  • Muchas gracias Jose Barba aunque no consigo que esto funcione :(

    Voy a esperar a ver si alguien más responde y se le ocurre algo porque es que soy nuevo en esto y no comprendo lo que quieres decirme..

    Gracias de todas formas x intentar ayudarme.

    Un saludo!

    Wednesday, August 07, 2013 4:22 PM
  • ¿A nadie se le ocurre algo? :(

    He probado de todo y sigue sin refrescarse el reporte ¬¬


    • Edited by OMIXAM Thursday, August 08, 2013 8:08 AM asdf
    Wednesday, August 07, 2013 5:29 PM
  • ¿Nadie sabe o es que estoy preguntando en el foro equivocado? :(

    Sólo necesito eso ya que el 95% del trabajo está hecho. El reporte está hecho y funciona peroooo no se actualiza..

    Si alguien cree que debería utilizar otro foro díganmelo por favor para no estar molestando...

    Gracias de antemano.

    Thursday, August 08, 2013 8:15 AM
  • Olviden la consulta.. ya di con la solución...

    Aunque tengo el Visual Studio 2012 y el VS2013 Preview instalados, por alguna extraña razón resulta que el runtime necesario para ver los informes no estaba actualizado.

    Me descargué el MICROSOFT REPORT VIEWER 2012 RUNTIME y cuando volví a probar el programa funcionó a la perfección ¬¬ 48 horas perdidas en esto!

    En fin, que dejo la solución por aquí por si a alguno le ocurre lo mismo en un futuro..

    Muchas gracias a Jose Barba por intentar ayudar y orientar a este novato en reportes! :P

    Saludos !!


    • Marked as answer by OMIXAM Thursday, August 08, 2013 11:18 AM
    • Edited by OMIXAM Thursday, August 08, 2013 11:20 AM
    Thursday, August 08, 2013 11:18 AM
  • Olviden la consulta.. ya di con la solución...

    Aunque tengo el Visual Studio 2012 y el VS2013 Preview instalados, por alguna extraña razón resulta que el runtime necesario para ver los informes no estaba actualizado.

    Me descargué el MICROSOFT REPORT VIEWER 2012 RUNTIME y cuando volví a probar el programa funcionó a la perfección ¬¬ 48 horas perdidas en esto!

    En fin, que dejo la solución por aquí por si a alguno le ocurre lo mismo en un futuro..

    Muchas gracias a Jose Barba por intentar ayudar y orientar a este novato en reportes! :P

    Saludos !!


    vos sabes que instale el runtime pero aun asi no me actualiza los reportes!.
    Sunday, March 02, 2014 11:25 PM