PDA

Vollständige Version anzeigen : Bericht mit Crystal Reports


mpaus
23.04.2008, 19:30
Hallo zusammen!

ich versuche auf dolgende Weise einen Report anzuzeigen:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim rep As New CrystalReport1()
Dim ds As New DataSet1()

Dim strSQL As String
Dim strCon As String

strSQL = "SELECT * " _
& "FROM GLWaagedaten INNER JOIN " _
& "GLWaageEinmalkunden ON GLWaagedaten.mandant = GLWaageEinmalkunden.Mandant AND " _
& "GLWaagedaten.Wiegeprotokollnummer = GLWaageEinmalkunden.Wiegeprotokollnummer"

strCon = "Data Source=PC;Initial Catalog=DBTEST;User Id=sa;Password=sa;"

Dim con As SqlConnection = New SqlConnection(strCon)
Dim cmd As SqlCommand = New SqlCommand(strSQL, con)
Dim da As New SqlDataAdapter(cmd)

ds.Clear()
da.Fill(ds)

rep.SetDataSource(ds)

Me.CrystalReportViewer1.ReportSource = rep

End Sub

Der Report wird zwar geöffnet, aber leider ist nichts drin (bzw. nur die Überschriften).
Was mache ich falsch?
Muss gestehen, dass ich mit Visual Studio noch nicht sooo viel ERfahrung habe.

hcscherzer
24.04.2008, 08:00
Moin Markus,
ich mache das hier (VS2005) so:
ein Formular wird angelegt, das enthält lediglich ein CrystalReportViewer als Steuerelement. Im Klassenmodul dieses Formulars geschieht dann folgendes
(die RPT Datei liegt in einem Unterverzeichnis relativ zum ausführbaren Programm; die Variable cnn1 ist global deklariert und definiert die Verbindung zur DB):Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared

Public Class CRForm
Inherits System.Windows.Forms.Form

Dim crreport As ReportDocument

Private Sub CRForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim reportPath As String = "Reports\\liste.rpt"

crreport = New ReportDocument
crreport.Load(reportPath)
ConfigureCrystalReports()

End Sub

Private Sub ConfigureCrystalReports()
Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo()

myConnectionInfo.DatabaseName = cnn1.Database
myConnectionInfo.UserID = "user"
myConnectionInfo.Password = "password"
myConnectionInfo.ServerName = cnn1.DataSource
CrystalReportViewer1.ReportSource = crreport
SetDBLogonForReport(myConnectionInfo)

End Sub

Private Sub SetDBLogonForReport(ByVal myConnectionInfo As ConnectionInfo)
Dim myTableLogOnInfos As TableLogOnInfos = mfcr.CrystalReportViewer1.LogOnInfo
Dim mytablelogoninfo As TableLogOnInfo

If Not IsNothing(myTableLogOnInfos) Then
For Each mytablelogoninfo In myTableLogOnInfos
mytablelogoninfo.ConnectionInfo = myConnectionInfo
Next
End If

End Sub

End Class