Funkce If a Switch

Platí pro: aplikace plátna sloupce vzorců Dataverse desktopové toky modelem řízené aplikace Power Platform CLI

Zjišťuje, jestli je některá podmínka v sadě pravda (If) nebo jestli se výsledek vzorce shoduje s některou hodnotou v sadě (Switch), a pak vrátí výsledek nebo provede akci.

Popis

Funkce If testuje jednu nebo víc podmínek, dokud se nenajde výsledek, který je pravda. Pokud se takový výsledek najde, vrátí se odpovídající hodnota. Pokud se takový výsledek nenajde, 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 vyhodnocuje vzorec a zjišťuje, jestli výsledek odpovídá některé hodnotě v zadaném pořadí. Pokud se shoda najde, vrátí se odpovídající hodnota. Pokud se shoda nenajde, 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 nejvhodnější funkci pro konkrétní situaci:

  • If použijte k vyhodnocení jedné podmínky. Nejběžnější syntaxí pro tuto funkci je If( Podmínka; PakVýsledek; VýchozíVýsledek ), která odpovídá běžnému vzoru „pokud … pak ... jinak…“ známému z jiných programovacích nástrojů.
  • If použijte k vyhodnocení několika nesouvisejících podmínek. V Power Apps (na rozdíl od Microsoft Excel), můžete zadat víc podmínek, aniž byste museli vzorce If vnořit.
  • Switch použijte k vyhodnocení jedné podmínky oproti více možným shodám. V tomto případě můžete použít také If, ale museli byste 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.

Pokud žádná podmínka není pravda, nenajdou se žádné shody a nezadáte výchozí výsledek, vrátí se hodnota blank (prázdné).

Syntaxe

If( Podmínka; PakVýsledek [; VýchozíVýsledek ] )
If( Podmínka1; PakVýsledek1 [; Podmínka2; PakVýsledek2; ... [ ; VýchozíVýsledek ] ] )

  • 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.
  • PakVýsledek – povinné. Odpovídající hodnota, která má být vrácena, pokud se podmínka vyhodnotí jako pravda.
  • VýchozíVýsledek – volitelné. Hodnota, která má být vrácena, pokud se žádná podmínka nevyhodnotí jako pravda. Pokud tento argument nezadáte, vrátí se hodnota blank.

Switch( Vzorec; Shoda1; Výsledek1 [; Shoda2; Výsledek2; ... [; VýchozíVýsledekt ] ] )

  • Vzorec – povinné. Vzorec, který se má vyhodnotit z hlediska shody. Tento vzorec se vyhodnotí jenom jednou.
  • Shoda – povinné. Hodnoty, které se mají porovnat s výsledkem z argumentu Vzorec. Pokud se najde přesná shoda, vrátí se odpovídající Výsledek.
  • Výsledek – povinné. Odpovídající hodnota, která se má vrátit, pokud se najde přesná shoda.
  • VýchozíVýsledek – volitelné. Tato hodnota se vrátí, pokud se přesná shoda nenajde. Pokud tento argument nezadáte, vrátí se hodnota blank.

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 Description Result
If( Slider1.Value = 25, "Result1" ) Podmínka je vyhodnocena jako pravdivá a vrátí se odpovídající výsledek. "Výsledek1"
If( Slider1.Value = 25, "Result1", "Result2" ) Podmínka je vyhodnocena jako pravdivá a vrátí se odpovídající výsledek. "Výsledek1"
If( Posuvník1.Value>1000; "Výsledek1" ) Podmínka je nepravda a nebyl zadán žádný VýchozíVýsledek. prázdný
If( Posuvník1.Value>1000; "Výsledek1"; "Výsledek2" ) 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( Posuvník1.Value>1000; "Výsledek1"; Posuvník1.Value>50; "Výsledek2"; "Výsledek3") První i druhá podmínka jsou nepravda a byl zadán VýchozíVýsledek, který bude vrácen. "Výsledek3"
Switch( Posuvník1.Value; 25; "Výsledek1" ) Hodnota posuvníku se shoduje s první hodnotou, která se má zkontrolovat, a vrátí se odpovídající výsledek. "Výsledek1"
Switch( Posuvník1.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( Posuvník1.Value; 20; "Výsledek1"; 10; "Výsledek2"; 0; "Výsledek3"; "VýchozíVýsledek" ) 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 Výsledek
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é. Pokud by KřestníJméno bylo blank, tento vzorec by neměl žádný vliv. true

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í. true

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. true

Zobrazení se změní na Obrazovka3.

Podrobný postup

  1. Přidejte Text input a pojmenujte ho Text1, pokud už se tak ve výchozím nastavení nejmenuje.

  2. Do Text1 zadejte 30.

  3. 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.

  4. Do Text1 zadejte 15.

    Popisek zobrazí Order MANY more!, protože hodnota Text1 je menší než 20.

  5. Do Text1 zadejte 50.

    Label zobrazí hodnotu, kterou jste zadali, protože je větší než 40.