Funkce If a Switch v PowerAppsIf and Switch functions in PowerApps

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.Determines whether any condition in a set is true (If) or the result of a formula matches any value in a set (Switch) and then returns a result or executes an action.

PopisDescription

Funkce If testuje jednu nebo víc podmínek, dokud se nenajde výsledek, který je pravda.The If function tests one or more conditions until a true result is found. Pokud se takový výsledek najde, vrátí se odpovídající hodnota.If such a result is found, a corresponding value is returned. Pokud se takový výsledek nenajde, vrátí se výchozí hodnota.If no such result is found, a default value is returned. V obou případech může být vrácenou hodnotou řetězec k zobrazení, vzorec k vyhodnocení nebo jiná forma výsledku.In either case, the returned value might be a string to show, a formula to evaluate, or another form of result.

Funkce Switch vyhodnocuje vzorec a zjišťuje, jestli výsledek odpovídá některé hodnotě v zadaném pořadí.The Switch function evaluates a formula and determines whether the result matches any value in a sequence that you specify. Pokud se shoda najde, vrátí se odpovídající hodnota.If a match is found, a corresponding value is returned. Pokud se shoda nenajde, vrátí se výchozí hodnota.If no match is found, a default value is returned. V obou případech může být vrácenou hodnotou řetězec k zobrazení, vzorec k vyhodnocení nebo jiná forma výsledku.In either case, the returned value might be a string to show, a formula to evaluate, or another form of result.

If a Switch jsou velmi podobné, ale měli byste použít nejvhodnější funkci pro konkrétní situaci:If and Switch are very similar, but you should use the best function for your situation:

  • If použijte k vyhodnocení jedné podmínky.Use If to evaluate a single condition. 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 …The most common syntax for this function is If( Condition, ThenResult, DefaultResult ), which provides the common “if … pak …then … jinak …“else …” známému z jiných programovacích nástrojů.pattern seen in other programming tools.
  • If použijte k vyhodnocení několika nesouvisejících podmínek.Use If to evaluate multiple unrelated conditions. V PowerApps (na rozdíl od Microsoft Excelu), můžete zadat víc podmínek, aniž byste museli vzorce If vnořit.In PowerApps (unlike Microsoft Excel), you can specify multiple conditions without having to nest If formulas.
  • Switch použijte k vyhodnocení jedné podmínky oproti více možným shodám.Use Switch to evaluate a single condition against multiple possible matches. V tomto případě můžete použít také If, ale museli byste vzorec opakovat pro každou možnou shodu.You can also use If in this case, but you'd need to repeat the formula for each possible match.

Obě tyto funkce můžete použít ve vzorcích chování k větvení mezi dvěma nebo více akcemi.You can use both of these functions in behavior formulas to branch between two or more actions. Akci spustí jenom jedna větev.Only one branch will trigger an action. Podmínky a shody se vyhodnocují v pořadí a vyhodnocování se zastaví, pokud je podmínka pravda nebo se najde shoda.Conditions and matches are evaluated in order, and they stop if a condition is true or a match is found.

Pokud žádná podmínka není pravda, nenajdou se žádné shody a nezadáte výchozí výsledek, vrátí se hodnota blank (prázdné).Blank is returned if no conditions are true, no matches are found, and you don't specify a default result.

SyntaxeSyntax

If( Podmínka; PakVýsledek [; VýchozíVýsledek ] )If( Condition, ThenResult [, DefaultResult ] )
If( Podmínka1; PakVýsledek1 [; Podmínka2; PakVýsledek2; ... [ ; VýchozíVýsledek ] ] )If( Condition1, ThenResult1 [, Condition2, ThenResult2, ... [ , DefaultResult ] ] )

  • Podmínka – povinné.Condition(s) - Required. Vzorec nebo vzorce, které se mají otestovat, jestli jsou pravda.Formula(s) to test for true. Takové vzorce obvykle obsahují relační operátory (například <, > a =) a testovací funkce jako IsBlank a IsEmpty.Such formulas commonly contain comparison operators (such as <, >, and =) and test functions such as IsBlank and IsEmpty.
  • PakVýsledek – povinné.ThenResult(s) - Required. Odpovídající hodnota, která má být vrácena, pokud se podmínka vyhodnotí jako pravda.The corresponding value to return for a condition that evaluates to true.
  • VýchozíVýsledek – volitelné.DefaultResult - Optional. Hodnota, která má být vrácena, pokud se žádná podmínka nevyhodnotí jako pravda.The value to return if no condition evaluates to true. Pokud tento argument nezadáte, vrátí se hodnota blank.If you don't specify this argument, blank is returned.

