Formel definieren (Dialogfeld) (Berichts-Generator 3.0)

Verwenden Sie das Dialogfeld "Formel definieren", um eine Formel oder ein neues Feld zu erstellen, das eine Formel enthält.

Das Dialogfeld enthält die Registerkarten Felder und Funktionen.

  • Mithilfe der Registerkarte Felder können Sie nach Feldern innerhalb des Berichtsmodells suchen, die in die Formel eingeschlossen werden sollen.

  • Mithilfe der Registerkarte Funktionen können Sie die Funktionen auswählen, die in der Formel verwendet werden sollen.

Optionen auf der Registerkarte 'Felder'

  • Entitäten
    Listet die Entitäten auf. Klicken Sie auf eine Entität, um ihre Felder in der Liste Felder anzuzeigen.

  • Felder
    Listet die Felder in den Entitäten auf. Sie können ein Feld in das Textfeld Formel ziehen oder auf das Feld doppelklicken, um es dem Textfeld Formel hinzuzufügen.

  • Neues Feld
    Klicken Sie auf diese Option, um ein neues Feld hinzuzufügen. Der Wert Neues <Entitätsname>-Feld wird unter Feldname angezeigt.

  • Feldname
    Geben Sie einen Namen für das neue Feld ein, das Sie erstellen.

  • Formel
    Hiermit erstellen und bearbeiten Sie die Formel.

  • Suchen
    Klicken Sie hier, um das Dialogfeld Suchen zu öffnen.

  • Erweiterter Modus
    Klicken Sie auf diese Option, um zusätzliche Beziehungen zwischen den Entitäten anzuzeigen. Diese Beziehungen ermöglichen Ihnen, komplexe Abfragen zu erstellen. Wenn Sie auf die Schaltfläche Erweiterter Modus klicken, werden drei zusätzliche Arten von Rollen angezeigt:

    • Umgekehrte Rollen. Umgekehrte Rollen zeigen die Beziehung zurück zu der Entität, von der Sie gerade gekommen sind.

    • Nachschlageentitäten. Eine Nachschlageentität ist eine Rolle, die nur ein relevantes Feld enthält.

    • Entitäten, die von den direkten Vorgängern der ausgewählten Entität erben, aber kein direkter Vorgänger der aktuellen Entität sind.

  • Hier aggregieren
    Wenn Sie auf einen im Textfeld Formel angezeigten Feldnamen doppelklicken, wird die Beziehung zwischen der primären Entität und der Entität des Felds angezeigt. Klicken Sie, um dem Ausdruck an einer beliebigen Stelle des Modellpfads ein Aggregat hinzuzufügen.

  • Kurztasten für Funktionen
    Klicken Sie hier, um der im Textfeld Formel angezeigten Formel einen Operator hinzuzufügen. Im Dialogfeld Formel definieren sind Kurztasten für die am häufigsten verwendeten Funktionen verfügbar. Sie können diese Operatoren jedoch auch aus der Registerkarte Funktionen auswählen. Es folgt eine Erklärung zu den einzelnen abkürzenden Funktionen.

    + Hiermit addieren Sie zwei Werte.

    - Subtrahieren eines Wertes von einem anderen.

    * Multiplizieren von zwei Werten.

    / Dividieren von zwei Werten.

    & Hiermit verketten Sie zwei Werte.

    ( Hiermit starten Sie eine Berechnung.

    ) Hiermit beenden Sie eine Berechnung.

  • Erweiterte Formel
    Wenn Sie auf einen im Textfeld Formel angezeigten Feldnamen doppelklicken, wird die Beziehung zwischen der primären Entität und der Entität des Felds angezeigt. Sie können an jeder beliebigen Stelle des Modellpfads einen Filter auf den Ausdruck anwenden.

    • Klicken Sie auf Kein Filter angewendet und anschließend auf Neuen Filter erstellen, um einen neuen Filter für das Feld zu erstellen.

    • Wenn das Feld bereits über einen Filter verfügt, klicken Sie auf den Filter und dann auf Filter bearbeiten.

    • Zum Entfernen eines vorhandenen Filters klicken Sie auf den Filter und dann auf Entfernen.

  • Diese Formel als neues <Entitätsname>-Feld speichern
    Aktivieren Sie das Kontrollkästchen, um anzugeben, dass die Formel als Feld hinzugefügt werden soll.

