Функции If и Switch

Отнася се за: Платно приложения Dataverse формула колони Desktop потоци Модел задвижване приложения Power Platform CLI

Определя дали някое условие в набор е вярно (If) или резултатът от формула съответства на всяка стойност в набор (Switch) и след това връща резултат или изпълнява действие.

Описание

Функцията If функция тества едно или повече условия, докато вярно резултат е намерен. Ако се намери такъв резултат, се връща съответната стойност. Ако не се намери такъв резултат, се връща стойност по подразбиране. И в двата случая върнатата стойност може да бъде низ, който да се покаже, формула за оценка или друга форма на резултат.

Функцията Switch оценява формула и определя дали резултатът съвпада с която и да е стойност в последователност, която сте посочили. Ако се намери такъв съвпадение, се връща съответната стойност. Ако не се намери такова съвпадение, се връща стойност по подразбиране. И в двата случая върнатата стойност може да бъде низ, който да се покаже, формула за оценка или друга форма на резултат.

If и Switch са много подобни, но трябва да използвате най-добрата функция за вашата ситуация:

  • Използвайте If, за да се оцени едно условие. Най-често срещаният синтаксис за тази функция е If(Condition,ThenResult,DefaultResult ), който предоставя общото "if ... тогава... иначе ..." модел, наблюдаван в други инструменти за програмиране.
  • Използвайте If за оценка на множество несвързани условия. В Power Apps (за разлика от Microsoft Excel), можете да зададете множество условия, без да се налага да гнездите If формули.
  • Използвайте Switch, за да се оцени едно условие срещу множество възможни съвпадения. Можете също да използвате If в този случай, но ще трябва да повторите формулата за всяко възможно съвпадение.

Можете да използвате и двете функции във формули за поведение, за да разклоните между две или повече действия. Само един клон ще задейства действие. Условията и съвпаденията се оценяват по ред и спират, ако е налице условие вярно или е намерено съвпадение

Blank се връща, ако няма условия 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.

Формула Описание Result
If( Slider1.Value = 25, "Result1" ) Условието е вярно, и съответният резултат се връща. "Result1"
If( Slider1.Value = 25, "Result1", "Result2" ) Условието е вярно, и съответният резултат се връща. "Result1"
If( Slider1.Value>1000, "Result1" ) Условието е невярно, и не е предоставен DefaultResult. blank
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 има въведена в него стойност „Джон“.

Формула Описание Резултат
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 се сравнява с "Карлос", "Кристин" и "Джон" в този ред. Намерено е съвпадение с „Джон“, така че приложението навигира към Screen3. вярно

Дисплеят е променен на Screen3.

Стъпка по стъпка

  1. Добавете Въвеждане на текст контрола и я назовете Text1, ако няма това име по подразбиране.

  2. В Текст1, въведете 30.

  3. Добавете контрола Label с име Текст и задайте свойството й на тази формула:
    If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )

    Контролата Етикет показва Поръчайте повече! защото стойността на Текст1 е повече от 20, но по-малко от 40.

  4. В Текст1, въведете 15.

    Контролата Етикет показва Поръчайте МНОГО повече! защото стойността на Текст1 е повече от 20.

  5. В Текст1, въведете 50.

    Контролата етикет показва стойността, която сте въвели, защото е повече от 40.