Sdílet prostřednictvím


Funkce If a Switch

Platí pro: aplikace na plátně Dataverse sloupce vzorců toky na počítači aplikace řízené modelem Power Pages 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.

Pokud jsou a Přepínač velmi podobné, ale měli byste použít tu nejlepší funkci pro vaši 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.

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 [, Výchozí výsledek ])
Pokud( Podmínka1, Poté Výsledek1 [, Podmínka2 , Poté Vý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.
  • 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. Pokud tento argument nezadáte, vrátí se hodnota blank.

Přepnout( Vzorec, Shoda1, Výsledek1 [, Zápas 2, Výsledek2, ... [, Výchozí výsledek ] ] )

  • 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. Pokud se najde 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é. 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( Posuvník1.Hodnota = 25, "Výsledek1", "Výsledek2" ) Podmínka je vyhodnocena jako pravdivá a vrátí se odpovídající výsledek. "Výsledek1"
If( Posuvník1.Hodnota > 1000, "Výsledek1" ) Podmínka je nepravda a nebyl zadán žádný VýchozíVýsledek. prázdný
If( Posuvník1.Hodnota > 1000, "Výsledek1", "Výsledek2" ) Podmínka je nepravda, byl zadán VýchozíVýsledek a ten je vrácen. "Výsledek2"
If( Posuvník1.Value = 25, "Výsledek1", Posuvník1.Hodnota > 0, "Výsledek2" ) 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( JePrázdné( Posuvník1.Hodnota ), "Výsledek1", JeČíselné (Posuvník1.Hodnota), "Výsledek2" ) 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.Hodnota > 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.Hodnota, 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.Hodnota, 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.Hodnota, 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. 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.
Přepnout( Jméno.Text, "Carlos", Navigovat( Obrazovka1, Přechod obrazovky.Žádná ), "Kirstin", Navigovat (Obrazovka2, Přechod obrazovky.Žádný), "John", Navigovat (Obrazovka3, Přechod obrazovky.Žádný) ) 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

  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, "Objednejte MNOHO dalších!", Value(Text1.Text) < 40, "Objednejte více!", 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.