GEVAS-Professional MultiStat Report Monatsstatistik

Aus GEVITAS
Wechseln zu: Navigation, Suche

1 Allgemeines

In Bearbeitung!

Hier finden Sie Tipps zum Erstellen eines Reports für eine Monatsstatistik für GEVAS-Professional MultiStat.

Bitte beachten Sie auch die Hinweise im Artikel CrystalReports: Empfehlenswerte Optionen.

2 Die Auswertung "Monatsstatistik"

In der Monatsstatistik sollen alle Einkäufe (Neukäufe), Verkäufe, Ausgänge und Eingänge aller gespeicherten Filialen in der Summe pro Lager aufgeführt werden. Grob soll das so aussehen:

Monatsstatistik (MONAT IM KLARTEXT) (JAHR)

                    Lieferscheine   Positionen   Stückzahl   Gesamtwert
Lager A                   7             22          210       2.170,00
Lager B                  10             32          254       3.189,00

usw.

2.1 Die Struktur des Reports (Berichts)

Normalerweise besteht ein Bericht aus den Bereichen

  • Berichtskopf für die erste Seite
  • Seitenkopf für alle Seiten
  • Details mit den eigentlichen Daten, z.B. den Verkaufspositionen, Eingängen oder Ausgängen
  • Seitenfuss für alle Seiten, z.B. mit der Seitennummer, Überträge usw.
  • Berichtsfuss für die letzte Seite, z.B. für Gesamtsummen

Die Besonderheit ist, dass in diesem Bericht mehrere Lager untereinander angesprochen werden sollen. Im Detailsbereich müssen also Eingänge, Ausgänge, Einkäufe und Verkäufe stehen, summiert nach Lager. Würde man diese Tabellen einfach in den Detailbereich platzieren, kämen die Daten gemischt an.

Die Lösung des Problems sind Unterberichte:

Man kann in einen Bericht weitere Berichte einfügen, sog. Unterberichte. Diese verhalten sich wie "normale" Berichte. Sie sind aber unabhängig vom Hauptbericht, können also eigene Datentabellen ansprechen. Mit einer Ausnahme: Ein Unterbericht ist immer mit einem oder mehreren Datenfelder des Hauptberichts verknüpft!

Beispiel:

BeispielberichtMonatsstatistik SchematischeDarstellung.jpg

Der Detailsbereich ist unterteilt in mehrere Abschnitte (Details A, Details B usw.).

In Details A steht das Feld {FILIALEN.FILIALE}. Das bedeutet, dass in Details A alle Filial-Kurznamen aufgelistet werden. Dieser Bereich ist jedoch unterdrückt! Er dient nur dazu, die Filialen durchzulaufen und die Filial-Namen an die Unterberichte weiterzugeben!

Das geht dann also so:

  • Berichtskopf: Eingabe Jahr und Monat
  • Filiale A (Details A, unterdrückt)
    • Unterbericht Filiale A Eingang Jahr und Monat
    • Unterbericht Filiale A Ausgang Jahr und Monat
    • Unterbericht Filiale A Einkauf Jahr und Monat
    • Unterbericht Filiale A Verkauf Jahr und Monat
  • Filiale B (Details A, unterdrückt)
    • Unterbericht Filiale B Eingang Jahr und Monat
    • Unterbericht Filiale B Ausgang Jahr und Monat
    • Unterbericht Filiale B Einkauf Jahr und Monat
    • Unterbericht Filiale B Verkauf Jahr und Monat

usw.

3 Bericht erstellen

3.1 Neuen Bericht anlegen

Öffnen Sie CrystalReports und legen einen neuen Bericht an:

BeispielberichtMonatsstatistik Bericht Neu 1.jpg

Danach werden Sie nach der Datenbankverbindung gefragt. Doppelklicken Sie auf die richtige Datenbankverbindung unter Meine Verbindungen. Beispiel:

Datei:BeispielberichtMonatsstatistik Bericht Neu 2.jpg

  • Wenn Sie noch keine Verbindungen haben, müssen Sie diese über Neue Verbindung herstellen erstellen.

Danach werden Sie u.U. nach dem Kennwort für den Datenbank-Zugang gefragt. Dieses erhalten Sie von Ihrem SQL-Datenbank-Administrator.

Doppelklicken Sie auf den Baum Tabellen, bis die Tabellennamen der Datenbank aufgelistet werden. Wählen Sie dann die Tabelle FILIALEN aus:

BeispielberichtMonatsstatistik Bericht Neu 4.jpg

3.2 Die Datenbank-Tabelle im Hauptbericht

Fügen Sie dann das Feld Filiale in die Liste rechts ein:

BeispielberichtMonatsstatistik Bericht Neu 5.jpg

Das ist das einzige Feld, das wird derzeit benötigen! Sie können deshalb den Bericht mit der Schaltfläche Ende erzeugen.

Danach wird ein Grundgerüst des Berichts angezeigt, das noch ziemlich dürftig aussieht. Deshalb ist der nächste Schritt die Formatierung des Berichts.

3.3 Die Formatierung

Zuerst sollten Sie mit Datei⇒Seite einrichten... das gewünschte Format der Seite festlegen, am Besten Querformat.

