Функції «Видалити» та «ВидалитиЯкщо»
Застосовується до: програм 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, яке починається з даних у цій таблиці:
Створення колекції зі зразками записів
Щоб створити колекцію з цими даними, виконайте зазначені нижче дії.
Вставте елемент керування Кнопка.
Для властивості OnSelect елемента керування кнопки встановіть таку формулу:
ClearCollect( IceCream, { ID: 1, Flavor: "Chocolate", Quantity: 100 }, { ID: 2, Flavor: "Vanilla", Quantity: 200 }, { ID: 3, Flavor: "Strawberry", Quantity: 300 } )
Натисніть кнопку, утримуючи натиснутою клавішу 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 з прикладами програм і даних. Під час створення середовища можна розгортати приклади програм і даних. Можна також використовувати будь-яке інше джерело даних.
Кнопка видалення за межами галереї
У цьому прикладі ви видалите елемент за допомогою кнопки, яка знаходиться за межами галереї.
Створіть нову пусту компоновану програму за допомогою макета для телефону.
В області ліворуч виберіть Вставлення.
Виберіть Вертикальна галерея.
Елемент керування Галерея буде додано на екран.Відобразиться запит на вибір джерела даних, де можна вибрати одне з доступних джерел даних.
Наприклад, виберіть таблицюКонтакти для використання прикладу даних:У колекції відображаються елементи з цієї таблиці.
Вставте елемент керування Кнопка в області ліворуч:
Перемістіть додану кнопку під елементи галереї:
Змініть властивість тексту кнопки на Видалення запису. Можна також використати текст на власний вибір:
Установіть для цього елемента керування «Кнопка» властивість OnSelect із такою формулою:
Remove( Contacts, Gallery1.Selected )
Елемент керування «Галерея» робить вибраний запис доступним за допомогою властивості Вибране. Функція Remove посилається на цей вибраний запис, щоб видалити його.
Перегляньте програму, використовуючи кнопку Відтворення в правому верхньому кутку або натиснувши клавішу F5 на клавіатурі:
Виберіть запис, який потрібно видалити, наприклад запис Nancy в цьому прикладі:
Натисніть Видалити запис:
Натискання кнопки видаляє вибраний запис (у цьому прикладі – запис Nancy).
Закрийте попередній перегляд програми.
Чайові
Можна також використовувати альтернативну поведінку з клавішею Alt замість попереднього перегляду програми з кнопкою Відтворення або клавішею F5.
Приклади для піктограми кошика в галереї
У цьому прикладі ви видалите елемент за допомогою піктограми, яка знаходиться в галереї.
Створення колекції зі зразками даних
Якщо ви вже підготували зразки даних, пропустіть цей крок і перейдіть до піктограми кошика в галереї.
Додайте елемент керування Кнопка на екран.
Для властивості 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" } )
Натисніть кнопку, утримуючи натиснутою клавішу Alt.
Буде створено зразок колекції, який можна використовувати в нижченаведеному прикладі.
Піктограма кошика в галереї
Створіть нову пусту компоновану програму за допомогою макета для телефону.
В області ліворуч виберіть Вставлення.
Виберіть Вертикальна галерея.
Елемент керування Галерея буде додано на екран.Відобразиться запит на вибір джерела даних, де можна вибрати одне з доступних джерел даних.
Наприклад, виберіть таблицюКонтакти для використання прикладу даних:Якщо ви створили колекцію, виберіть її:
Виберіть елемент керування у верхньому елементі галереї.
Щоб під час наступного кроку елемент було вставлено в шаблон галереї, а не за її межі, обов’язково виконайте цей крок, перш ніж перейти до наступного кроку.
Виберіть піктограму «Додати» в області ліворуч.
Нотатка
Піктограма «Додати» вставляє піктограму + у лівій частині галереї, репліковану для кожного елемента в галереї.
У верхній частині елемента перемістіть піктограму в правий бік екрана.
Виберіть властивість Піктограма для піктограми й встановіть для неї таку формулу, щоб оновити зображення піктограми кошика:
Icon.Trash
Нотатка
Префікс Icon. відображається лише під час активного редагування формули.
Для властивості OnSelect установіть таку формулу:
Remove( [@Contacts], ThisItem )
Нотатка
Потрібно використовувати глобальний оператор усунення неоднозначності[@...] у цьому прикладі зі зразком даних, що використовує таблицю Контакти для уникнення конфлікту зі зв'язком Один-до-багатьох. Якщо використовуються джерела даних, наприклад таблиця SQL Server або список, глобальний оператор усунення неоднозначності використовувати не потрібно.
Перегляньте програму, використовуючи кнопку Відтворення в правому верхньому кутку або натиснувши клавішу F5 на клавіатурі.
Клацніть піктограму кошика поруч із записом, наприклад Maria:
Запис видалено:
Закрийте попередній перегляд програми.