Bericht-Designer Beispiel
Diesem Beispiel liegen die folgenden Anleitungen zur Verwendung des Bericht-Designers zugrunde:
Als Beispiel soll ein Rechnungsbericht erstellt werden. Für jede Rechnung werden die Leistungen, nach Phasen gruppiert, dargestellt und die Phasen totalisiert.
Bericht erzeugen
Klicken Sie mit der rechten Maustaste auf Einstellungen > Berichtsvorlagen und wählen Sie Neu > Bericht.
Füllen Sie die folgenden Felder aus:
- Name: Geben Sie einen Namen ein, z.B.
Leistungsliste nach Phasen - Fuer Datentyp: Unser Bericht soll auf Rechnungen ausgeführt werden können. Deshalb klicken Sie hier auf die drei Punkte und wählen
Rechnung. - Testdaten: Damit Sie den Report während des Erstellens direkt testen können, geben Sie hier eine bestehende Rechnung an. Wählen Sie eine Rechnung, die Leistungen in verschiedenen Phasen zugeordnet hat. Ziehen Sie die Rechnung mit Drag-and-Drop in dieses Testdatenfeld.
Dann klicken Sie auf den Button bearbeiten... Es öffnet sich der Bericht-Designer
Datenquellen erstellen
Hauptdatenquelle
- Wechseln Sie in den Bereich Daten.
- Hier befindet sich nun bereits eine vordefinierte Datenquelle. Diese bezieht sich auf die Rechnungsdaten und kann so belassen werden.
- Sie müssen nun jedoch für diese Datenquelle noch die Felder einrichten, auf welche wir zugreifen wollen. Klicken Sie dehalb mit der rechten Maustaste in den Bereich Felder der Datenquelle. In der nun erscheinenden Auswahl wählen Sie
Neu. Hier muss nun jeweils derAlias(= Name des Datenfeldes) und dieExpressiondes Datenfeldes ausgefüllt werden. - Als erstes wollen wir ein Feld einrichten, welches die Rechnungsnummer enthält. Geben Sie hierzu als Alias
Rechnungsnummerund als Expressionnummerein. - Sie können dies nun für folgende Felder wiederholen:
Bedeutung
Alias
Expression
Name des Projektes der Rechnung
Projektname
projekt.code
Betreff des Rechnungsprojekts
Betreff
projekt.betreffend
Rechnungsdatum
Datum
datum
Währung der Rechnung
Währung
waehrung.bezeichnung
Summe Aufwand der Leistungen
SummeAufwände
leistungen.minutenext->sum
Summe Honorare der Leistungen
SummeHonorare
leistungen.wertext->sum
Unterdatenquelle
- Sie haben nun die Datenquelle für die Rechnung eingerichtet. Wir benötigen nun noch eine Datenquelle für die Leistungen, welche der Rechnung zugeordnet sind. Wählen Sie hierzu im Menü
Datei > Neu. Die Box für die neue Datenquelle wird nun dargestellt. - Als erstes müssen Sie die Datenquelle definieren. Klicken Sie hierzu auf den Button
bearbeiten..in der neuen Box. Als Name geben SieLeistungenein. Da die Datenquelle sich auf die vorher erstellte Rechnungs-Datenquelle bezieht, wählen Sie unter Master den EintragListe(der Name der Rechnungs-Datenquelle). - Nun wird's etwas kompliziert. Die Rechnung kann wie bereits erwähnt offene und verrechnete Leistungen haben. Die OCL-Expression, welche nun ausgehend von einer bestimmten Rechnung alle zugeordneten Leistungen selektiert lautet:
if verrechnet then leistungen->oclasType(VerrechneteLeistung)->orderby(phase.code.asstring) else leistungen->oclasType(OffeneLeistung)->orderby(phase.code.asstring) endifIn obiger Expression haben wir die Leistungen zusätzlich noch nach Phase sortiert. Dies ist notwendig, da später die Leistungsliste nach Phasen sortiert ausgegeben werden soll.
- Sie haben nun die Datenquelle definiert. Wie im Beispiel oben, werden jetzt noch Felder erfasst:
Bedeutung
Alias
Expression
Datum der Leistung
Datum
datum
Bearbeiter
Bearbeiter
if oclIsTypeOf(OffeneLeistung) then oclAsType(OffeneLeistung).bearbeiter.name else oclAsType(VerrechneteLeistung).bearbeiter.name endif
Tätigkeit
Tätigkeit
text
Aufwand
Aufwand
minutenext
Externer Ansatz
Ansatzext
ansatzext
Honorar
Wertext
wertext
Phase
Phase
if oclIsTypeOf(OffeneLeistung) then oclAsType(OffeneLeistung).phase else oclAsType(VerrechneteLeistung).phase endif
Name der Phase
Phasencode
if oclIsTypeOf(OffeneLeistung) then oclAsType(OffeneLeistung).phase.code else oclAsType(VerrechneteLeistung).phase.code endif Sie haben nun die Datenquellen für die Leistungliste erstellt.
Entwurf erstellen
Berichtskopf erstellen
- Wechseln Sie vom Datenbereich zurück in den Entwurfsbereich. Sie sehen nun die drei Bänder Kopf, Detailbereich und Fuss. Im Kopf wollen wir einige Daten zur Rechnung und zum Projekt der Rechnung ausgeben.
- Wählen Sie nun in der Werkzeugliste das Element
Textund klicken Sie in das Kopfband an den Ort, an welchem Sie den Titel platzieren möchten. Im Texteingabefeld in der Werkezugliste ersetzen Sie die BezeichnungVtcLabel1durch den TextLeistungsliste (nach Phasen). Sie können zudem den Text noch etwas grösser oder fettgedruckt darstellen. - Als gestalterisches Element wollen wir unter dem Titel eine horizontale Linie anbringen. Wählen Sie in der Werkzeugliste das Element
Linieund klicken Sie auf eine Position unter dem Titel.Es wird nun folgendes dargestellt:

