If Bedingungen in PowerApps schreiben | If Funktion erklärt

Power Apps If Statements

If Bedingungen sind eines der wichtigsten Werkzeuge in jeder Programmiersprache. PowerApps If Anweisungen funktionieren etwas anders, als du es eventuell von anderen Programmiersprachen gewohnt bist. Dieser Artikel soll dir zeigen, wie du If Anweisungen in PowerApps nutzt, anhand an einer theoretischen Vorstellung und vielen Beispielen.

Hinweis: Wenn du eine Variable auf Gleichheit mit mehreren Werten vergleichst, könnte die Switch Funktion die bessere Lösung sein.

PowerApps If Funktion

Mit PowerApps If Funktion kannst du anhand von einer oder mehreren Bedingungen einen Wert zurückliefern.

Syntax

If( Condition1, ThenResult1 [, Condition2, ThenResult2, ... [ , DefaultResult ] ] )

Eingangsparameter

  • Conditions1 (mandatory): Die zu prüfende If Bedingung. (Muss true oder false sein)
  • ThenResult1 (mandatory): Wenn Condition1 true ist, dann wird zurückgegeben, was hier definiert ist.
  • Condition2 (optional): Die zu prüfende Else If Bedingung. (Muss true oder false sein)
  • ThenResult2 (optional): Wenn Condition2 true ist, dann wird zurückgegeben, was hier definiert ist.
  • DefaultResult (optional): Wenn keine Bedingung true ist, wird ausgeführt und zurüchgegeben, was hier definiert ist.

Rückgabewert

  • Blank, wenn keine Bedingung erfüllt wird und es kein DefaultElse gibt.
  • Das Ergebnis von ThenResult, für die Condition, die zutrifft. Oder DefaultResult wenn keine Condition zutrifft.

PowerApps If Funktion Beispiele

If else Bedingungen

Die If Funktion kennt zwar das Schlüßelwort else nicht, aber man kann einen Default Wert hinzufügen ohne Bedingung. Das ist faktisch ein Else. Schaue dir einfach das Beispiel an:

Set(isOrderPayed, false);
If(
    isOrderPayed, // IF order is paid?
    Navigate(OrderOverview), // yes, THEN show order overview
    Navigate(Payment) // ELSE show payment screen
);

If else if (elseif)

Um ein Else If mit der PowerApps If Funktion umzusetzen, kannst du einfach mehrere Bedingungen und die Aktion darauf nacheinander auflisten. Schaue dir einfach das Beispiel an:

If(
    price > 10, "expensive",
    price > 20, "very expensive",
    "fair price"
);

// price = 9, returns "fair price"
// price = 14, returns "expensive"
// price = 21, returns "very expensive"

If Bedingung mit mehreren Bedingungen

Wenn du innerhalb eines If Zweiges mehrere Bedingungen prüfen willst, kannst du sie mit And oder Or oder beiden verknüpfen. Mit Klammern kannst du zusätzlich Gruppen bilden und die Auswertungsreihenfolge beeinflussen.

Hier sind ein paar Beispiele:

If And

Als Beispiel für die Nutzung von And bietet sich das Testen auf einen bestimmten Zahlenbereich an. Im Beispiel unten ist die Bedingung nur True wenn die Variable größer 19 und kleiner 30 ist.

Set(age, 25);
If(
    age > 19 And age < 30, // two conditions connected via And (both must be true)
   "I am in my twenties."
);

// age = 25: true
// age = 19: false

If Or

Hier ein Beispiel für die Nutzung von Or.

If(
    age < 10 Or age > 90, // two conditions connected via Or (one must be true)
   "I am young or old."
);

// age = 25: false
// age = 9: true
// age = 95: true 

Mehrere Funktionen aufrufen für eine If Bedingung

Möchte man mehrere Funktionen für eine If Bedingung aufrufen, kann man das machen, indem man die Aufrufe durch ein Semikolon trennt.

If(isOrderPayed, 
     Navigate(Payment); // action #1 SEMICOLON
     Notify("Please pay!"); // action #2 SEMICOLON
);

If not

Um eine If Bedingung zu verneinen, kann man die Not Funktion oder ein Ausrufezeichen nutzen.

If(
    Not(false),
    "Not false is true."
);

If(
    !false,
    "Not false is true."
);

Checkbox angekreuzt

