Поділитися через


If і Switch функції

Застосовується до: Canvas apps Copilot Studio Desktop flows Dataverse formula columns Model-driven apps Power Platform CLI Dataverse functions Power Pages

Визначає, чи будь-яка умова в наборі має значення true (If) або результат формули відповідає будь-якому значенню в наборі (Switch), а потім повертає результат або виконує дію.

Опис

Функція If перевіряє одну або кілька умов, доки не буде знайдено істинний результат. If такий результат знайдено, повертається відповідне значення. If такого результату не знайдено, повертається значення за промовчанням. В обох випадках повернуте значення може бути рядком для відображення, формулою для обчислення або результатом в іншій формі.

Функція Switch обчислює формулу та визначає, чи збігається результат із будь-яким значенням у вказаній послідовності. If знайдено збіг, повертається відповідне значення. If збігів не знайдено, повертається значення за промовчанням. В обох випадках повернуте значення може бути рядком для відображення, формулою для обчислення або результатом в іншій формі.

If і Switch дуже схожі, але слід використовувати найкращу функцію для своєї ситуації:

  • Використовується If для обчислення однієї умови. Найпоширеніший синтаксис цієї функції : If( Condition, ThenResult, DefaultResult ), який надає загальне значення "якщо ... то... інакше..." патерн, який можна побачити в інших інструментах програмування.
  • Використовується If для обчислення кількох непов'язаних умов. У надбудові Power Apps (на відміну від Microsoft Excel) можна вказати кілька умов, не вкладаючи If формули.
  • Використовується Switch для обчислення однієї умови для кількох можливих збігів. У цьому випадку також можна використовувати If формулу, але потрібно повторити формулу для кожного можливого збігу.

Обидві ці функції можна використовувати у формулах поведінки для відгалуження двох або більшої кількості дій. Лише одне відгалуження ініціюватиме дію. Оцінка умов і збігів виконується за порядком і припиняється, якщо буде знайдено умову зі значенням true або збіг.

Порожнє повертається, якщо жодні умови не виконуються , не знайдено збігів і ви не вказуєте результат за замовчуванням.

Синтаксис

If( Умова, ThenResult [, DefaultResult ] )
If( Умова1, ThenResult1 [, Умова2, ПотімРесульт2, ... [ , DefaultResult ] ] )

  • Умови - обов’язкові. Формула або формули для перевірки на значення true. Такі формули зазвичай містять оператори порівняння (наприклад, <, > та =) і тестові функції, як-от IsBlank та IsEmpty.
  • ПотімРезультати - Обов’язкові. Відповідне значення, що повертається для умови з оціненим значенням true.
  • DefaultResult - необов’язковий. Значення, що повертається, якщо немає жодної умови з оціненим значенням true. If не вказано цей аргумент, буде повернуто пустий аргумент.

Switch( Формула, збіг1, результат1 [, збіг2, результат2; ... [, DefaultResult ] ] )

  • Формула - Обов’язкова. Формула для оцінки на збіги. Ця формула оцінюється тільки один раз.
  • Матчі - обов’язкові . Значення для порівняння з результатом формули. If знайдено точний збіг, повертається відповідний результат .
  • Результати- Обов’язкові. Відповідне значення для повернення в разі виявлення точного збігу.
  • DefaultResult - необов’язковий. If точний збіг не знайдено, це значення повертається. If не вказано цей аргумент, буде повернуто пустий аргумент.

Приклади

Значення у формулах

У зазначених нижче прикладах елемент керування Повзунок (з ім’ям Slider1 (Повзунок1)) має значення 25.

Формула Опис Результат
If( Повзунок1.Значення = 25, "Результат1" ) Умова має значення true та повертається відповідний результат. "Result1"
If( Повзунок1.Значення = 25, "Результат1", "Результат2" ) Умова має значення true та повертається відповідний результат. "Result1"
If( Повзунок1.Значення > 1000, "Результат1" ) Умова має значення false та не вказано аргументу DefaultResult. Порожній
If( Повзунок1.Значення > 1000, "Результат1", "Результат2" ) Умова має значення false, було вказано аргумент DefaultResult і він повертається. "Result2"
If( Повзунок1.Значення = 25, "Результат1", Повзунок1.Значення > 0, "Результат2" ) Перша умова має значення true та повертається відповідний результат. Друга умова також має значення true, проте вона не оцінюється, оскільки в списку аргументів вона стоїть після умови, що повертає значення true. "Result1"
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) Перша умова має значення false, оскільки повзунок не є пустим. Друга умова має значення true, тому що значенням повзунка є число; повертається відповідний результат. "Result2"
If( Повзунок1.Значення > 1000, "Результат1", повзунок1.Значення > 50, "Результат2", "Результат3") Перша та друга умови мають значення false, було вказано аргумент DefaultResult і він повертається. "Result3"
Switch( Повзунок1.Значення, 25, "Результат1" ) Значення повзунка відповідає першому значенню, яке має бути перевірено; повертається відповідний результат. "Result1"
Switch( Повзунок1.Значення, 20, "Результат1", 25, "Результат2", 30, "Результат3" ) Значення повзунка відповідає другому значенню, яке має бути перевірено; повертається відповідний результат. "Result2"
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) Значення повзунка не відповідає жодному значенню, яке має бути перевірено. Було вказано аргумент DefaultResult і він повертається. "DefaultResult"

Відгалуження у формулах поведінки

У цих прикладах в елемент керування Ввід тексту з іменем FirstName (Ім’я) було введено значення «John» (Джон).

Формула Опис Результат
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) Умова має значення true, тому виконується функція Navigate. За допомогою функції IsBlank можна перевірити, чи було заповнено обов’язкове поле форми. If Ім'япусте, ця формула не матиме ефекту. Справжній

Екран змінюється на 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 порівнюється зі значеннями «Carlos» (Карлос), «Kirstin» (Кірстін) та «John» у цьому порядку. Знайдено збіг зі значенням «John», тому програма переходить до екрана Screen3. Справжній

Екран змінюється на Screen3.

Покрокові інструкції

  1. Додайте елемент керування Ввід тексту та назвіть його Text1 (Текст1), якщо це ім’я не було присвоєно йому за замовчуванням.

  2. В елементі керування з іменем Text1 уведіть 30.

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

    Елемент керування Надпис відображає фразу Order more!, оскільки значення Текст становить понад 20, однак менше 40.

  4. В елементі керування з іменем Text1 уведіть 15.

    Елемент керування Надпис відображає фразу Order MANY more!, оскільки значення Текст становить менше 20.

  5. В елементі керування з іменем Text1 уведіть 50.

    Елемент керування Підпис відображає введене значення, бо воно перевищує 40.