In vb.net 2005 heb ik een crystal report toegevoegd (project - add windows form - crystal report - "rapport.rpt").
Mbv de report wizard heb ik een nieuwe connectie gemaakt (create new connection - ole db (ADO) - Microsoft Jet 4.0 .... - data base name: test.mdb). Vervolgens de velden geschikt... In de preview is dus alles normaal.
Vervolgens heb ik het formulier frmMain waar ik een "CrystalReportViewer" op sleep om dit rapport te kunnen bekijken. Via programmacode maak ik een DataSet en DataTable aan met de gegevens uit test.mdb (deze kan ik ook ter controle bekijken in een DataGridView)
Als ik nu het rapport wil opvragen is alles in orde. Maar ik merk dat de gegevens worden opgehaald rechtstreeks uit test.mdb (zoals ik in de wizard aangaf), maar niet via de inhoud van de DataSet.
Als ik test.mdb nu wijzig in testX.mdb en het volgende aanpas:
Dim strConnection As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=testX.mdb;" --> nu werkt de datagridview nog steeds goed, maar het rapport wil zijn gegevens uit test.mdb halen ipv uit de DataSet (die op testX.mdb werkt).
Heeft iemand een idee hoe ik dit moet oplossen? Niet via de wizard werken, ok....maar hoe kan ik dan mijn velden schikken? Current Connections is leeg bij de wizard, dus ik moet wel create new connection kiezen...
Edit: dit test project lijkt echter wel te werken. Ik denk dat het probleem in mijn originele project het volgende is: Ik maak er gebruik van subrapporten. De .SetDataSource specifieer ik echter niet voor dit subrapport. Ik ga het verder testen en laat hier nog iets weten als ik er wijzer uit geraak...
Edit2: nope : ( Lijkt niet te werken. Ik geef gebruik SetDataSource zowel voor het hoofdrapport als het subrapport, met hetzelfde resultaat echter...
Mbv de report wizard heb ik een nieuwe connectie gemaakt (create new connection - ole db (ADO) - Microsoft Jet 4.0 .... - data base name: test.mdb). Vervolgens de velden geschikt... In de preview is dus alles normaal.
Vervolgens heb ik het formulier frmMain waar ik een "CrystalReportViewer" op sleep om dit rapport te kunnen bekijken. Via programmacode maak ik een DataSet en DataTable aan met de gegevens uit test.mdb (deze kan ik ook ter controle bekijken in een DataGridView)
Code:
Public Class frmMain
Dim strConnection As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb;"
Dim objConnection As OleDbConnection = New OleDbConnection(strConnection)
Dim objDataSet As DataSet
Dim objDataAdapter As OleDbDataAdapter
Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
objConnection.Open()
objDataSet = New DataSet("TEST")
objDataAdapter = New OleDbDataAdapter("select * from tblKlanten", objConnection)
objDataAdapter.Fill(objDataSet, "Klanten")
objConnection.Close()
DataGridView1.DataSource = objDataSet.Tables("Klanten")
End Sub
Private Sub btnRapport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRapport.Click
Dim objReport As New rapport
objReport.SetDataSource(objDataSet)
CRviewer.ReportSource = objReport
End Sub
End Class
Als ik nu het rapport wil opvragen is alles in orde. Maar ik merk dat de gegevens worden opgehaald rechtstreeks uit test.mdb (zoals ik in de wizard aangaf), maar niet via de inhoud van de DataSet.
Als ik test.mdb nu wijzig in testX.mdb en het volgende aanpas:
Dim strConnection As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=testX.mdb;" --> nu werkt de datagridview nog steeds goed, maar het rapport wil zijn gegevens uit test.mdb halen ipv uit de DataSet (die op testX.mdb werkt).
Heeft iemand een idee hoe ik dit moet oplossen? Niet via de wizard werken, ok....maar hoe kan ik dan mijn velden schikken? Current Connections is leeg bij de wizard, dus ik moet wel create new connection kiezen...
Edit: dit test project lijkt echter wel te werken. Ik denk dat het probleem in mijn originele project het volgende is: Ik maak er gebruik van subrapporten. De .SetDataSource specifieer ik echter niet voor dit subrapport. Ik ga het verder testen en laat hier nog iets weten als ik er wijzer uit geraak...
Edit2: nope : ( Lijkt niet te werken. Ik geef gebruik SetDataSource zowel voor het hoofdrapport als het subrapport, met hetzelfde resultaat echter...
Laatst bewerkt: