If и Switch функције

Односи се на: Апликације за платно Цопилот Студио Десктоп токови Колоне формуле Датаверсе Апликације засноване на моделу Повер Платформ ЦЛИ Датаверсе функције Повер Пагес

Одређује да ли је било који услов у скупу истинит ( If) или резултат формуле одговара било којој вредности у скупу ( Switch) и затим враћа резултат или извршава акцију.

Опис

Функција If тестира један или више услова док се не пронађе прави резултат. If Такав резултат је пронађен, одговарајућа вредност се враћа. If Такав резултат није пронађен, подразумевана вредност се враћа. У оба случаја, враћена вредност може бити ниска коју треба приказати, формула за оцену или други облик резултата.

Функција Switch процењује формулу и одређује да ли резултат одговара било којој вредности у низу који сте навели. If Пронађено је подударање, враћа се одговарајућа вредност. If Није пронађено подударање, подразумевана вредност се враћа. У оба случаја, враћена вредност може бити ниска коју треба приказати, формула за оцену или други облик резултата.

If и Switch веома су слични, али треба да користите најбољу функцију за вашу ситуацију:

  • Користи се If за процену једног стања. Најчешћа синтакса за ову функцију је If( Цондитион , ТхенРесулт , ДефаултРесулт ), која обезбеђује заједнички "ако ... онда... иначе ..." образац виђен у другим програмским алатима.
  • Користи се If за процену више неповезаних услова. У Повер Аппс-у (за разлику од Мицрософт Екцел-а), можете одредити више услова без потребе за гнездом If формула.
  • Користи се Switch за процену једног услова у односу на више могућих утакмица. Такође можете користити If у овом случају, али ћете морати да поновите формулу за свако могуће подударање.

Обе функције можете користити у формулама понашања, да бисте се гранали између две или више радњи. Само једно гранање ће покренути радњу. Услови и подударања се оцењују по редоследу, а престају ако је услов тачан или је пронађено подударање.

Празно се враћа ако ниједан услов није истинит , нема подударања су пронађени, а ви не специфицирате подразумевани резултат.

Синтакса

If( Стање , ТхенРесулт [, ДефаултРесулт ] )
If( Condition1 , ThenResult1 [, Condition2 , ThenResult2 , ... [ , ДефаултРесулт ] ] )

  • Услови - Обавезно. Формула/е за тестирање тачно. Такве формуле обично садрже поређење оператера (као што су <, > и =) и тест функције као шт су IsBlank и IsEmpty.
  • ТхенРесултс - Обавезно. Одговарајућа вредност која се враћа за услов који је оцењен као тачно.
  • ДефаултРесулт - Опционо. Вредност коју треба вратити ако ниједан услов не буде оцењен као тачно. If Не специфицирате овај аргумент, празно се враћа.

Switch( Формула , Match1 , Result1 [, Match2 , Result2 , ... [, ДефаултРесулт ] ] )

  • Формула - Обавезно. Формула за процену подударања. Ова формула се процењује само једном.
  • Утакмице - Обавезно. Вредности за упоређивање са резултатом из Формуле. If пронађено је тачно подударање, враћа се одговарајући резултат .
  • Резултати - Обавезно. Одговарајућа вредност за враћање када се пронађе тачно подударање.
  • ДефаултРесулт - Опционо. If Тачно подударање није пронађено, ова вредност се враћа. If Не специфицирате овај аргумент, празно се враћа.

Примери

Вредности у формулама

У следећим примерима, контрола Клизач (названа Slider1) има вредност 25.