Optionen auf der Registerkarte 'Funktionen'

Im Folgenden werden die einzelnen in der Registerkarte Funktionen des Dialogfelds Formel definieren enthaltenen Funktionen beschrieben.

Aggregate

Verwenden Sie zum Zusammenfassen einer Reihe von numerischen Werten die folgenden Funktionen.

  • SUMME
    Gibt die Summe aller Werte innerhalb des Ausdrucks zurück.

    Syntax

    SUM(aggregate)

    SUMME kann nur mit Feldern verwendet werden, die numerische Werte enthalten. NULL-Werte werden ignoriert.

  • DURCHSCHNITT
    Gibt den Durchschnitt (das arithmetische Mittel) aller Werte ungleich NULL innerhalb des Ausdrucks zurück.

    Syntax

    AVERAGE(aggregate)

    DURCHSCHNITT kann nur mit Feldern verwendet werden, die numerische Werte enthalten. NULL-Werte werden ignoriert.

  • MAX
    Gibt den größten Wert im Ausdruck zurück.

    Syntax

    MAX(aggregate)

    Bei Zeichenspalten findet MAX den höchsten Wert gemäß der Sortierreihenfolge. NULL-Werte werden ignoriert.

  • MIN
    Gibt den kleinsten Wert im Ausdruck zurück.

    Syntax

    MIN(aggregate)

    Bei Zeichenspalten findet MIN den kleinsten Wert gemäß der Sortierreihenfolge. NULL-Werte werden ignoriert.

  • ANZAHL
    Gibt die Anzahl von Elementen ungleich NULL innerhalb einer Gruppe zurück.

    Syntax

    COUNT(aggregate)

    ANZAHL gibt immer einen Wert vom Int-Datentyp zurück.

  • ANZAHLUNTERSCHIEDL
    Gibt die Anzahl von unterschiedlichen Instanzen ungleich NULL eines Elements innerhalb einer Gruppe zurück.

    Syntax

    COUNTDISTINCT(aggregate)

  • STDABWEICHUNG
    Gibt die Standardabweichung von Werten ungleich NULL eines Elements zurück.

    Syntax

    STDEV(aggregate)

  • STDABWEICHUNGAUFFÜLL
    Gibt die Standardabweichung der Auffüllung von Werten ungleich NULL eines Elements zurück.

    Syntax

    STDEVP(aggregate)

  • VARIANZ
    Gibt die Varianz von Werten ungleich NULL eines Elements zurück.

    Syntax

    VAR(aggregate)

  • VARIANZAUFFÜLL
    Gibt die Auffüllungsvarianz von Werten ungleich NULL eines Elements zurück.

    Syntax

    VARP(aggregate)

Bedingt

Verwenden Sie zum Testen einer Bedingung folgende Funktionen.

  • FALLS
    Gibt einen Wert zurück, wenn Sie eine Bedingung angeben, die zu TRUE ausgewertet wird, und einen anderen Wert, wenn Sie eine Bedingung angeben, die zu FALSE ausgewertet wird.

    Syntax

    IF(condition, value_if_true, value_if_false)

    Die Bedingung muss ein Wert oder ein Ausdruck sein, der zu TRUE oder zu FALSE ausgewertet werden kann. Value_if_true steht für den Wert, der zurückgegeben wird, wenn die Bedingung TRUE ergibt. Value_if_false steht für den Wert, der zurückgegeben wird, wenn die Bedingung FALSE ergibt.

  • IN
    Bestimmt, ob ein Element zu einer Menge gehört.

    Syntax

    IN(item, set)

  • MEHRFACHBEDINGUNG
    Wertet eine Liste von Ausdrücken aus und gibt den Wert eines Ausdrucks zurück, der dem ersten Ausdruck in der Liste zugeordnet ist, der TRUE ergibt. Es können ein oder mehrere Bedingung/Wert-Paare angegeben werden.

    Syntax

    Switch(condition1, value1)

