Durch aggregierte Daten können Sie eine Vielzahl an Einzelbeobachtungen in einem einzigen Wert zusammenfassen. Dies erreichen Sie über die die Funktion "Aggregate".

Aufruf (Beispielaufbau)

Aggregate("TableName"|"FeldName"|"Funktion"|"IndexName"|KeyFieldCount|"RangeStart"|"RangeEnd") 

Aufruf mit optionaler Filterbedingung (Beispielaufbau)

Aggregate("TableName"|"FeldName"|"Funktion"|"IndexName"|KeyFieldCount|"RangeStart"|"RangeEnd"|"[optionale Filterbedingung]")


Beschreibung Übergabewerte an die Funktion


  1. TableName: bezeichnet den Namen der Tabelle
  2. FeldName: bezeichnet den Namen des Feldes, den für die Funktion angewendet werden soll
  3. Funktion: bezeichnet ein der möglichen Funktionen:
    Min - Minimalwert
    Max - Maximalwert
    Sum - Summe
    Avg - Durchschnittswert
    Cnt – Anzahl der Datensätze im Bereich
  4. IndexName: bezeichnet den Sortierungsnamen
  5. KeyFieldCount: gibt die Anzahl der Felder im Index an, die man nachfolgend für RangeStart / RangeEnd belegen will
  6. RangeStart: bezeichnet die Felder für den Bereichsanfang
  7. RangeEnd: bezeichnet die Felder für das Bereichsende
  8. Optionale Filterbedingung: Es kann optional auch eine Filterbedingung auf echte Datenbankfelder angegeben werden


Hinweise zu Feld RangeStart und RangeEnd

Die Anzahl von RangeStart und RangeEnd Feld-Werten muss mit dem KeyFieldCount übereinstimmen:

  • D. h. bei KeyFieldCount = 1 ,muss …1|"RangeStart"|"RangeEnd") angegeben werden 
  • D. h. bei KeyFieldCount = 2 ,muss …2|"RangeStart"|"RangeStart2"|"RangeEnd"|"RangeEnd2") angegeben werden 
  • usw.

Beispiele:

Sie möchten die Anzahl der Vorgänge in der Vorgangsübersicht einer Adresse ausweisen

Diese Ausweisung erhält man über:

External$('Aggregate( "Vorgang"|"AdrNr"|"Cnt"|"AdrNr"|1|" «AdrNr»"|"«AdrNr»")')


Das Feld „SaldoBet" aus der Table „BuchungenLohn" wird aufsummiert, wobei die Datensätze über den Index JPKtoNr eingeschränkt werden

External$('Aggregate("BuchungenLohn"|"SaldoBet"|"Sum"|"JPKtoNr"|3|"Year(BereichDate)"|"Month(BereichDate)"|"LBK.LAKtoNrSonstige"|"Year(BereichDate)"|"Year(BereichDate)"|"Month(BereichDate)"|"LBK.LAKtoNrSonstige"|"Year(BereichDate)"|"Month(BereichDate)"|"LBK.LAKtoNrSonstige")')

Sie möchten im Druck Designer eine Aggregate Funktion nutzen und neben dem Range noch eine Filter-Bedingung auf ein Datenbankfeld setzen

Fester Text als Vergleichswert:

In diesem Beispiel prüft die Filterbedingung auf den festen Vergleichswert: "Genehmigt" in Selektionsfeld 4.

External$('Aggregate("Anschriften"|"AdrNr"|"CNT"|"AdrNrAnsNr"|"1"|AktVog.AdrNr|AktVog.AdrNr|"Sel4=`Genehmigt`")')

Variable als Vergleichswert:

In diesem Beispiel prüft die Filterbedingung auf die Variable: AktVog.Bez aus der Variablen-/Feld-Liste des Druck Designers in Selektionsfeld 4.

External$('Aggregate("Anschriften"|"AdrNr"|"CNT"|"AdrNrAnsNr"|"1"|AktVog.AdrNr|AktVog.AdrNr|"Sel4=`"AktVog.Bez"`")')


Beachten Sie:

Da es in diesem Beispiel gewünscht ist, den Inhalt der Variablen zu übergeben, muss der vorhergehende String abgeschlossen werden.

Da im Filter ein String-Vergleich beabsichtigt ist, muss ein schräg abfallender, kurzer Strich (Gravis) am Anfang und am Ende der Variable eingefügt sein.

Zur Verdeutlichung finden Sie an dieser Stelle noch einmal eine Hervorhebung in einem Ausschnitt aus obenstehender Formel:

 

  • No labels