none
Ayuda urgente con report viewer y dataset RRS feed

  • Pregunta

  • Estoy creando un reporte con reportviewer, el problema que tengo es que el reporte solo me muestra los datos que tenia en la tabla al momento de crear el dataset y por mas que lo intento no logro hacer que estos datos se actualizen y muestren los datos realizados en dicha tabla.

    queria saber si existe alguna forma de que el dataset se actualize y tome los valores de la tabla cada vez que se genere un informe y asi contenga todos los datos que estan en la tabla.

    cada vez que meto el reportviewer en un formulario este inserta de manera automatica el siguiente codigo:

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

            Me.vetemporalTableAdapter.Fill(Me.sixprovDataSet.vetemporal)
            Me.ReportViewer1.RefreshReport()
        End Sub

    yo inserte esta linea para ver si actualizaba pero no funciono.

            Me.vetemporalTableAdapter.Update(Me.sixprovDataSet.vetemporal)

    bueno espero que puedan ayudarme con mi problema


    pd:estoy usando Visualbasic.net y access 2007.

     

    miércoles, 31 de marzo de 2010 21:14

Todas las respuestas

  • hola

    pero en ese codigo estan faltando algunas lineas

    mira este link

    http://social.msdn.microsoft.com/Forums/es-ES/repdeves/thread/2d41134a-252c-438a-94aa-7eb7797f57e7

    veras que alli ademas de asignar el

    ReportViewer1.LocalReport.ReportPath para indicar que reporte se visualziara

    usa el

    ReportViewer1.LocalReport.DataSources.Add(New Microsoft.Reporting.WinForms.ReportDataSource("PruebaDs_PruebaDT", Ds.Tables(0)))

    para indicar el origen de datos que suara el reporte

    o sea en tu codigo estas cargando el dataset, peor no veo donde se lo pasas al reporte

     

    por otro lado mas alla de esto, con respecto al tema de refresh, es que para que lo haga debes lanzar el reporte nuevamente, o sea el reporte tiene dos paso bien claros, cargas el dataset, lnazas el reporte de esos datos

    si quieres actualziarlo, cierra e reporte y ejecuta el proceso nuevamente, vuelve a cargar el dataset y nuevamente visualiza el reporte, como fill() del dataset se ejecutto nuevamente este habra tomado la nueva informacion

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 1 de abril de 2010 4:03
  • si quieres actualziarlo, cierra e reporte y ejecuta el proceso nuevamente, vuelve a cargar el dataset y nuevamente visualiza el reporte, como fill() del dataset se ejecutto nuevamente este habra tomado la nueva informacion

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Agradezco por su atencion
    pero no entend lo que me quisiste decir ya que apenas estoy comenzando en esto del .net

    me gustaria que me explicara como puedo hacer este proceso que cite anteriormente.
    jueves, 1 de abril de 2010 20:32
  • Hola NANDHOZ

    Creo que la solución es bien sencilla: Simplemente cada vez que realice cualquier cambio al datatable vetemporal, Debe  invocar seguidamente la instrucción: Me.ReportViewer1.RefreshReport()

    Ejemplo:

     Me.vetemporalTableAdapter.Update(Me.sixprovDataSet.vetemporal)

     Me.ReportViewer1.RefreshReport()

    Y eso es todo!

    Otra cosa recuerda que cada ves que compile, verifica que no se este sobre escribiendo la base de datos!

    Si esto fue util, por favor calificame como respuesta


    Developer .NET
    viernes, 2 de abril de 2010 2:10
  • hola

    la repuestas que di apunta a dos temas, primero la forma en como estas asignando la info al reportviewer, creo que le falta algo, mira este link

    http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/f845d74d-3fbc-4601-bccb-3bb350099d32

    alli veras que, luego de cargar el dataset o sea hacer el Fill() realzia una serie de paso, entre ellos el de crear un ReportDataSource

    sqlDA.Fill(myDS, "Employees" )

    '* Name property of data set (first parameter below) MUST be the same name
    '* as the data set used at design time. While this name can be changed in the
    '* report xml specification it must be manually changed everywhere it occurs.
    '* Choose a meaningful name when the dataset is created.
    '* Note here that the dataset table can be established as a ReportDataSource
    Dim myRDS As New
    _
    Microsoft.Reporting.WinForms.ReportDataSource(
    "NorthwindDataSet_up_Fill_Employee_Combo" , myDS.Tables( "Employees"
    ))

    '* Clear out default datasource and add new one (with same structure).
    ReportViewer1.LocalReport.DataSources.Clear()
    ReportViewer1.LocalReport.DataSources.Add(myRDS)

    '* Show report automatically at form load
    Me
    .ReportViewer1.RefreshReport()

    lo que no vi es que en tu codigo hicieras esto mismo

     

    - la otra parte era como actualizar los datos, bien, si ejecutas estas linea para cargar el reporte

    Me.vetemporalTableAdapter.Fill(Me.sixprovDataSet.vetemporal)
    Me.ReportViewer1.RefreshReport()

    para refrescarlo lo que deberias hacer es cerrar el que estas visualziando y volver a abrirlo, o sea vover a ejecutar las linea de arriba, ya que el proceso requiere que ejecutes el Fill() de tableadapter para que cargue (refresque) nuevamente la info en eld ataset que usas de origen de datos en el reprote

    o sea el refresco en realidad es lanzar nuevamente elr eporte para que se actualice

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 2 de abril de 2010 4:03
  • Estoy creando un reporte con reportviewer, el problema que tengo es que el reporte solo me muestra los datos que tenia en la tabla al momento de crear el dataset y por mas que lo intento no logro hacer que estos datos se actualizen y muestren los datos realizados en dicha tabla.

    queria saber si existe alguna forma de que el dataset se actualize y tome los valores de la tabla cada vez que se genere un informe y asi contenga todos los datos que estan en la tabla.

    cada vez que meto el reportviewer en un formulario este inserta de manera automatica el siguiente codigo:

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

            Me.vetemporalTableAdapter.Fill(Me.sixprovDataSet.vetemporal)
            Me.ReportViewer1.RefreshReport()
        End Sub

    yo inserte esta linea para ver si actualizaba pero no funciono.

            Me.vetemporalTableAdapter.Update(Me.sixprovDataSet.vetemporal)

    bueno espero que puedan ayudarme con mi problema


    pd:estoy usando Visualbasic.net y access 2007.

     


    o0la

     

    mi pro0blema es exactamente el mismo0 y ya intente lo0 que dicen pero0 no0 actualiza

    mi dataset.

    po0rfavo0r me puedes decir co0mo0 so0lucio0naste el pro0blema.

    atte. claudia

    Gracias!!!

    lunes, 28 de junio de 2010 17:16
  • Es importante que tomen en cuenta que el refresh en algunas ocasiones no funciona cuando usan Ajax y el control que desencadena el refresh() esta dentro de un update panel y el reportviewer no.

     

     


    miércoles, 20 de julio de 2011 16:57
  • Tanto para que ninguno se anime a dar la respuesta, mejor deberian de trabajar de de confundidores¡¡, par de brutos¡¡,.

    Saludos

    sábado, 1 de octubre de 2011 3:40