none
4 veces la misma Linea detalle RRS feed

  • Pregunta

  • Hola,

    No es la primera vez que me pasa y al final acabo poniendo parametros...

    Pero me gustaría poder solucionarlo o saber por que me pasa esto...

    Si imprimo una factura, me imprime 4 veces el mismo producto...

    Hago un select y relleno DataSet, hago otro y relleno dataset, asi sucesivamente, no hago vinculos con las tablas en la conexion de crystal report ni nada...

    viernes, 25 de octubre de 2019 17:47

Respuestas

  • Me respondo yo mismo...

    El problema lo tenía en la tabla que estaba comentada, he visto que tenia duplicado los datos, y por eso me duplicaba la linea Detalle...

    Perdonar la molestia

    Un saludo

    • Marcado como respuesta J.Ramon jueves, 31 de octubre de 2019 18:17
    lunes, 28 de octubre de 2019 12:19

Todas las respuestas

  • dejame ver tu codigo a ver si puedo ayudarte
    viernes, 25 de octubre de 2019 19:29
  • Hola Efrain,

    Te pego el código, he probado de varias formas pero siempre me hace lo mismo... La única opción que tengo para que funcione correctamente es quitando un Selec, te muestro el código.

            Dim fila As DataGridViewRow = DGVPresu.CurrentRow
            Dim ds As New DataSet
            If CStr(fila.Cells("numpresu").Value) <> "" Then
    
                Dim Querypresu As String = "SELECT numpresu,fecha,concepto,inidades,precio,total FROM FPRESU WHERE numpresu=@Numpresu and codopti='ZZ'"
                Try
    
                    Using Cnn As SqlConnection = Conexion.GetSqlConnection()
                        Cnn.Open()
                        Dim cmd As New SqlCommand
                        cmd.Parameters.AddWithValue("@Numpresu", fila.Cells("numpresu").Value)
                        Dim da As New SqlDataAdapter
    
                        cmd.CommandText = Querypresu
                        cmd.CommandType = CommandType.Text
                        cmd.Connection = Cnn
                        da = New SqlDataAdapter(cmd)
                        da.Fill(ds, "Fpresu")
                    End Using
    
                    Dim QueryFpac As String = "SELECT nom,apel,dir,pob,tlf,obs3 FROM FPac WHERE numero=@Numcli"
    
                    Using Cnn As SqlConnection = Conexion.GetSqlConnection()
                        Cnn.Open()
                        Dim cmd As New SqlCommand
                        cmd.Parameters.AddWithValue("@Numcli", LabelNumCli.Text)
                        Dim da As New SqlDataAdapter
    
                        cmd.CommandText = QueryFpac
                        cmd.CommandType = CommandType.Text
                        cmd.Connection = Cnn
                        da = New SqlDataAdapter(cmd)
                        da.Fill(ds, "Fpac")
                    End Using
    
                    'Dim QueryFempresa As String = "SELECT optica,dir,pob,tel,cif FROM Fempresa WHERE Codopti=@Codopti"
    
                    'Using Cnn As SqlConnection = Conexion.GetSqlConnection()
                    '    Cnn.Open()
                    '    Dim cmd As New SqlCommand
                    '    cmd.Parameters.AddWithValue("@Codopti", CODOPTI)
                    '    Dim da As New SqlDataAdapter
    
                    '    cmd.CommandText = QueryFempresa
                    '    cmd.CommandType = CommandType.Text
                    '    cmd.Connection = Cnn
                    '    da = New SqlDataAdapter(cmd)
                    '    da.Fill(ds, "Fempresa")
                    'End Using
    
                    Dim informe As New Presupuesto
                    informe.SetDataSource(ds)
    
                    If My.Computer.FileSystem.FileExists(Application.StartupPath & "\bmp\logo.jpg") Then
                        informe.SetParameterValue("Logo1", Application.StartupPath & "\bmp\logo.jpg")
                    Else
                        informe.SetParameterValue("Logo1", "")
                    End If
    
                    If PrintDialog1.ShowDialog = DialogResult.OK Then
                        informe.PrintOptions.PrinterName = PrintDialog1.PrinterSettings.PrinterName
                        informe.PrintToPrinter(PrintDialog1.PrinterSettings.Copies, False, PrintDialog1.PrinterSettings.FromPage, PrintDialog1.PrinterSettings.ToPage)
                    Else
                        Exit Sub
                    End If
    
                Catch ex As Exception
                    MessageBox.Show("ERROR: " & ex.ToString, "Error imprimiendo presupuesto", MessageBoxButtons.OK, MessageBoxIcon.Error)
                End Try
    
            Else
                MessageBox.Show("Seleccione un presupuesto", "Error", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If
    
        End Sub

    Si te fijas, la query que esta comentada, si la habilito deja de funcionar correctamente... En esa tabla es donde estan los datos de la empresa... Puedo ponerlo comoparametros y pasarselo al reporte, pero no entiendo por que deja de funcionar correctamente...

    Un saludo.

    lunes, 28 de octubre de 2019 9:52
  • Me respondo yo mismo...

    El problema lo tenía en la tabla que estaba comentada, he visto que tenia duplicado los datos, y por eso me duplicaba la linea Detalle...

    Perdonar la molestia

    Un saludo

    • Marcado como respuesta J.Ramon jueves, 31 de octubre de 2019 18:17
    lunes, 28 de octubre de 2019 12:19