Формула Опис Резултат
If( СлидерКСНУМКС.Валуе = КСНУМКС, "РезултатКСНУМКС" ) Услов је тачан и одговарајући резултат се враћа. „Result1“
If( Slider1.Валуе = 25, "Rezultat1", "Rezultat2") Услов је тачан и одговарајући резултат се враћа. „Result1“
If( Klizač1.Вредност > 1000, "Rezultat1" ) Услов је нетачан, а ни један DefaultResult није обезбеђен. Празно
If( Klizač1.Вредност > 1000, "Rezultat1", "Rezultat2" ) Услов је нетачан, DefaultResult је обезбеђен, а услов је враћен. „Result2“
If( Klizač1.Вредност = 25, "Rezultat1", Klizač1.Вредност > 0, "Rezultat2") Први услов је тачан и одговарајући резултат се враћа. Други услов је такође тачан, али се не оцењује зато што се касније појављује на листи аргумената коју услов на крају оцењује као тачно. „Result1“
If( ИсБланк( Slider1.Валуе ), "Result1", ИсНумериц( Slider1.Валуе ), "Result2" ) Први услов је нетачан јер клизач није празан. Други услов је тачан јер је вредност клизача број, а одговарајући резултат се враћа. „Result2“
If( Klizač1.Вредност > 1000, "Rezultat1", Клизач 1.Вредност > 50, "Rezultat2", "Rezultat3") И први и други услов је нетачан, DefaultResult је обезбеђен, а услов је враћен. „Result3“
Switch( Klizač1.Вредност, 25, "Rezultat1" ) Вредност клизача одговара првој вредности која се проверава, а враћа се одговарајући резултат. „Result1“
Switch( Slider1.Валуе, 20, "Result1", 25, "Result2", 30, "Result3" ) Вредност клизача одговара другој вредности која се проверава, а враћа се одговарајући резултат. „Result2“
Switch( Slider1.Валуе, 20, "Result1", 10, "Result2", 0, "Result3", "ДефаултРесулт") Вредност клизача не одговара ниједној вредности која се проверава. DefaultResult је обезбеђен, тако да је враћен. „DefaultResult“

Разгранавање у формулама понашања

У овим примерима, контрола Уноса текста названа FirstName има вредност „John“ која је укуцана у њега.

Формула Опис Резултат
If( ! ИсБланк ( ФирстНаме.Тект ), Навигате ( Screen1, СцреенТранситион.ноне ) ) Услов је тачан, па функција Navigate ради. Можете користити функцију IsBlank за тестирање да ли је испуњено тражено поље обрасца. If ФирстНаме су празни, ова формула не би имала ефекта. Истина

Екран је промењен у Screen1.
If( ИсБланк( ФирстНаме.Тект ), Навигате ( Screen1, СцреенТранситион.Ноне ), Назад () ) Без оператера !, услов је false, па се функција Navigate не покреће. Функција Back функција је дата као DefaultResult, тако да ради. Истина

Екран се враћа на претходно приказани екран.
Switch( ФирстНаме.Тект, "Царлос", Навигате( Screen1, СцреенТранситион.Ноне ), "Кирстин", Навигате( Screen2, СцреенТранситион.Ноне ), "Јохн", Навигате( Screen3, СцреенТранситион.Ноне ) Вредност FirstName.Text се упоређује са „Carlos“, „Kirstin“ и „John“, тим редоследом. Налази се подударност са „John“, тако да апликација води до Screen3. Истина

Екран је промењен у Screen3.

Корак по корак

  1. Додајте контролу Text input и назовите је Text1 ако подразумевано нема тај назив.

  2. У Text1, укуцајте 30.

  3. Додајте контролу Label и подесите њено својство Текст на ову формулу:
    If( Вредност (Tekst1.Текст) < 20, "Наручи много више!", Вредност (Tekst1.Текст) < 40, "Наручи више!", Tekst1.Текст )

    Контрола Label приказује Наручите више! зато што је вредност Text1 већа од 20, али мања од 40.

  4. У Text1, укуцајте 15.

    Контрола Label приказује Наручите МНОГО више! зато што је вредност Text1 мања од 20.

  5. У Text1, укуцајте 50.

    Контрола Ознака приказује вредност коју сте укуцали јер је већа од 40.