Aggregate (Druckdesigner)
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)
dotnetcli
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
- TableName: bezeichnet den Namen der Tabelle
- FeldName: bezeichnet den Namen des Feldes, den für die Funktion angewendet werden soll
- Funktion: bezeichnet ein der möglichen Funktionen:
Min - Minimalwert
Max - Maximalwert
Sum - Summe
Avg - Durchschnittswert
Cnt – Anzahl der Datensätze im Bereich - IndexName: bezeichnet den Sortierungsnamen
- KeyFieldCount: gibt die Anzahl der Felder im Index an, die man nachfolgend für RangeStart / RangeEnd belegen will
- RangeStart: bezeichnet die Felder für den Bereichsanfang
- RangeEnd: bezeichnet die Felder für das Bereichsende
- 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:
dotnetcli
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
dotnetcli
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.
dotnetcli
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.
dotnetcli
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: