Hola!
Quisiera saber si alguien por favor podría darme una mano, estoy intentando desarrollar un programa con VB.NET 2008 y Crystal Reports 2008. Este programa muestra un DataGridView con una lista de personas y algunos datos mas en otras dos columnas, lo que necesito es saber como recorrer el DataGridView y asignar como parámetro el valor que encuentra en la columna CardName y que lo haga una vez por cada renglón exportando 1 report en PDF por cada persona.
Actualmente tengo el DataGridView completo con los datos y el código que pasa el parámetro a Crystal Reports para general el report y exportarlo en PDF, el problema es que es estático y depende del valor que escribo en el valor del parámetro... falta el ciclo que recorre la tabla y asigna automáticamente cada parámetro para que proceda con la exportación del PDF.

Código: Seleccionar todo

        cnString = "Database=TEST;Data Source=172.XX.XX.XX;User Id=user;Password=password"
        sqlQRY = "SELECT OCRD.CardCode, OCRD.CardName, OCRD.E_Mail FROM OCRD WHERE (OCRD.CardCode = 'SS300') OR (OCRD.CardCode = 'SS301')"

        conn = New SqlConnection(cnString)
        conn.Open()
        da = New SqlDataAdapter(sqlQRY, conn)
        Dim cb As SqlCommandBuilder = New SqlCommandBuilder(da)
        da.Fill(ds, "ItemCode")

        DataGridView1.DataSource = ds
        DataGridView1.DataMember = "ItemCode"
        If DataGridView1.RowCount = 2 Then
            DataGridView1.Columns(0).Width = 60
            DataGridView1.Columns(0).HeaderText = "CardCode"
            DataGridView1.Columns(1).Width = 295
            DataGridView1.Columns(1).HeaderText = "Nombre"
            DataGridView1.Columns(2).Width = 295
            DataGridView1.Columns(2).HeaderText = "Email"
        End If


        Dim mySelectFormula As String = ""

        cryRpt.Load("C:\Users\yo\Desktop\Report1.rpt")

        cryRpt.SetDatabaseLogon("user", "password")


        cryRpt.SetParameterValue(0, "Nombre Apellido")

        myCrystalReportViewer.Refresh()

        Try

            Dim CrExportOptions As ExportOptions

            Dim CrDiskFileDestinationOptions As New DiskFileDestinationOptions()

            Dim CrFormatTypeOptions As New PdfRtfWordFormatOptions()

            CrDiskFileDestinationOptions.DiskFileName = "C:\Users\yo\Desktop\Nombre Apellido.pdf"

            CrExportOptions = cryRpt.ExportOptions

            With CrExportOptions

                .ExportDestinationType = ExportDestinationType.DiskFile

                .ExportFormatType = ExportFormatType.PortableDocFormat

                .DestinationOptions = CrDiskFileDestinationOptions

                .FormatOptions = CrFormatTypeOptions

            End With

            cryRpt.Export()

        Catch ex As Exception

            MsgBox(ex.ToString)

        End Try
        End
Muchas gracias!!

Saludos!
Hola, si te he entendido bien, puedes recorrer la tabla y asignar los valores de esta forma:
For i = 0 To ds.Tables("ItemCode").Rows.Count - 1
    ds.Tables("ItemCode").Rows(i)("AlgunaColumna") = "LoQueSea"
Next
Saludos.
El secreto de mi éxito es Jesús
Muchas gracias!!!
Fue muy útil tu ayuda, escribo la parte de código por si a alguien mas puede ser de ayuda.

Código: Seleccionar todo


                Dim Parametro As Object
                Parametro = ds.Tables("ItemCode").Rows(i)("CardName")
                cryRpt.SetParameterValue(0, Parametro)



Saludos
Responder

Volver a “VB/.NET”