If и Switch функции

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

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

Описание

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

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

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

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

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

Празно се връща, ако няма изпълнени условия, не са намерени съвпадения и не сте задали резултат по подразбиране.

Синтаксис

If( Условие, ThenResult [, DefaultResult ] )
If( Условие1, ThenResult1 [, Условие2, ThenResult2, ... [ , DefaultResult ] ] )

  • Условия - Задължително. Формули за тестване вярно. Такива формули обикновено съдържат сравнение оператори (като <, >, и =) и тестови функции като IsBlank и IsEmpty.
  • ТогаваРезултати - Задължително. Съответната стойност, която трябва да се върне за условие, което се оценява на вярно.
  • DefaultResult - По избор. Стойността, която трябва да се върне, ако никое условие не се оценява на вярно. If не зададете този аргумент, връща се празна стойност .

Switch( Формула, Съвпадение1, Резултат1 [, Съвпадение2, Резултат2, ... [, DefaultResult ] ] )

  • Формула - Задължително. Формула за оценка на съвпадения. Тази формула се оценява само веднъж.
  • Съвпадения - Задължително. Стойности за сравнение с резултата от Формула. If намерено е точно съвпадение, връща се съответният резултат .
  • Резултати - Задължителни. Съответната стойност за връщане, когато се намери точно съвпадение.
  • DefaultResult - По избор. If не е намерено точно съвпадение, връща се тази стойност. If не зададете този аргумент, връща се празна стойност .

Примери

Стойности във формули

В следващите примери: контрола Плъзгач (име Slider1) има стойност от 25.

Формула Описание Result
If( Slider1.Value = 25, "Резултат1" ) Условието е вярно, и съответният резултат се връща. "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 ), "Резултат1", IsNumeric( Slider1.Value ), "Резултат2" ) Първото условие е невярно, защото плъзгачът не е празен. Второто условие е вярно, защото стойността на плъзгача е число и съответният резултат се връща. "Result2"
If( Плъзгач1.Стойност > 1000, "Резултат1", Плъзгач1.Стойност > 50, "Резултат2", "Резултат3") И двете условия са невярно, предоставен е DefaultResult и е върнат. "Result3"
Switch( Плъзгач1.Стойност, 25, "Резултат1" ) Стойността на плъзгача съвпада с първата стойност, която се проверява, и съответният резултат се връща. "Result1"
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) Стойността на плъзгача съвпада с втората стойност, която се проверява, и съответният резултат се връща. "Result2"
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) Стойността на плъзгача не съвпада с никоя стойност за проверка. DefaultResult беше предоставен, така че е върнат. "DefaultResult"

Разклоняване във формули на поведение

В тези примери контролата Въвеждане на текст с име FirstName има въведена в него стойност „Джон“.

Формула Описание Result
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) Условието е вярно, така че Navigate функцията работи. Можете да използвате IsBlank функция за тестване дали е попълнено задължително поле за формуляр. If FirstName бяха празни, тази формула нямаше да има ефект. верен

Дисплеят е променен на 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.