Poznámka
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete sa skúsiť prihlásiť alebo zmeniť adresáre.
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete skúsiť zmeniť adresáre.
Vzťahuje sa na: Aplikácie
plátna Copilot Studio
Desktop – postupy
vzorcov Dataverse stĺpce
Modelom riadené aplikácie
Power Platform CLI
Dataverse funkcie
Power Pages
Určí, či je niektorá podmienka v množine pravdivá (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 true (pravda). If takýto výsledok sa nájde, vráti sa zodpovedajúca hodnota. If Takýto výsledok sa 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 určí, či výsledok zodpovedá niektorej hodnote v zadanej postupnosti. If Nájde sa zhoda, vráti sa zodpovedajúca hodnota. If Zhoda sa 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.
If a Switch sú veľmi podobné, ale mali by ste použiť najlepšiu funkciu pre vašu situáciu:
- Použite If na vyhodnotenie jednej podmienky. Najbežnejšia syntax pre túto funkciu je If( Condition, ThenResult, DefaultResult ), ktorá predstavuje bežnú syntax "ak ... potom … Else ..." vzor videný v iných programovacích nástrojoch.
- Používa If sa na vyhodnotenie niekoľkých nesúvisiacich podmienok. V službe Power Apps (na rozdiel od Microsoft Excelu) môžete zadať viac podmienok bez toho, aby ste museli vzorce vnárať If .
- Používa Switch sa na vyhodnotenie jednej podmienky oproti viacerým možným zhodám. V tomto prípade môžete tiež použiť 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.
Prázdne sa vráti, ak nie sú žiadne podmienky pravda, nenájdu sa žiadne zhody a nezadáte predvolený výsledok.
Syntax
If( Condition, ThenResult [, DefaultResult ] )
If( Condition1, ThenResult1 [, Condition2, ThenResult2, ... [ , DefaultResult ] ] )
- Podmienky – 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.
- ThenResults – 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á. If tento argument nezadáte, vráti sa prázdna hodnota .
Switch( Vzorec, Match1, Result1 [, Match2, Result2, ... [, DefaultResult ] ] )
- Vzorec – povinné. Vzorec, ktorý sa má vyhodnotiť z hľadiska zhody. Tento vzorec sa vyhodnotí iba raz.
- Zhody – povinné. Hodnoty, ktoré sa majú porovnať s výsledkom z argumentu Vzorec. If nájde sa presná zhoda, vráti sa zodpovedajúci Výsledok .
- Výsledky – povinné. Zodpovedajúca hodnota, ktorá sa má vrátiť, ak sa nájde presná zhoda.
- DefaultResult – voliteľné. If presná zhoda sa nenájde, vráti sa táto hodnota. If 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 | Popis | 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. | prázdna |
| 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 | Result |
|---|---|---|
| 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é. If FirstName bolo prázdne, tento vzorec by nemal žiadny 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 ), "Ján", 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
Pridajte ovládací prvok Textový vstup a nazvite ho Text1, ak sa tak už nenazýva podľa predvoleného nastavenia.
Do poľa Text1 zadajte hodnotu 30.
Pridajte ovládací prvok Label a jeho vlastnosť Text nastavte na tento vzorec:
If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )Ovládací prvok Označenie zobrazuje Objednať viac! pretože hodnota Text1 je viac ako 20, ale menej ako 40.
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.
Do poľa Text1 zadajte hodnotu 50.
Ovládací prvok Označenie zobrazí hodnotu, ktorú ste zadali, pretože je väčšia ako 40.