Das Design der kopierten Benutzerberichte kann in Crystal Reports geändert werden. Die Datenherkunft (SQL-Statement) wird durch das Filterformular automatisch an den Bericht geliefert.
Es besteht für den Datenbankprofi die Möglichkeit, die Datenherkunft zu ändern, um zum Beispiel weitere Datenquellen zur Ansicht zu bringen. Die Vorgehensweise wird am Beispiel der Mitarbeiterliste dargestellt.
Um eine XML-Datei einlesen zu können, muss Crystal Reports Version 2013 (oder höher) installiert sein.
Abbildung 00162: Berichtseigenschaften von benutzerdefinierten Berichten
Durch Klicken auf Erweitert kann die Datenherkunft geändert werden:
Abbildung 00163: Berichtsherkunft in den erweiterten Optionen eines Benutzerberichtes
Bericht
Ein Crystal Report kann aus einer Liste mehrerer Subreports bestehen. Die SQL-Statements der Subreports können unterschiedlich sein. In den meisten Fällen muss nur der Hauptbericht geändert werden.
Herkunft
MARIProject: Verbindung zur MARIProject-Datenbank (Mitarbeiter, Projekte...)
SAP Business One (Mandant): Verbindung zur Datenbank der Warenwirtschaft (SAP Business One) (Kunden, Artikel...)
Platzhalter
Es werden einige Platzhalter angeboten, die bei jeder Verwendung des Berichts ersetzt werden.
$CompanyDB: Der Platzhalter $CompanyDB wird durch die jeweilige SBO-Datenbanknamen ersetzt.
$ODOC: Der Platzhalter $ODOC wird durch den Tabellennamen des Beleges ersetzt (OINV, OPOH)
$DOC: Der Platzhalter $DOC wird durch die Untertabellen ersetzt (INV, POH)
$DocEntry$: Der Platzhalter $DocEntry$ wird durch die eindeutige Belegnummer ersetzt
$ObjType$: Der Platzhalter $ObjType$ wird durch die ID der Belegart ersetzt (z.B. 13 bei Rechnungen).
$LogInstanc$: Der Platzhalter $LogInstanc$ wird durch die Historieninstanz des Beleges ersetzt (z.B. 1, 2).
Ein SQL Ausdruck:
SELECT T0.DocNum, T1.ItemCode FROM [$CompanyDB].dbo.$ODOC T0
INNER JOIN [$CompanyDB].dbo.$DOC1 T1 ON T1.DocEntry=T0.DocEntry
WHERE T0.DocEntry=$DocEntry$
wird zum Beispiel bei einer Rechnung automatisch ersetzt durch:
SELECT T0.DocNum, T1.ItemCode FROM [SBODemo_DE].dbo.OINV T0
INNER JOIN [SBODemo_DE].dbo.INV1 T1 ON T1.DocEntry=T0.DocEntry
WHERE T0.DocEntry=145
Nach Änderung des SQL-Statement, müssen die Tabellenstruktur und die Beispieldaten in eine XML-Datei exportiert werden. Schließen Sie die Berichtsquelle und drücken Sie OK, um die Maske Berichtseigenschaften zu schließen. Mit rechtem Mausklick in den Berichtsberechtigungen können Sie ein neues XML-Beispiel mit Daten erstellen:
Bitte beachten Sie, dass gegebenenfalls personenbezogene Daten in den XML-Dateien liegen.
Nach dem Einlesen der XML-Datei in den Bericht kann sie wieder gelöscht werden.
Von Berichten wie Rechnungen und Stundenerfassungen können keine XML-Beispiele erstellt werden, da diese nicht manuell aufrufbar sind. Bei diesen Berichten hilft nur die Erstellung einer XML-Schema-Datei.
Abbildung 00184: XML-Beispiel erstellen
Der Standardberichtsfilter erscheint, so dass die Daten entsprechend der Benutzerberechtigung gefiltert werden können. Für einige Berichte gibt es keine sichtbare Filtermaske, siehe Besonderheit: Hinzufügen einer neuen Quelle zur Haupt-SQL-Herkunft (& S. 32-23).
Nur wenn eine Bestätigung erfolgt, wurde die Datenquelle gespeichert:
Abbildung 00185: erfolgreiches Speichern der Daten
Als nächstes müssen Sie die XML-Dateien mit den enthaltenen Datenquellen in den entsprechenden Bericht einlesen. Berichte, die in der Datenbank liegen, müssen zunächst ausgecheckt werden, da diese sonst nicht bearbeitet werden können. Öffnen Sie hierzu mit rechter Maustaste auf dem Bericht das Kontextmenü und wählen Sie die Option Auschecken.
Abbildung 00164: Bericht Auschecken
Öffnen Sie anschließend das Kontextmenü erneut und wählen Sie die Option Im Entwurf bearbeiten. Der Bericht wird automatisch in Crystal Reports geöffnet. In Crystal Reports wählen Sie dann das Menü Datenbank > Datenquellenpfad festlegen.
Abbildung 00182: Crystal Reports 2013 - Datenquellenpfad festlegen
Abbildung 00165: Datenquellenpfad festlegen
Doppelklicken Sie auf ADO.NET (XML).
Abbildung 00166: ADO.NET (XML) - Verbindungsinformationen
Wählen Sie im Dateipfad die XML-Datei aus und schließen Sie das Fenster mit Fertigstellen.
Der obere Teil des Fensters zeigt die Tabellen, die im Bericht verwendet werden, und der untere Teil die Tabellen, die aus der XML-Datei gelesen wurden.
Wählen Sie nun im unteren Bereich die Tabelle aus, welche die Tabelle in oberer Bereich aktualisieren soll. Nachdem Sie zusätzlich die Tabelle im oberer Bereich markiert haben, klicken Sie auf Aktualisieren. Durch Klick auf Schließen schließen Sie das Fenster.
Abbildung 00187: Crystal Reports 2013 - Aktualisierung des neuen Datenquellenpfades
Wenn Sie Aktualisieren klicken, wird die neue Datenquelle in jedem Feld des Berichtes geändert.
Berichte, die anfangs ausgecheckt wurden, müssen jetzt wieder eingecheckt werden, damit alle Benutzer den geänderten Bericht verwenden können. Öffnen Sie dazu mit der rechten Maustaste auf dem Bericht in den Berichtsberechtigungen das Kontextmenü und wählen Sie Einchecken.
Abbildung 00168: Bericht einchecken