- Sie können nun mit Klick auf die schwarzen Punkte (= Markierung) die Grösse ändern. Wenn Sie innerhalb der Markierung klicken und den Mausbutton gedrückt halten, können Sie die Linie verschieben und platzieren. Zudem können Sie mit
Ctrlund den Pfeil-Tasten pixelgenau verschieben. Platzieren Sie nun die Linie unter den oben erstellten Titel. - Wir wollen nun den Projektnamen unter der eben erstellten Linie darstellen. Wählen Sie hierfür das Element DBText und klicken Sie unter die Linie. Das Feld wird im Report dargestellt. Zudem können Sie oben in der Werkzeugleiste die Datenquelle (= Liste) und den Feldnamen (= Projektnamen) auswählen. Je nach Bedarf kann noch der Font, die Grösse und die Ausrichtung bestimmt werden.
- In der Werkzeugliste gibt es Funktionen, um Elemente aufeinander auszurichten:

Klicken Sie auf die oben erstellte Linie, damit sie markiert ist. Halten Sie zudem die 'Shift'-Taste und klicken Sie auf das eben erstellte Datenfeld. Klicken Sie nun in der Werkzeugliste auf das erste Element. Das markierte Datenfeld und die Liniewerden nun am linken Rand aufeinander ausgerichtet.
- Wir können nun den Listenkopf fertig stellen, in dem Sie Rechnungsnummer, Rechnungsdatum und Projektbeschrieb anfügen. Das Ganze kann dann etwa wie folgt aussehen:
- Sie haben nun den Titel des Reports erstellt. Damit dieser nur auf der ersten Seite gedruckt wird, klicken Sie mit der rechten Maustaste in den Kopf und schalten die Option
auf letzter Seite druckenaus.
Unterbericht erstellen
- Wählen Sie in der Werkzeugleiste das Element
Unterberichtund klicken sie in den oberen Teil des Detailbereiches. Der Unterbericht wird nun im Layout angezeigt. - In der Werkzeugleiste erscheint nun eine ComboBox, in welcher sie die Datenquelle für den Unterbericht auswählen können:

Wählen Sie die Datenquelle
Leistungen. - Im unteren Bereich des erhalten Sie nun einen Reiter, mit welchem Sie auf zwischen den einzelnen Reportbestandteilen (Hauptbericht und Unterberichten) umschalten können. Wechseln Sie nun auf den Unterbericht.
- Sie haben nun einen leeren Unterbericht, unterteilt in Titel, Detailbereich und Zusammenfassung, vor sich.
- Aufgrund der Zuordnung des Unterberichtes zur Datenquelle Leistungen ist definiert, dass der Detailbereich für jede Leistung der Rechnung 1 x komplett gedruckt wird. Sie möchten nun jedoch die Leistungen in Gruppen pro Phase zusammenlegen.
- Rufen Sie im Menü Bericht die Funktion Gruppen auf. Sie erhalten nun folgendes Fenster:

- Hier können Sie nun festlegen, auf Grund welches Feldes der Gruppenumbruch durchgeführt werden soll: Wählen Sie in der ComboBox
Leistungen.Phaseaus. Danach betätigen Sie den Button 'Hinzufügen'. - Es muss nun sichergestelllt sein, dass die Leistungen sortiert nach Phase auftreten. Dies haben Sie bereits erledigt, als die Datenquelle definiert wurde (mit dem OCL-Zusatz
->orderby(phase.code.asstring)). - Im Unterbericht wird nun ein Gruppenkopf und ein Gruppenfuss dargestellt.
- Erstellen Sie nun die Elemente in den Bändern des Unterbereichs. Hier ein Vorschlag für einen Unterbericht:
Folgende Elemente werden hier verwendet:
- Violett: Fixe Texte
- Gelb: Datenfelder
- Grau: Summierungen von Datenfeldern (Element DBCalc)
Die Bänder sind hier wie folgt definiert:
- Titel: Wird hier nicht verwendet. Würde der Titel verwendet, Würde eine einmalige Ausgabe zu Beginn des Unterberichtes erfolgen.
- Gruppenkopf: Dieser Teil wird jedes Mal gedruckt, wenn eine neue Gruppe beginnt.
- Detailbereich: Dieser Teil wird für jeden Record des Unterberichtes gedruckt. Da der Unterbericht auf der Datenquelle Leistungen beruht, erfolgt der Ausruck für jede der Rechnung zugeordneten Leistung.
- Gruppenfuss: Wird jeweils gedruckt, wenn eine Gruppe beendet wird.
- Zusammenfassung: Wir hier nicht verwendet. Dieser Teil würde einmal am Ende des Unterberichtes erfolgen.
| erstellt: | 03.12.2003 |
|---|---|
| geändert: | 07.04.2008 |
