[ 1 ] [ 2 ] [ 3
] [ 4 ] [ 5 ] [
6 ]
Der Einsatz eines DataEnvironment im Report hat zwei Vor-
und einen Nachteil:
- Vorteil 1: Alle Felder von im DataEnvironment enthaltenen Tabellen
erscheinen im Reportdesigner in diversen Auswahllisten, aus denen man sich z.B.
Expressions per Maus zusammenklicken kann. Außerdem kann man Felder per
Drag&Drop aus dem
DataEnvironment auf die Arbeitsfläche des Reportdesigners ziehen (NB:
Dies funktioniert übrigens auch aus dem Datenbankdesigner auf die
Reportdesigner-Arbeitsfläche).
Vorteil 2: Je nach Einstellungen der Optionen im DataEnvironment
werden die benötigten Tabellen beim Abarbeiten des Reports ggf. automatisch
geöffnet und wieder geschlossen.
Nachteil: Man kann einen Report mit eigenem DataEnvironment nur
sehr eingeschränkt auf zwar gleich strukturierte, aber anders benannte
Datenquellen anwenden (andere Dateinamen, andere Lage der Dateien auf der
Festplatte, Verwendung des SQL-Selects als Datenquelle für einen Report).
Aus diesem Grund muß man die Vor- und Nachteile abwägen und sich für einen
Weg entscheiden
Wenn man mit einem reportinternen DataEnvironment arbeitet, dann kann
man dem Report für die Abarbeitung außerdem eine eigene Private DataSession
zuweisen. Damit erreicht man eine automatische Abschottung der bei der
Report-Ausgabe verwendeten Tabellen und Arbeitsbereiche von den anderen
Arbeitsbereichen der Applikation.
NB: Diese Verfahrensweise ist natürlich nicht möglich, wenn ein Report auf
Basis gepufferter und noch ungespeicherter Daten ausgegeben werden soll.
Die Report-Bands (I)
Als Report Bands werden die einzelnen Teilbereiche eines Reports
bezeichnet. Standardmäßig besteht ein Report aus 3 Report Bands, dem
"Page Header", dem "Detail Band" sowie dem "Page Footer":
Ein besonderes Geheimnis verbirgt sich hinter dem DoubleClick auf
eines der Separator Bars, die die Bands im Designer voneinander
trennen:
Hier kann man die Höhe des jeweiligen Bereichs millimetergenau
angeben und außerdem bestimmte Expressions eintragen.
Die Macht des "Print-When"
Ein sehr weitreichendes Potential liegt in der sogenannten "Print
When"-Expression. Diese logische Expression findet sich an jedem
Objekt, welches man zur Ausgabe auf der Arbeitsfläche plazieren kann. Kern des
zugehörigen Dialogfeldes ist die
"Print only when Expression is true"-Expression:
Mit Hilfe der dort zu hinterlegenden Expression kann man
bestimmen, ob das jeweilige Objekt gedruckt werden soll oder auch
nicht.
Diesen Mechanismus kann man zu folgenden Zwecken benutzen:
Print-When-Expression in Abhängigkeit vom Satzartkennzeichen gesteuert
wird.
- Im einfachsten Fall kann man mit einer Bedingung (z.B.
Customer.MaxOrdAmt>12000) über die Sichtbarkeit eines Anzeigeelements
entscheiden.
Kombiniert man nun die entgegengesetzte Bedingung (z.B.
Customer.MaxOrdAmt<=12000) mit einer kopie dieses control, dann erscheint je
nach inhalt der daten entweder die eine oder die andere variante dieses
controls.
- Unterscheiden sich die Controls nun z.B. nur in der Schriftfarbe oder der
Schriftart, kann man damit eine dateninhaltsabhängige Färbung oder Schriftart
der Werte erreichen (wenn man denn die beiden Controls noch übereinander auf die
gleiche Stelle der Arbeitsfläche stapelt).
Wenn man diesen Mechanismus noch weiter ausreizt, kann man je nach Typ
des Datensatzes optisch völlig unterschiedliche Detailbereiche erscheinen
lassen, indem die Sichtbarkeit der jeweiligen Controls über eine
[ 1 ] [ 2 ] [ 3 ] [
4 ] [ 5 ] [
6 ]
|