Switch( Vzorec; Shoda1; Výsledek1 [; Shoda2; Výsledek2; ... [; VýchozíVýsledekt ] ] )Switch( Formula, Match1, Result1 [, Match2, Result2, ... [, DefaultResult ] ] )

  • Vzorec – povinné.Formula - Required. Vzorec, který se má vyhodnotit z hlediska shody.Formula to evaluate for matches. Tento vzorec se vyhodnotí jenom jednou.This formula is evaluated only once.
  • Shoda – povinné.Match(s) - Required. Hodnoty, které se mají porovnat s výsledkem z argumentu Vzorec.Values to compare with the result from Formula. Pokud se najde přesná shoda, vrátí se odpovídající Výsledek.If an exact match is found, the corresponding Result is returned.
  • Výsledek – povinné.Result(s) - Required. Odpovídající hodnota, která se má vrátit, pokud se najde přesná shoda.The corresponding value to return when an exact match is found.
  • VýchozíVýsledek – volitelné.DefaultResult - Optional. Tato hodnota se vrátí, pokud se přesná shoda nenajde.If an exact match isn't found, this value is returned. Pokud tento argument nezadáte, vrátí se hodnota blank.If you don't specify this argument, blank is returned.

PříkladyExamples

Hodnoty ve vzorcíchValues in formulas

V následujících příkladech má ovládací prvek Posuvník (s názvem Posuvník1) hodnotu 25.In the following examples, a Slider control (named Slider1) has a value of 25.

VzorecFormula PopisDescription VýsledekResult
If( Posuvník1.Value = 25; "Výsledek1" )If( Slider1.Value = 25, "Result1" ) Podmínka je vyhodnocena jako pravdivá a vrátí se odpovídající výsledek.The condition is true, and the corresponding result is returned. "Výsledek1""Result1"
If( Posuvník1.Value = 25; "Výsledek1"; "Výsledek2" )If( Slider1.Value = 25, "Result1", "Result2" ) Podmínka je vyhodnocena jako pravdivá a vrátí se odpovídající výsledek.The condition is true, and the corresponding result is returned. "Výsledek1""Result1"
If( Posuvník1.Value > 1000; "Výsledek1" )If( Slider1.Value > 1000, "Result1" ) Podmínka je nepravda a nebyl zadán žádný VýchozíVýsledek.The condition is false, and no DefaultResult was provided. prázdná hodnotablank
If( Posuvník1.Value > 1000; "Výsledek1"; "Výsledek2" )If( Slider1.Value > 1000, "Result1", "Result2" ) Podmínka je nepravda, byl zadán VýchozíVýsledek a ten je vrácen.The condition is false, a DefaultResult was provided, and it's returned. "Výsledek2""Result2"
If( Posuvník1.Value = 25; "Výsledek1"; Posuvník1.Value > 0; "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.The first condition is true, and the corresponding result is returned. 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.The second condition is also true, but it isn't evaluated because it appears later in the argument list than a condition that evaluates to true. "Výsledek1""Result1"
If( IsBlank( Posuvník1.Value ); "Výsledek1"; IsNumeric( Posuvník1.Value ); "Výsledek2" )If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) První podmínka je nepravda, protože posuvník není prázdný.The first condition is false because the slider isn't blank. Druhá podmínka je pravda, protože hodnota posuvníku je číslo, takže se vrátí odpovídající výsledek.The second condition is true because the slider's value is a number, and the corresponding result is returned. "Výsledek2""Result2"
If( Posuvník1.Value > 1000; "Výsledek1"; Posuvník1.Value > 50; "Výsledek2"; "Výsledek3")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.Both the first and second conditions are false, a DefaultResult was provided, and it's returned. "Výsledek3""Result3"
Switch( Posuvník1.Value; 25; "Výsledek1" )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.The slider's value matches the first value to be checked, and the corresponding result is returned. "Výsledek1""Result1"
Switch( Posuvník1.Value; 20; "Výsledek1"; 25; "Výsledek2"; 30; "Výsledek3" )Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) Hodnota posuvníku se shoduje s druhou hodnotou, která se má zkontrolovat, a vrátí se odpovídající výsledek.The slider's value matches the second value to be checked, and the corresponding result is returned. "Výsledek2""Result2"
Switch( Posuvník1.Value; 20; "Výsledek1"; 10; "Výsledek2"; 0; "Výsledek3"; "VýchozíVýsledek" )Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) Hodnota posuvníku se neshoduje s žádnou kontrolovanou hodnotou.The slider's value doesn't match any value to be checked. Byl zadán VýchozíVýsledek, který proto bude vrácen.A DefaultResult was provided, so it's returned. "VýchozíVýsledek""DefaultResult"

