Crystal Report - Mysql + VB + Crystal Report espera larga

 
Vista:
sin imagen de perfil

Mysql + VB + Crystal Report espera larga

Publicado por Jamyz (2 intervenciones) el 09/10/2021 08:14:13
Hola!
Para comprobar que me ponga bien los datos he creado un Datagrid que es el siguiente :
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
Dim table As New DataTable()
        Dim command As New MySqlCommand("SELECT
                    Produccion.Producto,
                    Produccion.Producto_tipo,
                    Produccion.Formato,
                    Produccion.Marcado,
                    Produccion.Codigo_referencia,
                    Produccion.Particularidad,
                    count(*) as TOTAL_PALES,
                    SUM(Piezas) AS TOTAL_PIEZAS,SUM(Kilos) AS TOTAL_Kilos,
                    CONCAT(Produccion.Longitud, 'x',Produccion.Anchura) AS TAMANO
                    FROM Lote_Cliente, Produccion
                    WHERE (fecha_preparacion BETWEEN @FECHAINICIO AND @FECHAFINAL) AND Lote_Cliente.numero_lote_cliente = Produccion.Lote_cliente AND Produccion.Nave = @NAVE AND Produccion.Producto = @PRODUCTO
                    GROUP BY Produccion.Producto,Produccion.Producto_tipo,Produccion.Formato,Produccion.Marcado,Produccion.Codigo_referencia,Produccion.Particularidad,TAMANO
                    ORDER BY Produccion.Producto, Produccion.Producto_tipo,Produccion.Formato,TAMANO ASC,Produccion.Codigo_referencia,Produccion.Marcado ASC", con)
 
 
 
        command.Parameters.AddWithValue("@FECHAINICIO", DateTimePicker1.Value.ToString("yyyy-MM-dd"))
        command.Parameters.AddWithValue("@FECHAFINAL", DateTimePicker2.Value.ToString("yyyy-MM-dd"))
        command.Parameters.AddWithValue("@NAVE", ComboBox1.Text)
        command.Parameters.AddWithValue("@PRODUCTO", ComboBox2.Text)
 
        Dim adapter As New MySqlDataAdapter(command)
        adapter.Fill(table)
        DataGridView1.DataSource = table

Este me pone bien lo que quiero y me lo pone al momento en pantalla.
Hago para generar el crystalreport con el codigo siguiente :
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
Dim ds As New DataSet
        p(0) = New MySqlParameter("@FECHAINICIO", DateTimePicker1.Value.ToString("yyyy-MM-dd"))
        p(0).Value = DateTimePicker1.Text
        p(1) = New MySqlParameter("@FECHAFINAL", DateTimePicker2.Value.ToString("yyyy-MM-dd"))
        p(1).Value = DateTimePicker2.Text
        p(2) = New MySqlParameter("@NAVE", ComboBox1.Text)
        p(2).Value = ComboBox1.Text
        p(3) = New MySqlParameter("@PRODUCTO", ComboBox2.Text)
        p(3).Value = ComboBox2.Text
 
        Dim command As New MySqlCommand("SELECT
                    Produccion.Producto,
                    Produccion.Producto_tipo,
                    Produccion.Formato,
                    Produccion.Marcado,
                    Produccion.Codigo_referencia,
                    Produccion.Particularidad,
                    count(*) as TOTAL_PALES,
                    SUM(Piezas) AS TOTAL_PIEZAS,SUM(Kilos) AS TOTAL_Kilos,
                    CONCAT(Produccion.Longitud, 'x',Produccion.Anchura) AS TAMANO
                    FROM Lote_Cliente, Produccion
                    WHERE (fecha_preparacion BETWEEN @FECHAINICIO AND @FECHAFINAL) AND Lote_Cliente.numero_lote_cliente = Produccion.Lote_cliente AND Produccion.Nave = @NAVE AND Produccion.Producto = @PRODUCTO
                    GROUP BY Produccion.Producto,Produccion.Producto_tipo,Produccion.Formato,Produccion.Marcado,Produccion.Codigo_referencia,Produccion.Particularidad,TAMANO
                    ORDER BY Produccion.Producto, Produccion.Producto_tipo,Produccion.Formato,TAMANO ASC,Produccion.Codigo_referencia,Produccion.Marcado ASC", con)
        Dim dscmd As New MySqlDataAdapter(command)
        dscmd.SelectCommand.Parameters.Add(p(0))
        dscmd.SelectCommand.Parameters.Add(p(1))
        dscmd.SelectCommand.Parameters.Add(p(2))
        dscmd.SelectCommand.Parameters.Add(p(3))
 
        command.CommandTimeout = 21600
 
        dscmd.Fill(ds, "VENTASPALESPORFECHAS")
        con.Close()
        Dim cryds As New Venta_Pales_por_Fecha
        cryds.SetDataSource(ds.Tables(0))
        CrystalReportViewer1.ReportSource = cryds
        CrystalReportViewer1.Refresh()
 
        con.Close()
        con.Close()

Si no pongo el command.CommandTimeout = 21600 se cuelga poniendo un fatal error si son fechas un poco largas entre ellas.
Asi que que es lo que esta mal ?
Gracias
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 Phil Rob

Mysql + VB + Crystal Report espera larga

Publicado por Phil Rob (2 intervenciones) el 09/10/2021 13:56:42
Hola,

En otros tiempos, vengo en este sito en el foro VisualBasic.net. Hoy, es este simple curiosidad ...

Te propongo de probar de poner el comando del Crystal donde pones el comando del DataGridView. La razón es que los códigos que utilizas para el DataGridView y para el Crystal no están exactamente iguales. Notamente, los parámetros no están escritos de misma manera.

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
Dim table As New DataTable()
        Dim command As New MySqlCommand("SELECT
                    Produccion.Producto,
                    Produccion.Producto_tipo,
                    Produccion.Formato,
                    Produccion.Marcado,
                    Produccion.Codigo_referencia,
                    Produccion.Particularidad,
                    count(*) as TOTAL_PALES,
                    SUM(Piezas) AS TOTAL_PIEZAS,SUM(Kilos) AS TOTAL_Kilos,
                    CONCAT(Produccion.Longitud, 'x',Produccion.Anchura) AS TAMANO
                    FROM Lote_Cliente, Produccion
                    WHERE (fecha_preparacion BETWEEN @FECHAINICIO AND @FECHAFINAL) AND Lote_Cliente.numero_lote_cliente = Produccion.Lote_cliente AND Produccion.Nave = @NAVE AND Produccion.Producto = @PRODUCTO
                    GROUP BY Produccion.Producto,Produccion.Producto_tipo,Produccion.Formato,Produccion.Marcado,Produccion.Codigo_referencia,Produccion.Particularidad,TAMANO
                    ORDER BY Produccion.Producto, Produccion.Producto_tipo,Produccion.Formato,TAMANO ASC,Produccion.Codigo_referencia,Produccion.Marcado ASC", con)
 
 
        command.Parameters.AddWithValue("@FECHAINICIO", DateTimePicker1.Value.ToString("yyyy-MM-dd"))
        command.Parameters.AddWithValue("@FECHAFINAL", DateTimePicker2.Value.ToString("yyyy-MM-dd"))
        command.Parameters.AddWithValue("@NAVE", ComboBox1.Text)
        command.Parameters.AddWithValue("@PRODUCTO", ComboBox2.Text)
 
        Dim adapter As New MySqlDataAdapter(command)
        adapter.Fill(table)
        DataGridView1.DataSource = table
 
' Aqui, llamar el Crysta :
 
        Dim cryds As New Venta_Pales_por_Fecha
        cryds.SetDataSource(table)      '  Si "tabla" es bien para el DataGridView, tambien deberia ser bien para el Crystal
        CrystalReportViewer1.ReportSource = cryds
        CrystalReportViewer1.Refresh()

Espero que este te ayudará ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Mysql + VB + Crystal Report espera larga

Publicado por Jamyz (2 intervenciones) el 10/10/2021 10:15:39
Estas metido en todos los sitios
Muchas gracias por la ayuda. De momento me va genial
Un saludo
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 Phil Rob

Mysql + VB + Crystal Report espera larga

Publicado por Phil Rob (2 intervenciones) el 10/10/2021 10:45:52
...
Que tenga un buen domingo !
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