Um herauszufinden, ob eine Checkbox angekreuzt ist, nutze einfach die Value Eigenschaft der Checkbox.

If(ActiveCheckbox.Value, "checked","not checked");

Leerer String?

Um zu prüfen, ob ein String leer ist oder nicht, nutze die IsBlank Funktion in deiner If Bedingung.

If(IsBlank("some string"),"blank","not blank"); // Returns "not blank"

If(IsBlank(""),"blank","not blank"); // Returns "blank"

If Not IsBlank

If(Not(IsBlank("some string")),true,false); // Returns "true" 

If(Not(IsBlank("")),true,false); // Returns "false"

Leere Collection?

Um zu prüfen, ob eine Collection leer ist, nutze einfach die IsEmpty Funktion in deiner If Bedingung.

If(IsEmpty([]),"empty","not empty"); // Returns "empty"

If(IsEmpty(["a","b"]),"empty","not empty"); // Returns "not empty"

Wert in der Collection enthalten?

Der einfachste Weg, um zu prüfen, ob ein Wert in einer Collection enthalten ist, ist der in Operator.

ClearCollect(
    Weekdays,
    ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]
);

If(
    "Tuesday" in Weekdays,
    "Tuesday is a weekday."
);

Beginnt der Text mit?

Mit der StartsWith Funktion kann man prüfen, ob ein String mit einem bestimmten Text beginnt.

If(
   StartsWith("abc","a"),
   Notify("Starts with 'a'.")
);

If Combobox is blank

Hier ein Beispiel, um zu prüfen, ob der Wert einer Combobox leer ist.

If(
    IsBlank(MyComboBox.SelectedItems.Value),
    "Combobox not selected."
)

Auf gewählten Wert in einer Combobox prüfen

Hier ein Beispiel, um zu prüfen, ob der Wert einer Combobox nicht leer ist.

If(
    Not(IsBlaWertnk(MyComboBox.Selected.Value)),
    "Combobox selected."
)

Auf gewählten Wert in einem Dropdown prüfen

Hier ein Beispiel, um zu prüfen, ob der Wert eines Dropdown gleich Monday ist.

If(
    MyDropdown.Selected.Value = "Monday",
    "Monday selected."
)

Wenn das Drop Down ausgewählt ist

Um zu prüfen, ob für ein Drop Down bereits ein Wert ausgewählt wurde, gehe wie folgt vor:

If(
    Not(IsBlank(MyDropdown.Selected.Value)),
    "Dropdown selected."
)

Datum in der Zukunft?

Manchmal will man prüfen, ob ein Datum in der Zukunft liegt, also ein Datum nach heute liegt.

Hier ein Beispiel, wie man das umsetzen kann:

If(
    DateAdd(Today(),1,Days) > Today(),
    "In future."
);   

Verschachtelte If Anweisungen

Manchmal macht es auch Sinn mehrere If Anweisung zu verschachteln, auch wenn man es nicht übertreiben sollte, da es dann schnell unleserlich wird.

Hier ein Beispiel für eine verschachtelte If Anweisung:

If(price > 10,
   If(price > 20,"very expensive","expensive"),
   "fair price"
);   
// price = 9, returns "fair price"
// price = 14, returns "expensive"
// price = 21, returns "very expensive"

Ist die Form im Edit Mode?

Um den Modus einer Form in einer If Bedingung zu nutzen, kannst du den Modus per <FormName>.Mode abfragen. Für den Edit Mode vergleichen den Mode mit DisplayMode.Edit, wie im folgenden Beispiel:

If(
     MyForm.Mode = DisplayMode.Edit,
     "edit"
);

Leere Gallery prüfen

Um herauszufinden, ob eine Gallery leer ist, kann man einfach die Anzahl der Elemente in AllItems mit CountRows herausfinden. Wenn das Ergebnis gleich Null ist, dann ist die Gallery leer.

If(
    CountRows(MyGallery.AllItems) = 0,
    "Gallery is empty."
);

Größer als und weniger als

Bei einem Datum oder einer Zahl will man häufiger prüfen, ob das Datum oder die Zahl in einem bestimmten Bereich liegt. Das Datum oder die Zahl also größer als Wert A und kleiner als Wert B sind. Hier ein Beispiel:

Set(age, 25);
If(
    age > 19 And age < 30, // two conditions connected via And (both must be true)
   "I am in my twenties."
);

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert