none
ejemplo report viewer con filtro rango de fechas vb 2010 y mysql RRS feed

  • Pregunta

  • hola estoy intentando hacer un reporte me muestre la informacion por rango de fechas cuando lo selecciono desde los controles datetimepicker
    como se puede pasar esa informacion de los controles al dataset y que el reporte solo me muestre el rango de fechas seleccionado ?

    alguien ha echo algo parecido o si tiene un ejemplo, si me lo puede pasar por favor estoy barado con esto
     

    lo unico que se me ocurre es algo como esto :

    Imports MySql.Data.MySqlClient
    Imports Microsoft.Reporting.WinForms

    Public Class Form2

        Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
           
            Dim cn As New MySqlConnection("Server=192.168.1.10;Database=estudio_modalidad; uid=root;pwd=root;")
            Dim Ds As New DataSet
            Dim Tabla As New DataTable
            Dim Da As New MySqlDataAdapter("select * from estudio where study_date = 'fecha_inicio'", cn)
            Dim fechainicio As New ReportParameter("fechainicio", Form1.DateTimePicker1.Value.Date)
            Me.estudioTableAdapter.Fill(Me.Ds.tabla, )
            Me.ReportViewer1.RefreshReport()


        End Sub
    End Class

    martes, 24 de abril de 2012 19:35

Respuestas

  • La pregunta es?

    Has confirmado tu consulta SQL?... si tu consulta cumple con lo que quieres entonces podemos ayudarte en .Net, pero no explicas bien donde esta tu problema.

    Tambien podria ser:

    Dim cmd as New MySqlCommand("select * from estudio where study_date  BETWEEN  @fecha_inicio and @fechaX", cn);
    cmd.Parameter.AddWithValue("@fecha_inicio", DateTimePicker1.Value)
    cmd.Parameter.AddWithValue("@fechaX", DateTimePicker2.Value)
    Dim da As New MySqlDataAdapter(cmd)

    Saludos.



    • Editado By AlaN miércoles, 25 de abril de 2012 22:30
    • Marcado como respuesta myovani viernes, 4 de mayo de 2012 14:36
    miércoles, 25 de abril de 2012 22:28

Todas las respuestas

  • Hola.

    Para eso debes pasarle los parametros a la consulta SQL.

    Porque no le pasa los parametros a la cadena por medio a un Command?

    Dim cmd as New MySqlCommand("select * from estudio where study_date >= @fecha_inicio and fechaX <= @fechaX", cn);
    cmd.Parameter.AddWithValue("@fecha_inicio", DateTimePicker1.Value)
    cmd.Parameter.AddWithValue("@fechaX", DateTimePicker2.Value)
    Dim da As New MySqlDataAdapter(cmd)

    De ahi en adelante puede manejar los resultados a tu gusto.

    Saludos.


    • Editado By AlaN miércoles, 25 de abril de 2012 13:05
    miércoles, 25 de abril de 2012 13:04
  • NADA TODAVIA  alguien tiene alguna otra idea
    miércoles, 25 de abril de 2012 22:05
  • La pregunta es?

    Has confirmado tu consulta SQL?... si tu consulta cumple con lo que quieres entonces podemos ayudarte en .Net, pero no explicas bien donde esta tu problema.

    Tambien podria ser:

    Dim cmd as New MySqlCommand("select * from estudio where study_date  BETWEEN  @fecha_inicio and @fechaX", cn);
    cmd.Parameter.AddWithValue("@fecha_inicio", DateTimePicker1.Value)
    cmd.Parameter.AddWithValue("@fechaX", DateTimePicker2.Value)
    Dim da As New MySqlDataAdapter(cmd)

    Saludos.



    • Editado By AlaN miércoles, 25 de abril de 2012 22:30
    • Marcado como respuesta myovani viernes, 4 de mayo de 2012 14:36
    miércoles, 25 de abril de 2012 22:28
  • Yo estoy con el compañero sí le pasas los dos parámetros a la SQL te valdría para filtrar los datos del Dataset.

    Dim cmd as New MySqlCommand("select * from estudio where study_date >= @fecha_inicio and study_date <= @fecha_fin", cn);

    Otra opción con las fechas es usar el BETWEEN

    Dim cmd as New MySqlCommand("select * from estudio where study_date BETWEEN @fecha_inicio and @fecha_fin", cn);

    Otra opción (no tan correcta) sería hacer un DataView (si el dataSet te trae todos los datos con una SELECT * FROM TABLA) podrías declarar un dataview y filtrarlo entre las dos fechas.

      Dim view As DataView = New DataView
        With view
            .Table = DataSet
            .RowFilter = "study_date BETWEEN @fecha_inicio and @fecha_fin"
            .Sort = "ORDENACION"
        End With

    miércoles, 25 de abril de 2012 22:28
  • Miren lo que quiero hacer es un reporte con un filtro por rango de fechas en ese caso los controles datetimepicker
    como se puede pasar esa informacion de los controles al dataset

    l

    lo que he tratado de cambiar el datasource del reportviewer no se si esta bien,  ayuda porfavor estoy barado.
    ahora asi solo me sale el reporte con los encabezados de cada columna pero no trae los datos.

     Dim cmd As New MySqlCommand("select * from estudio where study_date BETWEEN @fecha_inicio and @fecha_fin", cn)
            cmd.Parameters.AddWithValue("@fecha_inicio", Form1.DateTimePicker1.Value)
            cmd.Parameters.AddWithValue("@fecha_fin", Form1.DateTimePicker2.Value)
            Dim da As New MySqlDataAdapter(cmd)
            Dim ds As New DataSet
            da.Fill(ds)

            estudioBindingSource.DataSource = ds.Tables
            ReportViewer1.LocalReport.DataSources.Add(New ReportDataSource("dasatet1_estudio", (ds.Tables)))

            Me.estudioTableAdapter.Fill(DataSet1.estudio)
            Me.ReportViewer1.RefreshReport()


    jueves, 26 de abril de 2012 18:37
  • Hola.

    Mejor pasa la consulta filtrada ya al DataSet.

    Saludos.

    jueves, 26 de abril de 2012 22:12