Zdieľať cez


Funkcie If a Switch

Vzťahuje sa na: aplikácie plátna Dataverse stĺpce vzorcov toky na počítači aplikácie riadené modelom Power Pages Power Platform CLI

Zisťuje, či je niektorá podmienka v množine pravda (If) alebo či sa výsledok vzorca zhoduje s niektorou hodnotou v množine (Switch), a potom vráti výsledok alebo vykoná akciu.

Popis

Funkcia If testuje jednu alebo viac podmienok, kým sa nenájde výsledok, ktorý je pravda. Ak sa takýto výsledok nájde, vráti sa zodpovedajúca hodnota. Ak sa takýto výsledok nenájde, vráti sa predvolená hodnota. V oboch prípadoch môže byť vrátenou hodnotou reťazec na zobrazenie, vzorec na vyhodnotenie alebo iná forma výsledku.

Funkcia Switch vyhodnocuje vzorec a zisťuje, či výsledok zodpovedá niektorej hodnote v zadanej sekvencii. Ak sa zhoda nájde, vráti sa zodpovedajúca hodnota. Ak sa zhoda nenájde, vráti sa predvolená hodnota. V oboch prípadoch môže byť vrátenou hodnotou reťazec na zobrazenie, vzorec na vyhodnotenie alebo iná forma výsledku.

Funkcie If a Switch sú veľmi podobné, ale mali by ste použiť najvhodnejšiu funkciu pre konkrétnu situáciu:

  • Funkciu If použite na vyhodnotenie jednej podmienky. Najbežnejšia syntax pre túto funkciu je If( Podmienka, ThenResult, DefaultResult ), ktorý poskytuje bežné „ak… potom … Else ..." vzor videný v iných programovacích nástrojoch.
  • Funkciu If použite na vyhodnotenie niekoľkých nesúvisiacich podmienok. V službe Power Apps (na rozdiel od Microsoft Excel) môžete zadať viac podmienok bez toho, aby ste museli vzorce If vnoriť.
  • Funkciu Switch použite na vyhodnotenie jednej podmienky oproti viacerým možným zhodám. V tomto prípade môžete tiež použiť funkciu If, ale museli by ste vzorec opakovať pre každú možnú zhodu.

Obe tieto funkcie môžete použiť vo vzorcoch správania na vetvenie medzi dvomi alebo viacerými akciami. Akciu spustí iba jedna vetva. Podmienky a zhody sa vyhodnocujú v poradí a vyhodnocovanie sa zastaví, ak je podmienka pravdivá alebo sa nájde zhoda.

Ak žiadna podmienka nie je pravdivá, nenájdu sa žiadne zhody a nezadáte predvolený výsledok, vráti sa hodnota blank (prázdna).

Syntax

IfCondition, ThenResult [, DefaultResult ] )
IfCondition1, ThenResult1 [, Condition2, ThenResult2, ... [ , DefaultResult ] ] )

  • Condition1, Condition1, … – povinné. Vzorce, ktoré sa majú otestovať, či sú pravdivé. Takéto vzorce obvykle obsahujú operátory porovnania (napríklad <, > a =) a testovacie funkcie, napr. IsBlank a IsEmpty.
  • ThenResult1, ThenResult2, … – povinné. Zodpovedajúca hodnota, ktorá má byť vrátená, ak sa podmienka vyhodnotí ako pravdivá.
  • DefaultResult – voliteľné. Hodnota, ktorá má byť vrátená, ak sa žiadna podmienka nevyhodnotí ako pravdivá. Ak tento argument nezadáte, vráti sa prázdna hodnota.

SwitchFormula, Match1, Result1 [, Match2, Result2, ... [, DefaultResult ] ] )

  • Vzorec – povinné. Vzorec, ktorý sa má vyhodnotiť z hľadiska zhody. Tento vzorec sa vyhodnotí iba raz.
  • Match1, Match2, … – povinné. Hodnoty, ktoré sa majú porovnať s výsledkom z argumentu Vzorec. Ak sa nájde presná zhoda, vráti sa zodpovedajúci Výsledok.
  • Result1, Result2, … – povinné. Zodpovedajúca hodnota, ktorá sa má vrátiť, ak sa nájde presná zhoda.
  • DefaultResult – voliteľné. Táto hodnota sa vráti, ak sa presná zhoda nenájde. Ak tento argument nezadáte, vráti sa prázdna hodnota.