3.4 Führungslinien

Sie sollten Führungslinien für den Report festlegen:

BeispielberichtMonatsstatistik Fuehrungslinien.jpg

Dies erleichtert es, die Felder, die untereinander liegen, exakt zu positionieren.

Wenn die Unterberichte ganz links positioniert sind, kann man auch in diesen Unterberichten die Führungslinien entsprechend setzen:

BeispielberichtMonatsstatistik Fuehrungslinien Unterbericht.jpg

4 Der Berichtskopf

Im Berichtskopf stehen die Überschriften und ggf. Grafiken für die erste Seite. Darüberhinaus gibt es aber ein paar Besonderheiten.

BeispielberichtMonatsstatistik Berichtskopf.jpg

4.1 Parameterfelder für die Auswahl Jahr/Monat

Da sich der Bericht auf ein bestimmtes Jahr und einen bestimmten Monat beziehen soll, muss man den Anwendern die Möglichkeit schaffen, diese auszuwählen. Das geht am Einfachsten über sog. Parameterfelder.

  • Reports, die für die Auswertungsseite von MultiStat gemacht werden, benötigen keine Parameterfelder! Diese Reports müssen einen Druckfilter mit festgelegten Variablen (Formeln) haben, der die Daten filtert. Siehe GEVAS-Professional MultiStat Report-Filter.

Wenn ein Parameterfeld in einem Bericht steht (sinnvollerweise im Berichtskopf), so wird beim Ausführen des Reports ein Dialogfenster eingeblendet, in dem der/die Anwender/in nach dem gewünschten Wert gefragt wird. Parameterfelder werden im Feld-Explorer (Baum rechts) über die rechte Maustaste und Neu angelegt.

In unserem Fall benötigen wird zwei Parameterfelder: Eins für die Auswahl des Jahres, eins für die Auswahl des Monats.

4.1.1 Parameterfeld "Jahr"

BeispielberichtMonatsstatistik Parameterfeld Jahr.jpg

Die Einstellungen:

Einstellungen Beschreibung
Name Geben Sie "Jahr" ein.
Typ Da es um Jahreszahlen geht, wählen Sie "Zahl".
Werteliste Wählen Sie "Statisch" aus. Das bedeutet, dass die Werteliste (die Auswahlliste der möglichen Eingaben) mit festen Werten gefüllt wird, in unserem Fall die möglichen Jahreszahlen. In der Tabelle "Wert" können Sie die möglichen Werte eingeben.
Wertoptionen Hier ist vor Allem der Standardwert wichtig.

Legen Sie nach diesem Schema auch ein Parameterfeld für die Auswahl des Monats an.

Ziehen Sie dann die beiden Parameterfelder in den Berichtskopf. Sie werden dann beim Starten des Berichts aktiv und fragen nach dem gewünschten Jahr und Monat.

4.2 Monat im Klartext ausgeben

Jahr und Monat werden auch gedruckt. Das ist soweit okay, aber schöner wäre es, wenn der Monat im Klartext ausgedruckt werden würde. Deshalb fügen wird noch eine Formel "MonatText" ein. Klicken Sie dazu im Feld-Explorer mit der rechten Maustaste auf Formelfelder⇒Neu.... Das geben Sie diese Formel ein:

MonthName ({?Monat})

Die Formel benutzt die eingebaute Funktion MonthName, die den Monatsnamen im Klartext zurückliefert. Der Funktion wird das Parameterfeld {?Monat} übergeben, also die vom Benutzer angegebene Monats-Nummer.

Weil der Monat nun im Klartext ausgegeben wird, können wir das Parameterfeld {?Monat} unterdrücken. Klicken Sie dazu mit der rechten Maustaste auf das Parameterfeld im Berichtskopf und wählen Feld formatieren... und auf der Seite Allgemein markieren Sie die Option ☑ Unterdrücken.

5 Der Seitenkopf

Jetzt wird's erst einmal einfacher: Der Seitenkopf beinhaltet nur die Überschriften, also Textfelder:

BeispielberichtMonatsstatistik Seitenkopf.jpg

Beachten Sie, dass die Überschriftsfelder (Textfelder) genau links und rechts an den Führungslinien "hängen"! Zudem sind sie zentriert formatiert.

6 Der Detailbereich

Hier wird es etwas anspruchsvoller! Der Detailsbereich ist unterteilt in mehrere Abschnitte (Details A, Details B usw.).

6.1 Der Detailbereich A

In Details A steht das Feld {FILIALEN.FILIALE}. Das bedeutet, dass in Details A alle Filial-Kurznamen aufgelistet werden. Dieser Bereich ist jedoch unterdrückt! Er dient nur dazu, die Filialen durchzulaufen und die Filial-Namen an die Unterberichte weiterzugeben! Siehe oben Struktur des Reports.

BeispielberichtMonatsstatistik Detailbereich A.jpg

Zum Unterdrücken des Bereichs klicken Sie links auf Details A mit der rechten Maustaste und wählen Sektionsassistent...". Dort aktivieren Sie die Option Unterdrücken:

BeispielberichtMonatsstatistik Detailbereich A Sketionsassi.jpg

