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


Функції «Видалити» та «ВидалитиЯкщо»

Застосовується до: програм Canvas Програм Power Platform CLI на основі моделі

Видаляє записи з джерела даних.

Нотатка

Команди PAC CLI pac power-fx не підтримують функцію RemoveIf.

Опис

Функція Remove

Використовуйте функцію Remove, щоб видалити певний запис або записи з джерела даних.

Для колекцій має збігатися весь запис. За допомогою аргументу RemoveFlags.All можна видалити всі копії запису, інакше буде видалено лише одну копію запису .

Функція RemoveIf

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

Функції Remove та RemoveIf повертають змінене джерело даних як таблицю. Обидві функції можна використовувати лише у формулах поведінки.

Крім того, можна скористатися функцією Clear, щоб видалити всі записи в колекції.

Делегування

При використанні з джерело даних ці функції не можна делегувати. Буде отримано лише першу частину джерела даних, а потім – застосовано функцію. Це може не відображати повну історію. Під час авторства може з’явитися попередження, яке нагадає вам про це обмеження.

Підтримка делегування (експериментальна)

Підтримка делегування для RemoveIf тепер доступна в експериментальному попередньому перегляді (за замовчуванням OFF) для джерел даних, які її підтримують. Якщо джерело даних не підтримує цю функцію, надішле запит на сервер і отримає всі дані, які відповідають виразу фільтра, до максимуму 500, Power Apps 2000 або розміру сторінки даних. Потім він виконає операцію видалення кожного з цих записів з окремими викликами до сервера.

Синтаксис

Remove( DataSource,Record1[,Record2 , ... ] [, RemoveFlags.All ])

  • DataSource — обов’язковий аргумент. Джерело даних, що містить запис або записи, які необхідно видалити.
  • Record(s) — обов'язковий аргумент. Запис або записи, які потрібно видалити.
  • RemoveFlags.All – необов’язковий. У колекції один і той же запис може відображатися не раз. Можна додати аргумент RemoveFlags.All , щоб видалити всі копії запису.

Remove( Джерело даних,Таблиця [,RemoveFlags.All ] )

  • DataSource — обов’язковий аргумент. Джерело даних, що містить записи, які потрібно видалити.
  • Table — обов’язковий аргумент. Таблиця записів для видалення.
  • RemoveFlags.All – необов’язковий. У колекції один і той же запис може відображатися не раз. Можна додати аргумент RemoveFlags.All , щоб видалити всі копії запису.

RemoveIf( DataSource, Condition [, ... ] )

  • DataSource — обов’язковий аргумент. Джерело даних, що містить запис або записи, які необхідно видалити.
  • Condition(s) — обов’язковий аргумент. Формула, яка має значення істина для запису або записів, що потрібно видалити. У формулі можна використовувати імена стовпців із DataSource. Якщо вказано кілька умов, усі вони повинні мати значення істина для запису або записів, що потрібно видалити.

Приклади – одиночні формули

У цих прикладах можна видалити запис або записи в джерелі даних під назвою IceCream, яке починається з даних у цій таблиці:

Приклад Iceсream.

Створення колекції зі зразками записів

Щоб створити колекцію з цими даними, виконайте зазначені нижче дії.

  1. Вставте елемент керування Кнопка.

  2. Для властивості OnSelect елемента керування кнопки встановіть таку формулу:

    ClearCollect( IceCream,
                  { ID: 1, Flavor: "Chocolate",  Quantity: 100 },
                  { ID: 2, Flavor: "Vanilla",    Quantity: 200 },
                  { ID: 3, Flavor: "Strawberry", Quantity: 300 }
    )
    
  3. Натисніть кнопку, утримуючи натиснутою клавішу Alt:

Видалення зразків записів із колекції за допомогою формули

Формула Опис Результат
Remove( IceCream,
LookUp( Морозиво, Flavor="Шоколад" ))
Видаляє запис Chocolate із джерела даних. Результат з ваніллю та полуницею.

Джерело даних IceCream було змінено.
Remove( IceCream,
LookUp( Морозиво, Flavor="Шоколад" ), LookUp( Морозиво, Flavor="Полуниця" ) )
Видаляє два записи з джерела даних. Результат лише з ваніллю.

Джерело даних IceCream було змінено.
RemoveIf( IceCream, Quantity > 150 ) Видаляє записи, у яких значення Кількість перевищує 150. Результат лише з шоколадом.

Джерело даних IceCream було змінено.
RemoveIf( IceCream, Quantity > 150, Left( Flavor, 1 ) = "S" ) Видаляє записи, у яких значення Кількість перевищує 150, а Аромат починається з літери S. Результат з шоколадом і ваніллю.


Джерело даних IceCream було змінено.
RemoveIf( IceCream, true ) Видаляє всі записи з джерела даних. Результат без морозива.

Джерело даних IceCream було змінено.

У цьому прикладі ви будете використовувати елемент керування Галерея, щоб указати всі записи в таблиці. А потім використаєте функцію Remove для вибіркового видалення елемента.

Підготування зразків даних

У цьому прикладі використовується таблиця Контакти у Microsoft Dataverse з прикладами програм і даних. Під час створення середовища можна розгортати приклади програм і даних. Можна також використовувати будь-яке інше джерело даних.

