Споделяне чрез


Функции If и Switch

Отнася се за: Колони Dataverse с формули за приложения за платно Потоци на работния плот Приложения на компютъра Power Pages Power Platform на командването

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

Описание

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

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

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

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

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

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

Синтаксис

Ако( Условие; ТогаваРезултат [, РезултатПо подразбиране] )
Ако(Условие1,ТогаваРезултат1 [, Условие2,ТогаваРезултат2 , ... [, Резултат по подразбиране] ] )

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

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

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

Примери

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

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

Формула Описание Result
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"
Превключвател ( Плъзгач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 има въведена в него стойност „Джон“.

Формула Описание Резултат
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, "Поръчай МНОГО повече!", Value(Text1.Text) < 40, "Поръчай повече!", Text1.Text )

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

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

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

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

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