Menü

Gruppen über den SQL-Server

Zurück | Ebene zurück

 

Allgemeines

Die Methode der Berechnung von Gruppen im SQL-Server eignet sich besonders dann, wenn man über die Gruppierung mittels SQL-Befehlen viele Daten erst gar nicht aus der Datenbank laden möchte, sondern nur die Summen erhalten will. Dies spart nicht nur Zeit, sondern auch Bandbreite. Besonders interessant ist dies z.B. bei Übertragung der Daten über ISDN oder auf ein mobiles PDA-Gerät, wie IPAQ von COMPAQ.
Im Gegensatz dazu kann man im Formular eine Gruppierung durchführen. Hierbei werden dann zunächst alle Daten vom Server abgerufen und dann von EULANDA© im Formular aufbereitet.

Um die Gruppierung und Berechnung der Zwischensummen vom SQL-Server erledigen zu lassen, müssen alle benötigten Angaben bereits beim Erstellen der Datenquelle definiert werden, denn beim Aufruf des Formulars müssen die gewünschten Daten schon verfügbar sein. Die Zwischensummen sind damit Bestandteil der Datenquelle und können mit den Standard-Datenbankfeldern, DBText, auf der Karteikarte „Entwurf“ auf dem „Detail-Band“ positioniert werden.
 

Vorteile:

  • Schnell
  • Es werden keine unnötigen Daten generiert
  • Bandbreite wird gespart
  • Einfacher Aufbau im Layout

Nachteile:

  • Details können nicht ausgegeben werden
  • Aufwendigere Definition der Datenquelle

 

Hierzu ein kleines Beispiel:

Es soll die Summe der Verkaufsbruttopreise ( VkBrutto) aller Aufträge ausgegeben werden, und zwar mit Zwischensummen bei jedem wechselnden Kunden. Hierzu wird der Matchcode verwendet, der für die Adressen eindeutig ist.

Kunde VkBrutto gesamt
BOND 6000,00 EUR
BARBAR 8000,00 EUR

Gesamt      

14000,00 EUR

 

So könnte der Ausdruck aussehen:

Ausdruck über Gruppen, die im SQL-Server gebildet wurden

 

Für die Gruppenbildung sind folgende Schritte notwendig:
 

1. Neuen Bericht anlegen.

Zunächst einen neuen Bericht im Bereich „Aufträge“ anlegen. Neue Berichte haben automatisch die Eigenschaft, dass sie über die Karteikarte „Daten“ verfügen.

2. Die Datenquelle anlegen

Nun muss eine neue Datenquelle definiert werden. Hierbei sind folgende Punkte zu beachten:

  • Nur Felder auswählen, die man benötigt, also hier nur „MATCH“, denn weitere Felder würden mehrfache Zwischensummen im SQL-Server erzeugen.
  • In der Datenquelle unter „Berechnungen“ lassen Sie die Summen über das Feld „VkBrutto“ berechnen.
  • Anschließend lassen Sie unter „Gruppen“ nach dem Feld „Match“ gruppieren. Haben Sie in der Feldauswahl mehr als den Match ausgewählt, so müssen diese Felder ebenfalls in die Gruppe genommen werden. Lediglich die Summenfelder werden nicht in die Gruppen aufgenommen – dies macht der SQL-Server automatisch.

3. Den Bericht definieren

Der Bericht ist nun sehr einfach. Wir brauchen lediglich im Detailbereich den Matchcode und die Summe zu positionieren; beides kann mit „DBText“-Elementen erfolgen. Im Titelband setzen wir einen normalen Text als Überschrift.

Definition im Layout

Hiermit ist der Bericht prinzipiell schon fertiggestellt. Werden neben dem Matchcode auch Anschriften usw. benötigt, so muss ein anderer Ansatz verwendet werden. Dieser ist im Abschnitt „Gruppierung über das Formular“ beschrieben.

Um den Bericht abzuschließen, fügen wir noch die Gesamtsumme hinzu. Dafür benötigen wir noch ein einfaches DBCalc-Element, mit dem wir die Summe aller Zwischensummen bilden. Am besten platzieren wir dieses im Band „Zusammenfassung“.

Positionierung der Gesamt-Summe

Der Bericht ist nun fertig gestellt. Dieser Bericht kann schnell erzeugt werden, da er nur wenige Daten über das Netzwerk transportieren muss. Die Hauptarbeit wird bei dieser Art Auswertung im SQL-Server durchgeführt.

Hinweis

Kreuztabellen sind eine besondere Form von Gruppierungen. Diese können beliebig viele Gruppen (Dimensionen) bilden und aussagekräftig darstellen.