Weitergabe von Crystal Reports

Um einen Crystal Report mit einer Anwendung weiterzugeben ist es notwendig, dass ein Setupprojekt erstellt wird, was folgendes enthält:

  • Anwendungsdateien
  • Berichtdateien (.rpt), diese sind Standardmäßig in der Assembly integriert
  • Crystal Reports-Mergemodule
  • .NET Framework

Durch das Erstellen eines Setup-Projektes für die Anwendung innerhalb von Visual Studio kann gewährleistet werden, dass alle benötigten Bibliotheken beim Installationsprozess verfügbar sind. Eine Anleitung befindet sich hier: Link

Zugriff auf CrystalReport TextObjekte zur Laufzeit

  • der CrystalReport ist in ein CrystalReportViewer-Objekt auf dem Formular eingebettet
  • der Zugriff auf die Objekte im Report erfolgt über TypeCasts
' Reportobjekt erzeugen
Private rpt As MyReport = New MyReport()

' beim Erzeugen der Form dem CrystalReportViewer den Report zuweisen
Private Sub MyForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    CrystalReportViewer1.ReportSource = rpt
End Sub

' beim Buttonklick den Text eines Labels im Report ändern
Private Sub btnChangeText_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnChangeText.Click
    Dim crTextObject As CrystalDecisions.CrystalReports.Engine.TextObject

    ' Section3 ... Sektion, in der das TextObjekt beim Erstellen abgelegt wurde
    ' Text1 ... Name, der im beim Erstellen des Reports in dessen Eigenschaftsfenster für das TextObjekt vergeben wurde
    crTextObject = CType(rpt.Section3.ReportObjects.Item("Text1"), CrystalDecisions.CrystalReports.Engine.TextObject)

    ' Text zuweisen
    crTextObject.Text = "neuer Text"
End Sub

Crystal Report verwenden

Crystal Report zum Projekt hinzufügen

  • Projekt->Hinzufügen->Neues Element->Crystal Reports-Bericht
  • wir verwenden beispielhaft den Namen “MyReport”
  • Visual Studio erstellt nun eine neue Crystal Report Datei “MyReport.rpt”

TextObjekt einfügen

  • in die gewünschte Section Rechtsklicken und Einfügen->TextObjekt wählen
  • bei Eigenschaften->Sonstiges->Name eine aussagekräftige Bezeichnung eingeben

Crystal Report anzeigen

  • Projekt->Hinzufügen->Windows Form
  • auf die Form einen CrystalReportViewer (zu finden in der Toolbox unter Crystal Reports) ziehen
  • in der Form-Load-Methode folgenden Code einfügen:
    Public Class frmReport
        ' Instanz des Reportobjekts erzeugen
        Private rpt As MyReport = New MyReport()
    
        ' beim Erzeugen der Form dem CrystalReportViewer den Report zuweisen
        Private Sub frmReport_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            CrystalReportViewer1.ReportSource = rpt
        End Sub
    End Class