Príklady

Hodnoty vo vzorcoch

V nasledujúcich príkladoch má ovládací prvok Slider (s názvom Slider1) hodnotu 25.

Vzorec Description Result
If( Slider1.Value = 25, "Result1" ) Podmienka je vyhodnotená ako pravdivá a vráti sa zodpovedajúci výsledok. "Result1"
If( Slider1.Value = 25, "Result1", "Result2" ) Podmienka je vyhodnotená ako pravdivá a vráti sa zodpovedajúci výsledok. "Result1"
If( Slider1.Value>1000, "Result1" ) Podmienka je nepravdivá a nebol zadaný žiaden výsledok DefaultResult. blank
If( Slider1.Value>1000, "Result1", "Result2" ) Podmienka je nepravdivá, bol zadaný DefaultResult a ten je vrátený. "Result2"
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) Prvá podmienka je pravdivá a vráti sa zodpovedajúci výsledok. Druhá podmienka je tiež pravdivá, ale nevyhodnotí sa, pretože sa v zozname argumentov nachádza až za podmienkou, ktorá sa vyhodnotila ako pravdivá. "Result1"
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) Prvá podmienka je nepravdivá, pretože jazdec nie je prázdny. Druhá podmienka je pravdivá, pretože hodnota jazdca je číslo, takže sa vráti zodpovedajúci výsledok. "Result2"
If( Slider1.Value>1000, "Result1", Slider1.Value>50, "Result2", "Result3") Prvá aj druhá podmienka sú pravdivé a bol zadaný predvolený výsledok DefaultResult, ktorý bude vrátený. "Result3"
Switch( Slider1.Value, 25, "Result1" ) Hodnota jazdca sa zhoduje s prvou hodnotou, ktorá sa má skontrolovať, a vráti sa zodpovedajúci výsledok. "Result1"
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) Hodnota jazdca sa zhoduje s druhou hodnotou, ktorá sa má skontrolovať, a vráti sa zodpovedajúci výsledok. "Result2"
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) Hodnota jazdca sa nezhoduje so žiadnou kontrolovanou hodnotou. Bol zadaný DefaultResult, ktorý bude preto vrátený. "DefaultResult"

Vetvenie vo vzorcoch správania

V týchto príkladoch má ovládací prvok Textový vstup nazvaný FirstName zadanú hodnotu „Ján“.

Vzorec Popis Výsledok
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) Podmienka je pravdivá, preto sa spustí funkcia Navigate. Pomocou funkcie IsBlank môžete otestovať, či je povinné pole formulára vyplnené. Ak by FirstName bolo blank, tento vzorec by nemal žiaden vplyv. pravda

Zobrazenie sa zmení na Screen1.
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) Bez operátora ! je podmienka nepravdivá, preto sa funkcia Navigate nespustí. Ako predvolený výsledok DefaultResult bola zadaná funkcia Back, preto sa spustí. pravda

Zobrazenie sa vráti späť na predchádzajúcu obrazovku.
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) Hodnota FirstName.Text sa porovná s hodnotami „Karol“, „Kristína“ a „Ján“ v tomto poradí. Nájde sa zhoda s hodnotou „Ján“, takže aplikácia prejde na obrazovku Screen3. pravda

Zobrazenie sa zmení na Screen3.

Podrobne

  1. Pridajte ovládací prvok Textový vstup a nazvite ho Text1, ak sa tak už nenazýva podľa predvoleného nastavenia.

  2. Do poľa Text1 zadajte hodnotu 30.

  3. Pridajte ovládací prvok Label a jeho vlastnosť Text nastavte na tento vzorec:
    If( Value(Text1.Text) < 20, "Objednaj OVEĽA viac!", Value(Text1.Text) < 40, "Objednaj viac!", Text1.Text )

    Ovládací prvok Označenie zobrazuje Objednať viac! pretože hodnota Text1 je viac ako 20, ale menej ako 40.

  4. Do poľa Text1 zadajte hodnotu 15.

    Ovládací prvok Označenie zobrazuje Objednaj OVEĽA viac! pretože hodnota Text1 je viac menej ako 20.

  5. Do poľa Text1 zadajte hodnotu 50.

    Ovládací prvok Označenie zobrazí hodnotu, ktorú ste zadali, pretože je väčšia ako 40.