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

  1. Wechseln Sie in den Bereich Daten.
  2. Hier befindet sich nun bereits eine vordefinierte Datenquelle. Diese bezieht sich auf die Rechnungsdaten und kann so belassen werden.
  3. 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 der Alias (= Name des Datenfeldes) und die Expression des Datenfeldes ausgefüllt werden.
  4. Als erstes wollen wir ein Feld einrichten, welches die Rechnungsnummer enthält. Geben Sie hierzu als Alias Rechnungsnummer und als Expression nummer ein.
  5. 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

  1. 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.
  2. Als erstes müssen Sie die Datenquelle definieren. Klicken Sie hierzu auf den Button bearbeiten.. in der neuen Box. Als Name geben Sie Leistungen ein. Da die Datenquelle sich auf die vorher erstellte Rechnungs-Datenquelle bezieht, wählen Sie unter Master den Eintrag Liste (der Name der Rechnungs-Datenquelle).
  3. 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) endif

    In 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.

  4. 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

  1. 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.
  2. Wählen Sie nun in der Werkzeugliste das Element Text und klicken Sie in das Kopfband an den Ort, an welchem Sie den Titel platzieren möchten. Im Texteingabefeld in der Werkezugliste ersetzen Sie die Bezeichnung VtcLabel1 durch den Text Leistungsliste (nach Phasen). Sie können zudem den Text noch etwas grösser oder fettgedruckt darstellen.
  3. Als gestalterisches Element wollen wir unter dem Titel eine horizontale Linie anbringen. Wählen Sie in der Werkzeugliste das Element Linie und klicken Sie auf eine Position unter dem Titel.

    Es wird nun folgendes dargestellt:

    Linie

  4. 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 Ctrl und den Pfeil-Tasten pixelgenau verschieben. Platzieren Sie nun die Linie unter den oben erstellten Titel.
  5. 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.
  6. In der Werkzeugliste gibt es Funktionen, um Elemente aufeinander auszurichten:

    Ausrichtungsleiste

    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.

  7. 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:

    berichtskopf.gif

  8. 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 drucken aus.

Unterbericht erstellen

  1. Wählen Sie in der Werkzeugleiste das Element Unterbericht und klicken sie in den oberen Teil des Detailbereiches. Der Unterbericht wird nun im Layout angezeigt.
  2. In der Werkzeugleiste erscheint nun eine ComboBox, in welcher sie die Datenquelle für den Unterbericht auswählen können:

    Datenauswahl

    Wählen Sie die Datenquelle Leistungen.

  3. 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.
  4. Sie haben nun einen leeren Unterbericht, unterteilt in Titel, Detailbereich und Zusammenfassung, vor sich.
  5. 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.
  6. Rufen Sie im Menü Bericht die Funktion Gruppen auf. Sie erhalten nun folgendes Fenster:

    Gruppenfenster

  7. Hier können Sie nun festlegen, auf Grund welches Feldes der Gruppenumbruch durchgeführt werden soll: Wählen Sie in der ComboBox Leistungen.Phase aus. Danach betätigen Sie den Button 'Hinzufügen'.
  8. 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)).
  9. Im Unterbericht wird nun ein Gruppenkopf und ein Gruppenfuss dargestellt.
  10. Erstellen Sie nun die Elemente in den Bändern des Unterbereichs. Hier ein Vorschlag für einen Unterbericht:

    unterberichtsfelder.gif

    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.

03.12.2003 | 07.04.2008