Modifikatoren für Auswahlformeln mit Funktionen für Auswahlformeln
Manchmal müssen Sie eine Reihe von Feldwerten mit einer verschachtelten Auswahlfunktion definieren. Beispiel: Sie möchten alle Kunden auswählen, die ein spezifisches Produkt gekauft haben, ohne das Produkt auszuwählen.
In solchen Fällen verwenden Sie die Elementsatzfunktionen P() und E(). Diese geben die Elementsätze möglicher Werte bzw. ausgeschlossener Werte eines Feldes zurück. Innerhalb der Klammern können Sie das betreffende Feld und eine Auswahlformel, die den Umfang definiert, angeben. Hier ein Beispiel:
P({1<Year = {2021}>} Customer)
Damit wird der Satz Kunden zurückgegeben, die im Jahr 2021 Transaktionen hatten. Dies können Sie dann in einem Modifikator für Auswahlformeln verwenden. Hier ein Beispiel:
Sum({<Customer = P({1<Year = {2021}>} Customer)>} Amount)
Mit dieser Auswahlformel werden diese Kunden ausgewählt, aber die Auswahl wird nicht auf 2021 beschränkt.
In anderen Ausdrücken können diese Funktionen nicht eingesetzt werden:
Zudem können nur natürliche Sätze innerhalb der Elementsatzfunktionen verwendet werden. Ein natürlicher Satz bezeichnet einen Datensatz, der durch einen einfachen Auswahlvorgang definiert werden kann.
Ein durch {1-$} angegebener Satz kann beispielsweise nicht immer durch eine Auswahl definiert werden und ist somit kein natürlicher Satz. In nicht natürlichen Sätzen geben diese Funktionen unerwartete Ergebnisse zurück.
Beispiele: Diagrammformeln für Modifikatoren für Auswahlformeln mit Funktionen für Auswahlformeln
Beispiele | Results |
---|---|
sum( {$<Customer = P({1<Product={'Shoe'}>} Customer)>} Sales ) |
Liefert den Umsatz für die aktuelle Auswahl, jedoch nur für die Kunden, die das Produkt 'Shoe' bereits gekauft haben. Die Statusfunktion P() liefert die wählbaren Werte des Felds "Kunde". Diese sind bestimmt durch die Auswahl des Werts 'Shoe' im Feld Product. |
sum( {$<Customer = P({1<Product={'Shoe'}>})>} Sales ) |
Wie oben. Enthält das Argument der Statusfunktion keinen Feldnamen, liefert die Funktion alle wählbaren Werte der in der Auswahlformel angegebenen Felder. |
sum( {$<Customer = P({1<Product={'Shoe'}>} Supplier)>} Sales ) |
Liefert den Umsatz für die aktuelle Auswahl, jedoch nur für die Kunden, die das Produkt 'Shoe' bereits geliefert haben. In diesem Fall ist der Kunde also auch ein Lieferant. Die Statusfunktion P() liefert die wählbaren Werte des Felds "Lieferant". Diese sind bestimmt durch die Auswahl des Werts 'Shoe' im Feld Product. Diese Lieferanten werden im Feld Customer ausgewählt. |
sum( {$<Customer = E({1<Product={'Shoe'}>})>} Sales ) |
Liefert den Umsatz für die aktuelle Auswahl, jedoch nur für die Kunden, die das Produkt 'Shoe' noch nie gekauft haben. Die Statusfunktion E() liefert die ausgeschlossenen Werte des Felds "Kunde". Diese sind bestimmt durch die Auswahl des Werts 'Shoe' im Feld Product. |