Crystal Report - Paso de paràmetros

 
Vista:

Paso de paràmetros

Publicado por Josep (5 intervenciones) el 17/05/2017 14:30:47
Buenos días.
Llevo unos dias liado con el tema de los reportes con Crystal Reports.
Tengo hecho un reporte, conectado a una base de datos. Lo que quiero hacer és filtrar por nombre de usuario y por fechas. La base de datos contiene valores de viajes, cada viaje separado por una fecha. Por ejemplo quiero ver los km realizados por el usuario Josep, entre los dias 1 de abril y 10 de mayo. Esos valores los puedo escojer desde un formulario.
En el codigo que llama al report le he puesto una query filtrando por esos campos. Lo que me pasa es que me muestra el report con todos los registros sin filtrar.
Gracias.
Pego aqui el código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Private Sub CrystalReportViewer1_Load(sender As Object, e As EventArgs) Handles CrystalReportViewer1.Load
 
    TextBox1.Text = Module1.usuari
    Me.DateTimePicker1.Value = consultar.DateTimePicker1.Text
    Me.DateTimePicker2.Value = consultar.DateTimePicker2.Text
 
    Dim sql As String
    Dim cn As SqlConnection
    Dim cm As New SqlCommand
    Dim da As SqlDataAdapter
    Dim dt As New DataTable
    Dim adapter As New SqlDataAdapter()
    'Dim ds As New Data.DataSet()
    cn = New SqlConnection("Data Source=Josep-Pc\sqlexpress;Initial Catalog=Desplacaments;Integrated Security=SSPI")
    cn.Open()
    sql = "select data, iddesti, km from Viatge where data between '" & Convert.ToDateTime(DateTimePicker1.Text) & "' and  '" & Convert.ToDateTime(DateTimePicker2.Text) & "'  and usuari ='" & usuari & "'"
    Try
        cm = New SqlCommand()
        cm.CommandText = sql
        cm.CommandType = CommandType.Text
        cm.Connection = cn
        da = New SqlDataAdapter(cm)
        dt = New DataTable()
        da.Fill(dt)
        adapter.SelectCommand = cm
        adapter.Fill(ds)
    Catch Excep As Exception
        MessageBox.Show(Excep.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try
    printPreviewButton_Click(sender, e)
End Sub
 
Private Sub printPreviewButton_Click(ByVal sender As Object, ByVal e As EventArgs) Handles printPreviewButton.Click
 
    Try
        Dim rept As New ReportDocument()
        rept.Load("C:\Users\Josep\Desktop\viatge.rpt")
        rept.SetDataSource(ds)
        CrystalReportViewer1.ReportSource = rept
    Catch ex As Exception
        MessageBox.Show("No es por obrir el document")
    End Try
 
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Wilfredo Patricio Castillo
Val: 168
Oro
Ha mantenido su posición en Crystal Report (en relación al último mes)
Gráfica de Crystal Report

Paso de paràmetros

Publicado por Wilfredo Patricio Castillo (72 intervenciones) el 18/05/2017 19:20:22
Si estás convirtiendo una fecha desde un datetimepicker, no debes tomar el dato de text, sino de Value mas o menos así:

Convert.ToDateTime(DateTimePicker1.Value)


Saludos cordiales,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Paso de paràmetros

Publicado por Josep (5 intervenciones) el 19/05/2017 08:40:45
Donde tengo la duda es al recoger la fecha que viene desde otro formulario. Si no puedo recoger las fechas del otro formulario no tiene mucho sentido hacer un select filtrando por esas fechas pero me anoto la respuesta para cuando ya pueda hacer el select.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo Patricio Castillo
Val: 168
Oro
Ha mantenido su posición en Crystal Report (en relación al último mes)
Gráfica de Crystal Report

Paso de paràmetros

Publicado por Wilfredo Patricio Castillo (72 intervenciones) el 20/05/2017 00:34:58
En ninguna parte mencionas que recoges las fechas desde otro formulario, muchas veces por eso se demora en obtener una respuesta adecuada, ya que debemos ser muy específicos en hacer las consultas.

Si son 2 formularios, y en el segundo recoges las fechas del primer formulario, pásalo en el constructor del segundo formulario, y no habrán problemas.

Saludos cordiales,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar