none
Cargar Reportviewer por medio de un parametro

    Question

  • Que tal como estan, de nuevo aqui con una consulta sobre reportviewer, les comento tengo un reportviewer el cual cargo con un dataset tipado, y hasta ahi todo va bien se me genera este codigo automaticamente

     Me.DataTableTableAdapter1.Fill(Me.Dataset11.DataTable)
     Me.ReportViewer1.RefreshReport()

    Y hasta ahi funcinoba bien por que me carga los campos que le asigne a mi reporte, el problema me surge cuando solo quiero cargar in dato en especifico, por lo tanto despues de andar investigando logre tener el siguiente codigo

    Using cnn As New MySqlConnection("Database=Pacientes;Data Source=localhost;User Id=root;Password=edmac; Allow Zero Datetime=True")
          cnn.Open()
    
          Dim query As String = "SELECT * FROM Receta WHERE idpaciente = ?id"
    
          Dim cmd As New MySqlCommand(query, cnn)
          cmd.Parameters.AddWithValue("?id", Receta.TextBox1.Text)
          Dim da As New MySqlDataAdapter(cmd)
    
          DataSet1(da = New Dataset1)
          da.Fill(da)
    
        End Using

    El problema es que he visto en varios ejemplos y explicaciones estas dos lineas

     DataSet1(da = New Dataset1)
          da.Fill(da)

    Pero si yo las escribo tal cual no logro que me funcione marcandome error "Generar codigo auxiliar.....", la pregunta seria que es lo que me hace falta para poder cargar mi reporte basandome en un parametro especifico, se los agradeceria mucho

    De antameno gracias, Saludos!!!

    Wednesday, August 03, 2011 11:54 AM

Answers

All replies

  • Buenas Eduardo.

    Cambia este código:

    DataSet1(da = New Dataset1)

    da.Fill(da)

    Por este otro

    DataSet1 = New Dataset1

    da.Fill(DataSet1)

    Así te debería funcionar.

    Un saludo.


    Antonio López Atienza
    Microsoft Community Contributor
    .NET Developer
    Code examples
    http://www.lopezatienza.es
    Wednesday, August 03, 2011 12:41 PM
  • Gracias por la ayuda, ya puse el codigo de esta manera que es como no me marca error

     Dataset11 = New Dataset1
          da.Fill(Dataset11)


    Pero me carga el primer registro no me hace el filtrado de acuerdo al parametro.......

    Alguna sugerencia??

    Saludos!!

    Wednesday, August 03, 2011 1:27 PM
  • Buenas Eduardo.

    ¿Has comprobado en depuración si el Dataset1 contiene sólo el primer registro o todos?, para descartar que sea un fallo de la consulta.

    Comprueba también si tu ReportViewer está de alguna manera mostrando los registros agrupados, lo que hace que veas el primer registro pero realmente haya más si vas pasando páginas.

    Un saludo.


    Antonio López Atienza
    Microsoft Community Contributor
    .NET Developer
    Code examples
    http://www.lopezatienza.es
    Wednesday, August 03, 2011 2:10 PM
  • Solo me muestra el primero, y diseñe otro reporte donde pongo mis datos en columna y ahi con el mismo codigo me muestra tods, es decir no me hace el filtrado de acuerdo al id que necesito

    .............

    Saludos!!

    Wednesday, August 03, 2011 2:45 PM
  • Buenas Eduardo.

    Cambia las "?" por "@", es decir:

    ..

    Dim query As String = "SELECT * FROM Receta WHERE idpaciente = @id"

    ..

    cmd.Parameters.AddWithValue("@id", Receta.TextBox1.Text)

    ..

    Las "?" se utilizan como marcadores de posición en objetos OleDbDataAdapter y OdbcDataAdapter.

    http://msdn.microsoft.com/es-es/library/bbw6zyha.aspx

    Un saludo.


    Antonio López Atienza
    Microsoft Community Contributor
    .NET Developer
    Code examples
    http://www.lopezatienza.es
    Wednesday, August 03, 2011 3:18 PM
  • Ya cambie y sigue igual, pero al quitar esta linea

    Me.DataTableTableAdapter1.Fill(Me.Dataset11.DataTable)


    Deja de cargar datos, me hace pensar que todo el demas codigo no esta haciendo nada...... la linea anterior es la que sigue dominando para cargar el reporte

    Saludos!!!

     

    Wednesday, August 03, 2011 3:26 PM
  • Que tal investigando encontre que me faltaba cargar mi consulta al reporte entonces tengo estas lineas

    ReportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local ReportViewer1.LocalReport.ReportPath = "C:Reporte\Report1.rdlc"
    ReportViewer1.LocalReport.DataSources.Clear()
    ReportViewer1.LocalReport.DataSources.Add(New Microsoft.Reporting.WinForms.ReportDataSource("Dataset11", Dataset11))
    ReportViewer1.DocumentMapCollapsed = True


    Pero ahora me carga todo mi reporte completamente en blanco ya ni los cabezados me muestra, como si mi reporte no existiera...

    Tendran alguna sugerencias de favor, gracias

    Saludos!!

    Wednesday, August 03, 2011 6:33 PM
  • Buenas Eduardo.

    Asigna el DataSet al ReportViewer únicamente de esta manera:

    ReportViewer1.SetDataSource(DataSet11)

    Un saludo.


    Antonio López Atienza
    Microsoft Community Contributor
    .NET Developer
    Code examples
    http://www.lopezatienza.es
    Wednesday, August 03, 2011 8:47 PM
  • Buenas Eduardo.

    Efectivamente si eliminas esa línea no se cargará nada, ya que el DataAdapter es el encargado mediante el método Fill de obtener los registros del origen de datos y cargarlos en el DataSet.

    Cambia la query a:

    Dim query As String = "SELECT * FROM Receta WHERE idpaciente = " & Receta.TextBox1.Text

    Únicamente para comprobar si no está trabajando bien con el parámetro.

    Un saludo.

     

     

     


    Antonio López Atienza
    Microsoft Community Contributor
    .NET Developer
    Code examples
    http://www.lopezatienza.es
    Thursday, August 04, 2011 6:57 AM