Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: el_cantante en 9 Marzo 2013, 00:07 am



Título: DatagridView y Crystal Reports 2008
Publicado por: el_cantante en 9 Marzo 2013, 00:07 am
Hola!  :D
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:
        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

Muchisimas gracias!!  ;-)

Saludos!!