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.
- PowerApps If Funktion
- PowerApps If Funktion Beispiele
- If else Bedingungen
- If else if (elseif)
- If Bedingung mit mehreren Bedingungen
- Mehrere Funktionen aufrufen für eine If Bedingung
- If not
- Checkbox angekreuzt
- Leerer String?
- Leere Collection?
- Wert in der Collection enthalten?
- Beginnt der Text mit?
- If Combobox is blank
- Auf gewählten Wert in einer Combobox prüfen
- Auf gewählten Wert in einem Dropdown prüfen
- Wenn das Drop Down ausgewählt ist
- Datum in der Zukunft?
- Verschachtelte If Anweisungen
- Ist die Form im Edit Mode?
- Leere Gallery prüfen
- Größer als und weniger als
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."
);