Konvertierung

Verwenden Sie die folgenden Funktionen, um einen Wert von einem Datentyp in einen anderen Datentyp zu konvertieren.

  • GANZEZAHL
    Konvertiert einen Wert in eine ganze Zahl.

    Syntax

    INT(value)

  • DEZIMAL
    Konvertiert einen Wert in eine Dezimalzahl.

    Syntax

    DECIMAL(value)

  • GLEITKOMMAZAHL
    Konvertiert einen Wert in einen Gleitkommazahl-Datentyp.

    Syntax

    FLOAT(value)

  • TEXT
    Konvertiert einen numerischen Wert in Text.

    Syntax

    TEXT(value)

Datum und Zeit

Verwenden Sie die folgenden Funktionen zum Anzeigen des Datums oder der Uhrzeit.

  • DATUM
    Gibt einen datetime-Wert für ein bestimmtes Jahr, einen Monat und einen Tag um 12:00:00 Uhr zurück.

    Syntax

    DATE(year, month, day)

  • NURDATUM
    Gibt das Jahr, den Monat und den Tag aus einem datetime-Wert zurück.

    Syntax

    DATEONLY(datetime)

  • DATUMZEIT
    Gibt das Jahr, den Monat, den Tag, die Stunde, die Minute und die Sekunde zurück.

    Syntax

    DATETIME(year, month, day, hour, minute, second)

  • JAHR
    Gibt das Jahr eines datetime-Wertes zurück.

    Syntax

    YEAR(datetime)

  • QUARTAL
    Gibt das Kalenderquartal aus einem datetime-Wert zurück.

    Syntax

    QUARTER(datetime)

  • MONAT
    Gibt den Monat aus einem datetime-Wert zurück.

    Syntax

    MONTH(datetime)

  • TAG
    Extrahiert den Tag aus einem datetime-Wert.

    Syntax

    DAY(datetime)

  • STUNDE
    Extrahiert die Stunde aus einem datetime-Wert.

    Syntax

    HOUR(datetime)

  • MINUTE
    Extrahiert die Minute aus einem datetime-Wert.

    Syntax

    MINUTE(datetime)

  • SECOND
    Extrahiert die Sekunde aus einem datetime-Wert.

    Syntax

    SECOND(datetime)

  • WOCHE
    Gibt den numerischen Wert für die Woche innerhalb des Kalenderjahres zurück.

    Syntax

    WEEK(datetime)

  • TAGDERWOCHE
    Gibt den Tag der Woche zurück, beginnend mit Montag. Montag = 1 bis Sonntag = 7.

    Syntax

    DAYOFWEEK(datetime)

  • JETZT
    Gibt das aktuelle Datum und die aktuelle Uhrzeit zurück.

    Syntax

    NOW( )

  • HEUTE
    Gibt das aktuelle Datum zurück.

    Syntax

    TODAY( )

  • DATUMSDIFFERENZ
    Gibt die Differenz zwischen Start-datetime und End-datetime zurück.

    Syntax

    DATEDIFF(interval, datetime, datetime)

  • DATUMADDIEREN
    Gibt einen datetime-Wert zurück, der das Ergebnis der Addition der angegebenen Anzahl von Zeitintervalleinheiten mit dem ursprünglichen datetime-Wert ist.

    Syntax

    DATEADD(interval, units, datetime)

Logische Operatoren