Větvení ve vzorcích chováníBranching in behavior formulas

V těchto příkladech má ovládací prvek Textové zadání nazvaný KřestníJméno zadanou hodnotu „Jan“.In these examples, a Text input control named FirstName has the value "John" typed into it.

VzorecFormula PopisDescription VýsledekResult
If( ! IsBlank( KřestníJméno.Text ); Navigate( Obrazovka1; ScreenTransition.None ) )If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) Podmínka je pravda, proto se spustí funkce Navigate.The condition is true, so the Navigate function runs. Pomocí funkce IsBlank můžete otestovat, jestli je povinné pole formuláře vyplněné.You can use the IsBlank function to test whether a required form field has been filled in. Pokud by KřestníJméno bylo prázdné, tento vzorec by neměl žádný vliv.If FirstName were blank, this formula would have no effect. truetrue

Zobrazení se změní na Obrazovka1.The display is changed to Screen1.
If( IsBlank( KřestníJméno.Text ); Navigate( Obrazovka1; ScreenTransition.None ); Back() )If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) Bez operátoru !Without the ! je podmínka nepravda, proto se funkce Navigate nespustí.operator, the condition is false, so the Navigate function doesn't run. Jako VýchozíHodnota byla zadána funkce Back, proto se spustí.The Back function was provided as a DefaultResult, so it runs. truetrue

Zobrazení se vrátí zpět na předchozí obrazovku.The display goes back to the screen that was previously shown.
Switch( KřestníJméno.Text; "Carlos"; Navigate( Obrazovka1; ScreenTransition.None ); "Kirstin"; Navigate( Obrazovka2; ScreenTransition.None ); "John"; Navigate( Obrazovka3; ScreenTransition.None ) )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í.The value of FirstName.Text is compared against "Carlos", "Kirstin", and "John" in that order. Najde se shoda s hodnotou „John“, takže aplikace přejde na zobrazení Obrazovka3.A match is found with "John", so the app navigates to Screen3. truetrue

Zobrazení se změní na Obrazovka3.The display is changed to Screen3.

Podrobný postupStep by step

  1. Přidejte Textové zadání a pojmenujte ho Text1, pokud už se tak ve výchozím nastavení nejmenuje.Add a Text input control, and name it Text1 if it doesn't have that name by default.
  2. Do Text1 zadejte 30.In Text1, type 30.
  3. Přidejte ovládací prvek Popisek a pro jeho vlastnost Text nastavte tento vzorec:Add a Label control, and set its Text property to this formula:
    If( Value(Text1.Text) < 20; "Order MANY more!"; Value(Text1.Text) < 40; "Order more!"; Text1.Text )If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )

    Ovládací prvek Popisek zobrazí Order more!,The Label control shows Order more! protože hodnota Text1 je větší než 20, ale menší než 40.because the value of Text1 is more than 20 but less than 40.

  4. Do Text1 zadejte 15.In Text1, type 15.

    Ovládací prvek Popisek zobrazí Order MANY more!,The Label control shows Order MANY more! protože hodnota Text1 je menší než 20.because the value of Text1 is less than 20.

  5. Do Text1 zadejte 50.In Text1, type 50.

    Popisek zobrazí hodnotu, kterou jste zadali, protože je větší než 40.The Label control shows the value that you typed because it's more than 40.