Функции 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. |
Стъпка по стъпка
Добавете Въвеждане на текст контрола и я назовете Text1, ако няма това име по подразбиране.
В Текст1, въведете 30.
Добавете контрола Label с име Текст и задайте свойството й на тази формула:
If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )Контролата Етикет показва Поръчайте повече! защото стойността на Текст1 е повече от 20, но по-малко от 40.
В Текст1, въведете 15.
Контролата Етикет показва Поръчайте МНОГО повече! защото стойността на Текст1 е повече от 20.
В Текст1, въведете 50.
Контролата етикет показва стойността, която сте въвели, защото е повече от 40.