Verwenden Sie die folgenden Funktionen, um die Logik einer Bedingung zu testen.

  • UND
    Gibt TRUE zurück, wenn alle Argumente TRUE sind, und gibt FALSE zurück, wenn mindestens ein Argument FALSE ist.

    Syntax

    AND(logical, logical)

    Die Argumente müssen zu logischen Werten wie TRUE oder FALSE ausgewertet werden, oder die Argumente müssen Arrays oder Verweise mit logischen Werten sein. Wenn ein Array oder Verweisargument Text oder leere Zellen enthält, werden diese Werte ignoriert.

  • ODER
    Gibt TRUE zurück, wenn ein Argument TRUE ist, und gibt FALSE zurück, wenn alle Argumente FALSE sind.

    Syntax

    OR(logical, logical)

    Die Argumente müssen zu logischen Werten wie TRUE oder FALSE ausgewertet werden oder in Arrays oder Verweisen mit logischen Werten enthalten sein. Wenn ein Array oder Verweis Text oder leere Zellen enthält; werden diese Werte ignoriert.

  • NICHT
    Kehrt den Wert des Arguments um. Verwenden Sie NICHT, wenn Sie sicherstellen möchten, dass eine Klausel ungleich einem bestimmten Wert ist.

    Syntax

    NOT(logical)

    Wenn der Wert FALSE ist, gibt NICHT TRUE zurück; wenn der Wert TRUE ist, gibt NICHT FALSE zurück.

Mathematische Funktionen

Verwenden Sie die folgenden Funktionen, um numerische Werte zu bearbeiten.

  • MOD
    Gibt den Rest zurück, der nach der Division einer Zahl durch einen Divisor übrig bleibt. Der Divisor darf nicht 0 sein.

    Syntax

    MOD(number, divisor)

  • ABSCHNEIDEN
    Schneidet eine Zahl um die angegebene Anzahl von Stellen ab. Ist die Zahl positiv, wird sie rechts von der Dezimalstelle abgeschnitten. Ist die Zahl negativ, wird sie links von der Dezimalstelle abgeschnitten.

    Syntax

    TRUNC(number, digits)

  • RUNDEN
    Rundet eine Zahl auf eine angegebene Anzahl von Stellen.

    Syntax

    ROUND(number, digits)

    Ist die Anzahl der Stellen größer als 0 (Null), wird die Zahl auf die angegebene Anzahl von Dezimalstellen gerundet. Ist die Anzahl von Stellen 0, wird die Zahl auf die nächste ganze Zahl gerundet. Ist die Anzahl kleiner als 0, wird die Zahl links vom Dezimalkomma gerundet.

Operatoren

Arithmetische Operatoren

Verwenden Sie die folgenden Operatoren, um einfache mathematische Operationen wie Addition, Subtraktion und Multiplikation durchzuführen, Zahlen zu kombinieren und numerische Ergebnisse zu berechnen. Kurztasten für Funktionen enthält die am häufigsten verwendeten arithmetischen Operatoren.

  • + Addition
    Hiermit werden mindestens zwei Elemente zusammengefügt.

    Syntax

    Wert + Wert

  • - Subtraktion
    Hiermit wird ein Element von einem anderen Element subtrahiert.

    Syntax

    Wert - Wert

  • * Multiplikation
    Hiermit werden Elemente multipliziert.

    Syntax

    Wert* Wert

  • / Division
    Hiermit werden Elemente dividiert. Der Divisor darf nicht 0 sein.

    Syntax

    Wert / Divisor

  • - Negieren
    Hiermit wird das Vorzeichen des Wertes geändert.

    Syntax

    -Wert

  • ^ Potenzierung
    Hiermit wird ein Wert in eine Potenz erhoben (Potenzierung).

    Syntax

    Wert^Potenz

  • = Gleich
    Hiermit werden zwei Werte gleichgesetzt. TRUE, wenn value1 gleich value2 ist.

    Syntax

    value1= value2

  • <> Ungleich
    Hiermit wird angegeben, dass zwei Werte nicht identisch sind. TRUE, wenn value1 nicht mit value2 identisch ist.

    Syntax

    value1 <> value2

  • > Größer als
    Hiermit wird angegeben, dass ein Wert größer als ein anderer Wert ist. True, wenn Value1 größer als Value2 ist.

    Syntax

    value1 > value2

  • >= Größer als oder gleich
    Hiermit wird angegeben, dass ein Wert größer als oder gleich einem anderen Wert ist. TRUE, wenn value1 größer als oder gleich value2 ist.

    Syntax

    value1 >= value2

  • < Kleiner als
    Hiermit wird angegeben, dass ein Wert kleiner als ein anderer Wert ist. TRUE, wenn value1 kleiner als value2 ist.

    Syntax

    value1 < value2

  • <= Kleiner als oder gleich
    Hiermit wird angegeben, dass ein Wert kleiner als oder gleich einem anderen Wert ist. TRUE, wenn value1 kleiner als oder gleich value2 ist.

    Syntax

    value1 <= value2