6.2 Der Detailbereich B

In Details B stehen keine Datenbankfelder, sondern ein Unterbericht! Dieser Unterbericht summiert die gewünschten Werte aus der Eingangstabelle der Statistik.

  • Um einen Unterbericht zu erstellen, klicken Sie im Menü auf Einfügen ⇒ Unterbericht.
  • Geben Sie dem Unterbericht einen aussagekräftigen Namen.
  • Klicken Sie auf die Schaltfläche Berichtsassistent..., um den Bericht zu erstellen.
  • Danach geht alles wie beim Erstellen eines neuen Berichts:
    • Wählen Sie die Datenquelle (Datenbank) aus.
    • Wählen Sie die benötigten Tabellen und Felder aus. In unserem Fall sind das die Tabellen MULTISTAT_EINGANG und FILIALEN.
    • Verknüpfen Sie die Tabellen so:
      BeispielberichtMonatsstatistik Detailbereich A Unterbericht TabellenVerknuepfungen.jpg
    • Verknüpfen Sie die Felder so, wie unten beschrieben.
    • Erzeugen Sie den Unterbericht mit der Schaltfläche Ende.

Wenn Sie sich den Unterbericht ansehen wollen, doppelklicken Sie auf ihn im Detailbereich. Der Unterbericht wird in einem neuen Register geöffnet:

BeispielberichtMonatsstatistik Detailbereich A Unterbericht.jpg

Der Berichtskopf wird nicht benötigt, es ist unterdrückt.

Im Detailsbereich stehen die Felder aus der Eingangstabelle MULTISTAT_EINGANG. Würde man den Unterbericht einfach so ausführen, würden alle einzelnen Datensätze dieser Tabelle aufgeführt werden. Das wollen wir jedoch nicht!

6.2.1 Filterung der Daten

Weil ja nur die Daten einer bestimmten Jahres/Monats einer bestimmten Filiale aufgeführt werden sollen, hat der Unterbericht Verknüpfungen zum Hauptbericht:

BeispielberichtMonatsstatistik Detailbereich A Unterbericht Verknuepfungen.jpg

Diese Verknüpfungen werden beim Anlegen des Unterberichts festgelegt:

Das Parameterfeld ?Jahr wurde mit dem Feld MULTISTAT_EINGANG.JAHR verknüpft. Somit werden nur noch die Daten ausgewählt, die aus dem angegebenen Jahr stammen!

Das Parameterfeld ?Monat wurde mit dem Feld MULTISTAT_EINGANG.MONAT verknüpft. Somit werden nur noch die Daten ausgewählt, die aus dem angegebenen Monat des angegebenen Jahres stammen!

Das Datenfeld MULTISTAT_EINKAUF.FILIALE wurde mit dem Feld FILIALEN.FILIALE des Hauptberichts verknüpft. Somit werden nur noch die Daten der Filiale ausgewählt, die gerade im Hauptbericht stehen. Da der Hauptbericht alle Filialen nacheinander abruft und zu jeder Filiale den Unterbericht, wird der Unterbericht für jede Filiale einmal ausgeführt!

6.2.2 Summierung der Daten

Eigentlich wollen wir ja nicht die einzelnen Datensätze des Eingangs, sondern nur die Summen. Deshalb werden für jede Spalte Summenfelder in den Berichtsfuss eingefügt, sog. Gruppenergebnisse.

  • Um ein Gruppenergebnis einzufügen, klicken Sie mit der rechten Maustaste auf das gewünschte Feld im Detailbereich und wählen aus dem Menü Einfügen⇒Gruppenergebnis.
  • Es werden nun eine Reihe von Optionen angeboten:

CrystalReport Tipps Gruppensummen Optionen.jpg

Es gibt eine Viezahl von Möglichkeiten, ein Gruppenergebnis zu berechnen. Die zwei wichtigsten sind:

Summe: Es wird die Summe berechnet, die in den Feldern stehen. Alle Felder werden also addiert.

Anzahl: Es wird die Anzahl der vorhanden Datensätze berechnet. Alle Felder werden also gezählt.

  • Für das Feld MULTISTAT_EINKAUF.LFDNR_IM_MONAT wird Anzahl verwendet. Wir wollen ja wissen, wie viele Vorgänge es gab!
  • Für das Feld MULTISTAT_EINKAUF.ANZAHL_POS wird Summe verwendet, weil ja die Summe der Positionen ausgewiesen werden soll! Dasselbe gilt auch für MULTISTAT_EINKAUF.GES_MENGE und MULTISTAT_EINKAUF.GES_PREIS!


6.2.3 Der Berichtsfuss des Unterberichts

Hier stehen schon die Summenfelder, die oben eingefügt wurden. Zusätzlich fügen wir noch ein Textfeld ein. Hier schreiben wir das Wort "Eingang" (um den geht es bei diesem Unterbericht ja). Dahinter ziehen wir mit der Maus aus dem Feld-Explorer das Datenbankfeld FILIALEN.BEZEICHNUNG. Damit wird die Klartext-bezeichnung gedruckt und nicht nur der kurze Filial-Name!

7 Links