У цьому прикладі ви видалите елемент за допомогою кнопки, яка знаходиться за межами галереї.

  1. Створіть нову пусту компоновану програму за допомогою макета для телефону.

    Пуста компонована програма з використанням макета для телефону.

  2. В області ліворуч виберіть Вставлення.

  3. Виберіть Вертикальна галерея.
    Елемент керування Галерея буде додано на екран.

    Використання панелі інструментів «Вставлення» для додавання елемента керування «Вертикальна галерея».

  4. Відобразиться запит на вибір джерела даних, де можна вибрати одне з доступних джерел даних.
    Наприклад, виберіть таблицюКонтакти для використання прикладу даних:

    Вибір таблиці «Контакти» для відображення в колекції.

    У колекції відображаються елементи з цієї таблиці.

    Колекція, додана з таблицею «Контактні особи».

  5. Вставте елемент керування Кнопка в області ліворуч:

    Використання панелі інструментів «Вставлення» для додавання елемента керування «Кнопка».

  6. Перемістіть додану кнопку під елементи галереї:

    Переміщення кнопки.

  7. Змініть властивість тексту кнопки на Видалення запису. Можна також використати текст на власний вибір:

    Перейменування кнопки.

  8. Установіть для цього елемента керування «Кнопка» властивість OnSelect із такою формулою:

    Remove( Contacts, Gallery1.Selected )
    

    Настройка властивості OnSelect елемента керування «Кнопка».

    Елемент керування «Галерея» робить вибраний запис доступним за допомогою властивості Вибране. Функція Remove посилається на цей вибраний запис, щоб видалити його.

  9. Перегляньте програму, використовуючи кнопку Відтворення в правому верхньому кутку або натиснувши клавішу F5 на клавіатурі:

    Попередній перегляд програми.

  10. Виберіть запис, який потрібно видалити, наприклад запис Nancy в цьому прикладі:

    Виберіть запис.

  11. Натисніть Видалити запис:

    Галерея контактних осіб без запису Nancy, який було видалено.

    Натискання кнопки видаляє вибраний запис (у цьому прикладі – запис Nancy).

  12. Закрийте попередній перегляд програми.

    Чайові

    Можна також використовувати альтернативну поведінку з клавішею Alt замість попереднього перегляду програми з кнопкою Відтворення або клавішею F5.

У цьому прикладі ви видалите елемент за допомогою піктограми, яка знаходиться в галереї.

Створення колекції зі зразками даних

Якщо ви вже підготували зразки даних, пропустіть цей крок і перейдіть до піктограми кошика в галереї.

  1. Додайте елемент керування Кнопка на екран.

  2. Для властивості OnSelect установіть таку формулу:

    ClearCollect( SampleContacts,
          { 'Full Name': "Yvonne McKay (sample)",      'Primary Email': "someone_a@example.com" },
          { 'Full Name': "Susanna Stubberod (sample)", 'Primary Email': "someone_b@example.com" },
          { 'Full Name': "Nancy Anderson (sample)",    'Primary Email': "someone_c@example.com" },
          { 'Full Name': "Maria Campbell (sample)",    'Primary Email': "someone_d@example.com" },
          { 'Full Name': "Robert Lyon (sample)",       'Primary Email': "someone_e@example.com" },
          { 'Full Name': "Paul Cannon (sample)",       'Primary Email': "someone_f@example.com" },
          { 'Full Name': "Rene Valdes (sample)",       'Primary Email': "someone_g@example.com" }
    )
    
  3. Натисніть кнопку, утримуючи натиснутою клавішу Alt.

Буде створено зразок колекції, який можна використовувати в нижченаведеному прикладі.

  1. Створіть нову пусту компоновану програму за допомогою макета для телефону.

    Пуста компонована програма з використанням макета для телефону.

  2. В області ліворуч виберіть Вставлення.

  3. Виберіть Вертикальна галерея.
    Елемент керування Галерея буде додано на екран.

    Використання панелі інструментів «Вставлення» для додавання елемента керування «Вертикальна галерея».

  4. Відобразиться запит на вибір джерела даних, де можна вибрати одне з доступних джерел даних.
    Наприклад, виберіть таблицюКонтакти для використання прикладу даних:

    Вибір таблиці «Контакти» для відображення в колекції.

    Якщо ви створили колекцію, виберіть її:

    Зразок колекції контактних осіб.

  5. Виберіть елемент керування у верхньому елементі галереї.

    Щоб під час наступного кроку елемент було вставлено в шаблон галереї, а не за її межі, обов’язково виконайте цей крок, перш ніж перейти до наступного кроку.

    Вибір верхнього запису в галереї.

  6. Виберіть піктограму «Додати» в області ліворуч.

    Використання панелі інструментів «Вставлення» для додавання елемента керування «Піктограма».

    Нотатка

    Піктограма «Додати» вставляє піктограму + у лівій частині галереї, репліковану для кожного елемента в галереї.

  7. У верхній частині елемента перемістіть піктограму в правий бік екрана.

    Переміщення піктограми.

  8. Виберіть властивість Піктограма для піктограми й встановіть для неї таку формулу, щоб оновити зображення піктограми кошика:

    Icon.Trash
    

    Нотатка

    Префікс Icon. відображається лише під час активного редагування формули.

    Змінення піктограми на піктограму кошика.

  9. Для властивості OnSelect установіть таку формулу:

    Remove( [@Contacts], ThisItem )
    

    Нотатка

    Потрібно використовувати глобальний оператор усунення неоднозначності[@...] у цьому прикладі зі зразком даних, що використовує таблицю Контакти для уникнення конфлікту зі зв'язком Один-до-багатьох. Якщо використовуються джерела даних, наприклад таблиця SQL Server або список, глобальний оператор усунення неоднозначності використовувати не потрібно.

    OnSelect для піктограми кошика.

  10. Перегляньте програму, використовуючи кнопку Відтворення в правому верхньому кутку або натиснувши клавішу F5 на клавіатурі.

  11. Клацніть піктограму кошика поруч із записом, наприклад Maria:

    Галерея, у якій видалено одну контактну особу.

    Запис видалено:

    Видалений запис.

  12. Закрийте попередній перегляд програми.