Text

Verwenden Sie die folgenden Funktionen, um Text zu bearbeiten.

  • VERKETTEN (&)
    Fasst zwei Zeichenfolgen zusammen. Die zweite Zeichenfolge wird an die erste Zeichenfolge angefügt.

    Syntax

    string & string

  • SUCHEN
    Position der ersten Instanz einer Zeichenfolge.

    Syntax

    FIND(string, substring)

  • LINKS
    Gibt von links ausgehend die Zeichen einer Zeichenfolge zurück. Wenn Sie für das length-Argument innerhalb der Funktion einen Wert kleiner 0 angeben, ist das Verhalten nicht definiert.

    Syntax

    LEFT(string, length)

  • LÄNGE
    Gibt die Anzahl von Zeichen in einer Zeichenfolge zurück.

    Syntax

    LENGTH(string)

  • KLEINBUCHSTABEN
    Konvertiert eine Zeichenfolge von Großbuchstaben in Kleinbuchstaben.

    Syntax

    LOWER(string)

  • LSCHNEIDEN
    Gibt eine Zeichenfolge zurück, aus der die führenden Leerzeichen entfernt wurden.

    Syntax

    LTRIM(string)

  • ERSETZEN
    Gibt eine Zeichenfolge zurück, in der alle Instanzen einer Teilzeichenfolge durch eine andere Teilzeichenfolge ersetzt wurden.

    Syntax

    REPLACE(find, replace, string)

  • RECHTS
    Gibt von rechts ausgehend die Zeichen einer Zeichenfolge zurück. Wenn Sie für das length-Argument innerhalb der Funktion einen Wert kleiner 0 angeben, ist das Verhalten nicht definiert.

    Syntax

    RIGHT(string, length)

  • RSCHNEIDEN
    Gibt eine Zeichenfolge zurück, aus der die nachfolgenden Leerzeichen entfernt wurden.

    Syntax

    RTRIM(string)

  • TEXT
    Konvertiert einen numerischen Wert in eine Zeichenfolge.

    Syntax

    TEXT(value)

  • TEILZEICHENFOLGE
    Gibt eine Teilzeichenfolge innerhalb einer Zeichenfolge zurück. Wenn Sie für das length-Argument innerhalb der Funktion einen Wert kleiner 0 angeben, ist das Verhalten nicht definiert.

    Syntax

    SUBSTRING(string, start, length)

  • GROSSBUCHSTABEN
    Konvertiert eine Zeichenfolge von Kleinbuchstaben in Großbuchstaben.

    Syntax

    UPPER(string)

Informationen

Verwenden Sie die folgenden Funktionen, um allgemeine Informationen zu Benutzern zurückzugeben.

  • BENUTZERID
    Gibt die ID zurück, mit der der Benutzer auf die Daten zugegriffen hat.

    Syntax

    GETUSERID()

  • BENUTZERGEBIETSSCHEMA
    Gibt die Sprache bzw. das Gebietsschema des Benutzers zurück.

    Syntax

    GETUSERCULTURE()