ReportClientDocument-Objektmodell (RAS)

Das ReportClientDocument-Objektmodell stellt das leistungsstärkste und umfassendste Objektmodell für die Berichtbearbeitung dar. Dieses Objektmodell ist nur als Bestandteil von Report Application Server (RAS) verfügbar, der entweder als unverwalteter Report Application Server (RAS) oder als verwalteter Report Application Server (BOE) erhältlich ist.

Das ReportClientDocument-Objektmodell besteht aus zahlreichen Klassen in mehreren Namespaces. Jedem Namespace ist CrystalDecisions.ReportAppServer vorangestellt. Durch dieses Objektmodell wird die gesamte Berichtstruktur im SDK verfügbar gemacht, so dass jedes Detail des Berichts zur Laufzeit programmgesteuert erstellt, geändert und anschließend gespeichert werden kann.

Eine ReportClientDocument-Instanz umfasst einen Bericht, der programmgesteuert über seine Klasseneigenschaften geändert werden kann. Diese Eigenschaften sind mit einer Reihe anderer Bibliotheken im SDK verknüpft, die Controller, Datendefinitionsmodelle und Berichtdefinitionsmodelle umfassen:

  • ReportDefinition entspricht dem Layout des Berichts, so wie es im Crystal Report Designer angezeigt wird.
  • DataDefinition entspricht dem Feld-Explorer im Crystal Report Designer.
  • RowsetController entspricht den verarbeiteten Datenwerten der einzelnen Detailzeilen, wenn der Bericht zur Laufzeit angezeigt wird.

ReportClientDocument-Instanzen können Instantiierungen folgender Elemente sein:

  • Eine vorhandene RPT-Datei, die aus einem Verzeichnis geladen und dann mit der Berichtdefinitions- und Datendefinitionsklasse des ReportClientDocument-SDKs geändert wurde.
  • Ein gänzlich neuer leerer Bericht, der mit der Berichtdefinitions- und Datendefinitionsklasse des ReportClientDocument-SDKs erstellt wird.

Diese Instanz der ReportClientDocument-Klasse kann nur so lange geladen werden, bis die Instanz zur Anzeige an den Viewer übergeben wurde. Anschließend ist sie nicht mehr gültig. Die Klasseninstanz kann jedoch auch geändert und dann mit einer der Controllerklassen als Bericht (.rpt) in einem Verzeichnis gespeichert werden.

Ausführliche Informationen zum ReportClientDocument-Objektmodell finden Sie in der Dokumentation zum Business Objects RAS .NET SDK.

ReportClientDocument in Crystal Reports 9

Bei Crystal Reports 9 (Advanced-Version), das mit dem unverwalteten RAS und den RAS .NET-Assemblys ausgeliefert wurde, waren Programmierungsschritte im ReportClientDocument-Objektmodell erforderlich. Dies ermöglichte Entwicklern die Erstellung von .NET-Projekten, die die Vorteile des ReportClientDocument-Objektmodells nutzten.

Gleichzeitig bedeutete dies jedoch, dass zuvor mit dem in Crystal Reports enthaltenen ReportDocument-Objektmodell Projekte für das ReportClientDocument-Objektmodell mit dem RAS vollständig neu codiert werden mussten. Die Ursache dafür war die Grundverschiedenheit der beiden Objektmodelle.

ReportClientDocument in Crystal Reports 10 und höher

In Crystal Reports 10 wurden die grundlegende Trennung zwischen den Objektmodellen aufgehoben. Zu diesem Zweck wurde das ReportDocument-Objektmodell umgeschrieben und funktioniert nun stellvertretend für (eine Teilmenge von) Funktionen des ReportClientDocument-Objektmodells. Die Klassen des ReportDocument-Objektmodells machen dieselben Eigenschaften- und Methodensignaturen verfügbar wie zuvor. Allerdings wurde die zugrunde liegende Funktionalität dahin gehend geändert, dass jede Eigenschaft und Methode an Eigenschaften und Methoden des leistungsfähigeren ReportClientDocument-Objektmodells umgeleitet wird.

Dies bedeutet jedoch nicht, dass Sie mit einer Basisversion von Crystal Reports Developer vollen Zugriff auf einen unverwalteten RAS-Server bzw. auf das ReportClientDocument-Objektmodell haben. Über die Basisversion von Crystal Reports haben Sie weiterhin nur Zugriff auf das ReportDocument-Objektmodell (obwohl einige Funktionen des ReportClientDocument-Objektmodells stellvertretend durch die Funktionen des ReportDocument-Objektmodells ausgeführt werden). Die in früheren Versionen von Crystal Reports enthaltene ursprüngliche Report Engine wurde durch eine eingeschränkte und eingebettete Version der RAS-Report Engine ersetzt.

Nur durch eine Upgradelizenz auf den unverwalteten RAS-Server haben Sie die Möglichkeit, das ReportClientDocument-Modell zu installieren und direkt zu nutzen. Sie können daraufhin sämtlichen für das ReportDocument-Objektmodell geschriebenen Code problemlos an den separaten RAS-Server umleiten, indem Sie für jede Berichtinstanz zwei Eigenschaften festlegen. Außerdem haben Sie jetzt direkten Zugriff auf das zugrunde liegende ReportClientDocument-Objektmodell, nachdem Sie es aus der ReportClientDocument-Eigenschaft der ReportDocument-Klasse abgerufen haben.

Weitere Informationen finden Sie unter Binden an unverwalteten RAS mit der ReportDocument.Load()-Methode.

Diagramm des ReportClientDocument-Objektmodells

Dieses Diagramm verdeutlicht die Beziehungen des ReportClientDocument-Objektmodells.

Abbildung 4: ReportClientDocument-Objektmodell