PANTHEON™ manual

 Categories
 PANTHEON Hilfe - Willkommen
[Reduzieren]PANTHEON
 [Reduzieren]Leitfäden für PANTHEON
  [Reduzieren]Leitfaden für PANTHEON
   [Reduzieren] Einstellungen
    [Vergrößern]Fächer
    [Vergrößern]Artikel
    [Vergrößern]POS
    [Vergrößern]Herstellung
    [Vergrößern]Personal
     Kalender
    [Vergrößern]Finanzen
    [Vergrößern]Zoll
    [Reduzieren]Programm
     [Vergrößern]Dokumenttypen
     [Reduzieren]Berichte in PANTHEON
       Einstellungen im Administrationspanel
      [Vergrößern]Berichte registrieren
       Druckvorschau
      [Vergrößern]Bericht Designer
      [Vergrößern]Berichte erstellen
      [Reduzieren]Gruppen und Aggregate
        Bericht mit Gruppen
        Gruppenmerkmale
        Zeilennummerierung
        Aggregatfunktionen
        Seiten- und Berichtsz totals
        Verwendung des "SysText" Objekts
        Mehrstufige Gruppierung
      [Vergrößern]Formatierung und Hervorhebung
       Verschachtelte Berichte (Unterberichte)
      [Vergrößern]Details zu Druckausgaben in PANTHEON
      [Vergrößern]Script
       Bericht Design Überlegungen
      Dokumenttexte
      Liefermöglichkeiten
     [Vergrößern]Kundenkarten
     [Vergrößern]Administrationspanel
     [Vergrößern]Dashboard-Komponenten
      Dashboard-Berichte
      Ad-hoc-Analyse
     [Vergrößern]ARES
      SQL-Editor
    [Vergrößern]Dokumentation
    [Vergrößern]Benutzer ändern
   [Vergrößern]Bestellungen
   [Vergrößern]Waren
   [Vergrößern]Herstellung
   [Vergrößern]POS
   [Vergrößern]Service
   [Vergrößern]Finanzen
   [Vergrößern]Personal
   [Vergrößern]Analytik
   [Vergrößern]Desktop
   [Vergrößern]Hilfe
   [Vergrößern]Nachrichten und Warnungen
   [Vergrößern]Zusätzliche Programme
   [Vergrößern]Alte Produkte
  [Vergrößern]Leitfaden für PANTHEON Einzelhandel
  [Vergrößern]Leitfaden für PANTHEON Vet
  [Vergrößern]Leitfaden für PANTHEON Farming
 [Vergrößern]Benutzerhandbücher für PANTHEON
[Vergrößern]PANTHEON Web
[Vergrößern]PANTHEON Granulate
[Vergrößern]Benutzerseite

Load Time: 750,0278 ms
print   |
Label

Bericht mit Gruppen

Bericht mit Gruppen

Im vorherigen Beispiel haben wir einen zweistufigen Bericht basierend auf den Daten aus zwei Tabellen erstellt. Ein weiterer Bericht, der gleich aussieht, kann in FastReport erstellt werden, diesmal basierend auf einem Datensatz, der aus einer verbundenen Abfrage erhalten wurde.

Um dies zu tun, wird eine SQL-Abfrage benötigt, die Daten aus beiden Tabellen zurückgibt und auf eine bestimmte Weise sortiert ist . In unserem Beispiel werden die Tabellen über das  "acSubject" Feld aus der Kunden- und das "acConsignee" Feld aus der Bestelltabelle verbunden. Die Abfrage könnte sein:

select *
from tHE_SetSubj, tHE_Order 
where tHE_SetSubj.acSubject = tHE_Order.acConsignee
order by tHE_SetSubj.acSubject

Die "order by" Zeile ist erforderlich, um die Datensätze nach dem Feld “acSubject” (Kunde) zu sortieren.

Wie kann ein mehrstufiger Bericht mit diesen Daten gestaltet werden? Es gibt ein spezielles Band, den “Gruppenheader”. Eine Bedingung (ein Datenbankfeldwert oder ein Ausdruck) wird für das Band festgelegt; das Band wird jedes Mal ausgegeben, wenn sich der Wert der Bedingung ändert. Das folgende Beispiel veranschaulicht dies.

Erstellen wir ein neues Projekt in Delphi und platzieren die Komponente “TfrxDlDBQuery”. Setzen Sie die Eigenschaften der neuen Komponente mit dem Namen "DlDBQuery​1" wie hier gezeigt:

SQL =

'select *
from tHE_SetSubj, tHE_Order       
where tHE_SetSubj.acSubject = tHE_Order.acConsignee
order by tHE_SetSubj.acSubject'

UserName = 'Gruppe'

Fügen Sie ein “Gruppenheader”-Band zum Bericht hinzu. Setzen Sie eine Bedingung (in diesem Fall das Datenfeld “Group.acSubject”) im Editor des “Gruppenheaders”:

Verknüpfen Sie auch das Datenband mit der “Gruppe” Datenquelle und arrangieren Sie einige Objekte wie gezeigt (beachten Sie, dass der Gruppenheader über dem Datenband platziert werden muss):

Das “Gruppenheader”-Band wird nur ausgegeben, wenn sich der Wert des Feldes, mit dem es verknüpft ist, ändert. Andernfalls wird das Datenband, das mit dem “Gruppen”-Datensatz verbunden ist, angezeigt. Wenn wir diesen Bericht mit dem zuvor erstellten Master-Detail-Bericht vergleichen, ist offensichtlich, dass die Bestellnummern überhaupt nicht sortiert sind. Dies kann leicht korrigiert werden, indem die 'order by'-Klausel der SQL-Abfrage geändert wird:

select *
from tHE_SetSubj, tHE_Order
where tHE_SetSubj.acSubject = tHE_Order.acConsignee
order by tHE_SetSubj.acSubject, tHE_Order.acKey

Berichte mit geschachtelten Gruppen können auf ähnliche Weise gestaltet werden. Die Tiefe der Verschachtelung von Gruppen ist unbegrenzt. Berichte, die Gruppen verwenden, haben einige Vorteile gegenüber Berichten des Master-Detail-Typs:

  • der gesamte Bericht benötigt nur einen Datensatz (Abfrage)
  • die Anzahl der Daten Gruppierungsebenen ist unbegrenzt
  • Daten sortieren wird möglich
  • optimale Nutzung der Datenbankressourcen (die Abfrage gibt nur einen Datensatz zur Ausgabe zurück, wobei die Filterung durch die Abfrage erfolgt).

Der einzige Nachteil ist die Notwendigkeit, Abfragen in der SQL-Sprache zu schreiben. Ein grundlegendes Wissen über SQL ist jedoch für jeden Programmierer, der mit Datenbanken arbeitet, praktisch obligatorisch.

 



Rate this topic
Was this topic usefull?
Comments
Comment will also bo visible in forum!