Quantcast
Channel: SCN : Discussion List - SAP Crystal Reports, version for Visual Studio
Viewing all articles
Browse latest Browse all 3636

Error in setting datasource - Crystal reports

$
0
0

Good day,

 

I am currently experiencing a problem with setting my datasource to a report in Crystal Reports.

 

Strangely, the report works in VS 2010, but when running as an executable, the program fails when assigning the datasource.

 

My code:

 

    Public Sub PurchasesByVendor()

        Try

            Dim sql As String = "SELECT tblVendors.VendorID, tblVendors.VendorName, tblPO.POID, tblPO.EnterDate, tblCustomers.Company, tblOrders.RefNum, Sum(tblPOItems.ExtPrice) AS SumOfExtPrice " & _

                                "FROM (((tblPO INNER JOIN tblPOItems ON tblPO.POID = tblPOItems.POID) INNER JOIN tblVendors ON tblPO.VendorID = tblVendors.VendorID) LEFT JOIN tblOrders ON tblPO.OrderID = tblOrders.OrderID) LEFT JOIN tblCustomers ON tblOrders.CustomerID = tblCustomers.CustomerID " & _

                                "WHERE (((tblPO.EnterDate) Between #" & dpStart.Text & "# And #" & dpFinish.Text & "#)) " & _

                                "GROUP BY tblVendors.VendorID, tblVendors.VendorName, tblPO.POID, tblPO.EnterDate, tblCustomers.Company, tblOrders.RefNum; "

            Dim con As New OleDb.OleDbConnection

            Dim da As OleDb.OleDbDataAdapter

            Dim ds As New DataSet

            con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source = C:\Program Files\Mail-Shop\MSApp2k.mdb"

            con.Open()

            da = New OleDb.OleDbDataAdapter(sql, con)

            da.Fill(ds, "PO")

 

 

            Dim povList As List(Of POV) = New List(Of POV)

            If ds.Tables("PO").Rows.Count > 0 Then

                For i = 0 To ds.Tables("PO").Rows.Count - 1

                    Dim pov As POV = New POV()

                    pov.VendorName = ds.Tables("PO").Rows(i).Item(1)

                    pov.PONumber = ds.Tables("PO").Rows(i).Item(2)

                    pov.PODate = ds.Tables("PO").Rows(i).Item(3)

                    If IsDBNull(ds.Tables("PO").Rows(i).Item(4)) = False Then

                        pov.Company = ds.Tables("PO").Rows(i).Item(4)

                    End If

                    If IsDBNull(ds.Tables("PO").Rows(i).Item(5)) = False Then

                        pov.Order = ds.Tables("PO").Rows(i).Item(5)

                    End If

                    pov.Total = ds.Tables("PO").Rows(i).Item(6)

                    povList.Add(pov)

                Next

            End If

            'MsgBox(povList.Count)

 

 

            Dim datas As POVD = New POVD()

            Dim dt As New DataTable("povd")

            'Dim dt As DataTable = datas.Tables.Add("hc")

            dt.Columns.Add("Vendor", GetType(String))

            dt.Columns.Add("PONumber", GetType(Integer))

            dt.Columns.Add("PODate", GetType(Date))

            dt.Columns.Add("Company", GetType(String))

            dt.Columns.Add("OrderNbr", GetType(Integer))

            dt.Columns.Add("Total", GetType(Double))

            dt.Columns.Add("Charged", GetType(Double))

            datas.Tables.Add(dt)

            For Each dr In povList

                Dim vendor = dr.VendorName

                Dim ponbr = dr.PONumber

                Dim poDate As Date = DateValue(DateTime.Parse(dr.PODate))

                Dim company = dr.Company

                Dim order = dr.Order

                Dim total = dr.Total

                Dim charged = dr.getCharged(dr.PONumber)

 

 

                Dim nw As DataRow = datas.Tables(0).NewRow()

                nw(0) = vendor

                nw(1) = ponbr

                nw(2) = poDate

                nw(3) = company

                nw(4) = order

                nw(5) = total

                nw(6) = charged

                datas.Tables(0).Rows.Add(nw)

            Next

 

 

            '' bind the datasource+

            Dim objRpt As New PurchaseByVendor

            objRpt.SetDataSource(datas.Tables(0))

 

 

            Dim wfp As New WindowFormReport()

            wfp.CrystalReportsViewer1.ViewerCore.ReportSource = objRpt

            Me.NavigationService.Navigate(wfp)

 

 

            con.Close()

            con.Dispose()

        Catch ex As Exception

            MsgBox(ex.Message)

        End Try

    End Sub

 

Thanks!


Viewing all articles
Browse latest Browse all 3636

Trending Articles