Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: Aplikace
plátna Copilot Studio
Desktop toky
Dataverse sloupce
vzorců Modelem řízené aplikace
Power Platform CLI
Funkce
Power Pages
Určuje, zda je jakákoli podmínka v sadě true (If) nebo výsledek vzorce odpovídá jakékoli hodnotě v sadě (Switch) a pak vrátí výsledek nebo provede akci.
Popis
Funkce If testuje jednu nebo více podmínek, dokud se nenajde skutečný výsledek. If takový výsledek se najde, vrátí se odpovídající hodnota. If nebyl nalezen žádný takový výsledek, vrátí se výchozí hodnota. V obou případech může být vrácenou hodnotou řetězec k zobrazení, vzorec k vyhodnocení nebo jiná forma výsledku.
Funkce Switch vyhodnotí vzorec a určí, zda výsledek odpovídá libovolné hodnotě v zadané sekvenci. If Najde se shoda, vrátí se odpovídající hodnota. If nebyla nalezena žádná shoda, vrátí se výchozí hodnota. V obou případech může být vrácenou hodnotou řetězec k zobrazení, vzorec k vyhodnocení nebo jiná forma výsledku.
If a Switch jsou velmi podobné, ale měli byste použít nejlepší funkci pro vaši situaci:
- Slouží If k vyhodnocení jedné podmínky. Nejběžnější syntaxe této funkce je If( Podmínka, ThenResult, DefaultResult ), která poskytuje společné "if ... pak ... jinak…“ známému z jiných programovacích nástrojů.
- Slouží If k vyhodnocení více nesouvisejících podmínek. V Power Apps (na rozdíl od Microsoft Excelu) můžete zadat více podmínek, aniž byste museli vnořit If vzorce.
- Slouží Switch k vyhodnocení jedné podmínky pro více možných shod. V tomto případě můžete použít If také vzorec, ale musíte vzorec opakovat pro každou možnou shodu.
Obě tyto funkce můžete použít ve vzorcích chování k větvení mezi dvěma nebo více akcemi. Akci spustí jenom jedna větev. Podmínky a shody se vyhodnocují v pořadí a vyhodnocování se zastaví, pokud je podmínka pravda nebo se najde shoda.
Prázdné je vráceno, pokud nejsou žádné podmínky pravdivé, nebyly nalezeny žádné shody a nezadáte výchozí výsledek.
Syntaxe
If( Podmínka, ThenResult [, DefaultResult ] )
If( Podmínka1, ThenResult1 [, Podmínka2, ThenResult2; ... [ , DefaultResult ] ] )
- Podmínky – Povinné. Vzorec nebo vzorce, které se mají otestovat, jestli jsou pravda. Takové vzorce obvykle obsahují relační operátory (například <, > a =) a testovací funkce jako IsBlank a IsEmpty.
- ThenResults – Povinné. Odpovídající hodnota, která má být vrácena, pokud se podmínka vyhodnotí jako pravda.
- DefaultResult – Volitelné. Hodnota, která má být vrácena, pokud se žádná podmínka nevyhodnotí jako pravda. If Tento argument nezadáte, vrátí se prázdné .
Switch( Vzorec, Shoda1, Výsledek1 [, Shoda2, Výsledek2, ... [, DefaultResult ] ] )
- Vzorec – Povinný. Vzorec, který se má vyhodnotit z hlediska shody. Tento vzorec se vyhodnotí jenom jednou.
- Shody – Povinné. Hodnoty, které se mají porovnat s výsledkem z argumentu Vzorec. If Najde se přesná shoda, vrátí se odpovídající výsledek .
- Výsledky – Povinné. Odpovídající hodnota, která se má vrátit, pokud se najde přesná shoda.
- DefaultResult – Volitelné. If nebyla nalezena přesná shoda, vrátí se tato hodnota. If Tento argument nezadáte, vrátí se prázdné .
Příklady
Hodnoty ve vzorcích
V následujících příkladech má ovládací prvek Slider (s názvem Slider1) hodnotu 25.
| Vzorec | Popis | Result |
|---|---|---|
| If( Slider1.Value = 25; "Výsledek1" ) | Podmínka je vyhodnocena jako pravdivá a vrátí se odpovídající výsledek. | "Výsledek1" |
| If( Slider1.Value = 25; "Výsledek1"; "Výsledek2" ) | Podmínka je vyhodnocena jako pravdivá a vrátí se odpovídající výsledek. | "Výsledek1" |
| If( Slider1.Value > 1000; "Result1" ) | Podmínka je nepravda a nebyl zadán žádný VýchozíVýsledek. | prázdný |
| If( Slider1.Value > 1000; "Result1"; "Result2" ) | Podmínka je nepravda, byl zadán VýchozíVýsledek a ten je vrácen. | "Výsledek2" |
| If( Slider1.Value = 25; "Result1"; Slider1.Value > 0; "Result2" ) | První podmínka je pravda a vrátí se odpovídající výsledek. Druhá podmínka je také pravda, ale nevyhodnotí se, protože se v seznamu argumentů nachází až za podmínku, která se vyhodnotila jako pravda. | "Výsledek1" |
| If( IsBlank( Slider1.Value ); "Result1"; IsNumeric( Slider1.Value ); "Result2" ) | První podmínka je nepravda, protože posuvník není prázdný. Druhá podmínka je pravda, protože hodnota posuvníku je číslo, takže se vrátí odpovídající výsledek. | "Výsledek2" |
| If( Slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2"; "Result3") | První i druhá podmínka jsou nepravda a byl zadán VýchozíVýsledek, který bude vrácen. | "Výsledek3" |
| Switch( Slider1.Value, 25, "Result1" ) | Hodnota posuvníku se shoduje s první hodnotou, která se má zkontrolovat, a vrátí se odpovídající výsledek. | "Výsledek1" |
| Switch( Slider1.Value, 20, "Výsledek1", 25, "Výsledek2", 30, "Výsledek3" ) | Hodnota posuvníku se shoduje s druhou hodnotou, která se má zkontrolovat, a vrátí se odpovídající výsledek. | "Výsledek2" |
| Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) | Hodnota posuvníku se neshoduje s žádnou kontrolovanou hodnotou. Byl zadán VýchozíVýsledek, který proto bude vrácen. | "VýchozíVýsledek" |
Větvení ve vzorcích chování
V těchto příkladech má ovládací prvek Text input nazvaný KřestníJméno zadanou hodnotu „Jan“.
| Vzorec | Popis | Result |
|---|---|---|
| If( ! IsBlank( FirstName.Text ); Navigate( Screen1; ScreenTransition.None ) ) | Podmínka je pravda, proto se spustí funkce Navigate. Pomocí funkce IsBlank můžete otestovat, jestli je povinné pole formuláře vyplněné. If Jméno bylo prázdné, tento vzorec by neměl žádný vliv. |
věrný Zobrazení se změní na Obrazovka1. |
| If( IsBlank( FirstName.Text ); Navigate( Screen1; ScreenTransition.None ); Back() ) | Bez operátoru ! je podmínka nepravda, proto se funkce Navigate nespustí. Jako VýchozíHodnota byla zadána funkce Back, proto se spustí. |
věrný Zobrazení se vrátí zpět na předchozí obrazovku. |
| Switch( FirstName.Text, "Carlos"; Navigate( Screen1; ScreenTransition.None ); "Kirstin"; Navigate( Screen2; ScreenTransition.None ); "John"; Navigate( Screen3; ScreenTransition.None ) ) | Hodnota KřestníJméno.Text se porovná s hodnotami „Carlos“, „Kirstin“ a „John“ v tomto pořadí. Najde se shoda s hodnotou „John“, takže aplikace přejde na zobrazení Obrazovka3. |
věrný Zobrazení se změní na Obrazovka3. |
Podrobný postup
Přidejte Text input a pojmenujte ho Text1, pokud už se tak ve výchozím nastavení nejmenuje.
Do Text1 zadejte 30.
Přidejte ovládací prvek Label a jeho vlastnost Text nastavte na tento vzorec:
If( Value(Text1.Text) < 20; "Order MANY more!", Value(Text1.Text) < 40; "Order more!", Text1.Text )Popisek zobrazí Order more!, protože hodnota Text1 je větší než 20, ale menší než 40.
Do Text1 zadejte 15.
Popisek zobrazí Order MANY more!, protože hodnota Text1 je menší než 20.
Do Text1 zadejte 50.
Label zobrazí hodnotu, kterou jste zadali, protože je větší než 40.