Функције "Иф анд Сwитцх"
Важи за: Цанвас апликације формула цолумнс
Dataverse
Десктоп флоwс
Модел-дривен аппс
Power Pages
Power Platform ЦЛИ
Одређује да ли је било који услов у скупу тачан (If) или резултат формуле одговара било којој вредности у скупу (Switch), а затим враћа резултат или извршава радњу.
Опис
Функција If тестира један или више услова док резултат тачно није пронађен. Ако се пронађе такав резултат, враћа се одговарајућа вредност. Ако се не пронађе такав резултат, враћа се подразумевана вредност. У оба случаја, враћена вредност може бити ниска коју треба приказати, формула за оцену или други облик резултата.
Функција Switch оцењује формулу и одређује да ли се резултат подудара с било којом вредношћу у ниски коју наведете. Ако се пронађе подударање, враћа се одговарајућа вредност. Ако се не пронађе подударање, враћа се подразумевана вредност. У оба случаја, враћена вредност може бити ниска коју треба приказати, формула за оцену или други облик резултата.
If и Switch су врло сличне, али требало би да користите најбољу функцију за своју ситуацију:
- Користите If да оцените један услов. Најчешћа синтакса за ову функцију је Иф(Цондитион,ТхенРесулт,ДефаултРесулт ), која обезбеђује уобичајено "ако ... онда... иначе ..." шаблон виђен у другим програмским алатима.
- Користите If за оцењивање више неповезаних услова. У Power Apps (за разлику од Microsoft Excel), можете одредити више услова без да угнездите формуле If.
- Користите Switch да оцените један услов према више могућих подударања. Такође можете да користите If у овом случају, али морате да поновите формулу за свако могуће подударање.
Обе функције можете користити у формулама понашања, да бисте се гранали између две или више радњи. Само једно гранање ће покренути радњу. Услови и подударања се оцењују по редоследу, а престају ако је услов тачан или је пронађено подударање.
Празно се враћа ако нема услова true, нема подударања и не наводите подразумевани резултат.
Синтакса
If( Condition, ThenResult [, DefaultResult ] )
If( Condition1, ThenResult1 [, Condition2, ThenResult2, ... [ , DefaultResult ] ] )
- Condition(s) – Обавезно. Формула/е за тестирање тачно. Такве формуле обично садрже поређење оператера (као што су <, > и =) и тест функције као шт су IsBlank и IsEmpty.
- ThenResult(s) – Обавезно. Одговарајућа вредност која се враћа за услов који је оцењен као тачно.
- DefaultResult – Опционално. Вредност коју треба вратити ако ниједан услов не буде оцењен као тачно. Ако не наведете овај аргумент, празно је враћено.
Switch( Formula, Match1, Result1 [, Match2, Result2, ... [, DefaultResult ] ] )
- Formula – Обавезно. Формула за процену подударања. Ова формула се процењује само једном.
- Match(s) – Обавезно. Вредности за упоређивање са резултатом из Формуле. Ако се пронађе тачно подударање, одговарајући Резултат је враћен.
- Result(s) – Обавезно. Одговарајућа вредност за враћање када се пронађе тачно подударање.
- DefaultResult – Опционално. Ако тачно подударање није пронађено, враћа се ова вредност. Ако не наведете овај аргумент, празно је враћено.
Примери
Вредности у формулама
У следећим примерима, контрола Клизач (названа Slider1) има вредност 25.
Формула | Опис | Резултат |
---|---|---|
If( Slider1.Value = 25, "Result1" ) | Услов је тачан и одговарајући резултат се враћа. | „Result1“ |
If( Slider1.Value = 25, "Result1", "Result2" ) | Услов је тачан и одговарајући резултат се враћа. | „Result1“ |
If( Slider1.Value>1000, "Result1" ) | Услов је нетачан, а ни један DefaultResult није обезбеђен. | празно |
If( Slider1.Value>1000, "Result1", "Result2" ) | Услов је нетачан, DefaultResult је обезбеђен, а услов је враћен. | „Result2“ |
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) | Први услов је тачан и одговарајући резултат се враћа. Други услов је такође тачан, али се не оцењује зато што се касније појављује на листи аргумената коју услов на крају оцењује као тачно. | „Result1“ |
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) | Први услов је нетачан јер клизач није празан. Други услов је тачан јер је вредност клизача број, а одговарајући резултат се враћа. | „Result2“ |
If( Slider1.Value>1000, "Result1", Slider1.Value>50, "Result2", "Result3") | И први и други услов је нетачан, DefaultResult је обезбеђен, а услов је враћен. | „Result3“ |
Switch( Slider1.Value, 25, "Result1" ) | Вредност клизача одговара првој вредности која се проверава, а враћа се одговарајући резултат. | „Result1“ |
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) | Вредност клизача одговара другој вредности која се проверава, а враћа се одговарајући резултат. | „Result2“ |
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) | Вредност клизача не одговара ниједној вредности која се проверава. DefaultResult је обезбеђен, тако да је враћен. | „DefaultResult“ |
Разгранавање у формулама понашања
У овим примерима, контрола Уноса текста названа FirstName има вредност „John“ која је укуцана у њега.
Формула | Опис | Резултат |
---|---|---|
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) | Услов је тачан, па функција Navigate ради. Можете користити функцију IsBlank за тестирање да ли је испуњено тражено поље обрасца. Ако је FirstName blank, ова формула не би имала ефекта. |
тачно Екран је промењен у Screen1. |
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) | Без оператера !, услов је false, па се функција Navigate не покреће. Функција Back функција је дата као DefaultResult, тако да ради. |
тачно Екран се враћа на претходно приказани екран. |
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) | Вредност FirstName.Text се упоређује са „Carlos“, „Kirstin“ и „John“, тим редоследом. Налази се подударност са „John“, тако да апликација води до Screen3. |
тачно Екран је промењен у Screen3. |
Корак по корак
Додајте контролу Text input и назовите је Text1 ако подразумевано нема тај назив.
У Text1, укуцајте 30.
Додајте контролу Label и подесите њено својство Текст на ову формулу:
If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )Контрола Label приказује Наручите више! зато што је вредност Text1 већа од 20, али мања од 40.
У Text1, укуцајте 15.
Контрола Label приказује Наручите МНОГО више! зато што је вредност Text1 мања од 20.
У Text1, укуцајте 50.
Контрола Ознака приказује вредност коју сте укуцали јер је већа од 40.