Функции Remove и RemoveIf
Применимо к: Приложениям Canvas Приложениям на основе моделей Power Platform CLI
Удаляют записи из источника данных.
Заметка
Команды PAC CLI pac power-fx не поддерживают функцию RemoveIf .
Description
Функция Remove
С помощью функции Remove можно удалить из источника данных определенную запись или набор записей.
Для коллекций должна совпадать вся запись. Удалить все копии записи можно с помощью аргумента RemoveFlags.All; в противном случае удаляется только одна копия.
Функция RemoveIf
С помощью функции RemoveIf можно удалить одну или несколько записей на основе определенного условия или набора условий. Каждое из этих условий может быть любой формулой, которая возвращает результат true (истина) или false (ложь), и может содержать ссылки на столбцы источника данных (по имени). Каждое условие оценивается отдельно для каждой записи, и запись удаляется, если все условия возвращают значение true.
Remove и RemoveIf возвращают измененный источник данных в виде таблицы. Обе эти функции можно использовать только в формулах поведения.
Кроме того, удалить все записи из коллекции можно с помощью функции Clear.
Делегирование
При использовании с источником данных эти функции невозможно делегировать. Будет извлечена только первая часть источника данных, затем будет применена функция. Это может не отражать ситуацию в целом. Во время разработки может появиться предупреждение, чтобы напомнить вам об этом ограничении.
Поддержка делегирования (экспериментальная версия)
Поддержка делегирования для RemoveIf теперь находится на стадии экспериментальной предварительной версии (по умолчанию отключено) для источников данных, которые ее поддерживают. Если источник данных не поддерживает эту функцию, Power Apps отправит запрос на сервер и получит все данные, соответствующие выражению фильтра, вплоть до максимального размера 500, 2000 или размера страницы данных. Затем он выполнит операцию удаления для каждой из этих записей с отдельными обращениями к серверу.
Синтаксис
Удалить( Источник данных, Запись1 [, Запись2, ... ] [, УдалитьФлаги.Все ] )
- Источник данных – обязателен. Это источник данных, содержащий запись или записи, которые требуется удалить.
- Записи – Обязательно. Запись или записи, которые требуется удалить.
- RemoveFlags.All – Необязательно. В коллекции может существовать несколько копий одной записи. С помощью аргумента RemoveFlags.All можно удалить их все.
Удалить( Источник данных, Таблица [, УдалитьФлаги.Все ] )
- Источник данных – обязателен. Это источник данных, содержащий записи, которые требуется удалить.
- Таблица – Обязательно. Таблица с записями, которые требуется удалить.
- RemoveFlags.All – Необязательно. В коллекции может существовать несколько копий одной записи. С помощью аргумента RemoveFlags.All можно удалить их все.
RemoveIf( ИсточникДанных, Условие [, ... ] )
- Источник данных – обязателен. Это источник данных, содержащий запись или записи, которые требуется удалить.
- Условия – Обязательны. Формула, возвращающая значение true для записи или записей, которые требуется удалить. В формуле можно использовать названия столбцов из источника_данных. Если указано несколько условий, для удаления соответствующей записи все они должны возвращать значение true.
Примеры — отдельные формулы
В этих примерах выполняется удаление записи или записей из источника данных под названием IceCream, начинающегося со значений из следующей таблицы:
Создание коллекции с образцами записей
Чтобы создать коллекцию с этими данными:
Вставьте элемент управления Button.
Задайте для свойства OnSelect элемента управления button приведенную ниже формулу:
ClearCollect( IceCream, { ID: 1, Flavor: "Chocolate", Quantity: 100 }, { ID: 2, Flavor: "Vanilla", Quantity: 200 }, { ID: 3, Flavor: "Strawberry", Quantity: 300 } )
Удерживая нажатой клавишу ALT, выберите эту кнопку:
Удаление образцов записей из коллекции, используя формулу
Формула | Описание: | Result |
---|---|---|
Удалить( Мороженое, LookUp( IceCream, Flavor="Chocolate" )) |
Удаляет из источника данных запись Chocolate. | Источник данных IceCream изменен. |
Удалить( Мороженое, LookUp( IceCream, Flavor="Chocolate" ), LookUp( IceCream, Flavor="Strawberry" ) ) |
Удаляет из источника данных две записи. | Источник данных IceCream изменен. |
RemoveIf(Мороженое, Количество > 150) | Удаляет записи со значением Quantity больше 150. | Источник данных IceCream изменен. |
RemoveIf(Мороженое, Количество > 150, Осталось(Вкус, 1) = "S") | Удаляет записи со значением Quantity больше 150 и значением Flavor, начинающимся с буквы S. | Источник данных IceCream изменен. |
RemoveIf(Мороженое, правда) | Удаляет из источника данных все записи. | Источник данных IceCream изменен. |
Примеры — кнопка "Удалить" за пределами коллекции
В этом примере вы будете использовать элемент управления Gallery для перечисления записей в таблице. А затем использовать функцию Remove для выборочного удаления элемента.
Подготовка для образца данных
В этом примере используется таблица Контакты, доступная в Microsoft Dataverse с примерами приложений и данных. Вы можете развернуть демонстрационные приложения и данные, когда создаете среду. Вы также можете использовать любой другой источник данных.
Кнопка "Удалить" за пределами коллекции
В этом примере вы удалите элемент, используя кнопку за пределами коллекции.
Создайте новое пустое приложение на основе холста, используя макет телефона.
Выберите Вставить в левой области.
Выберите Вертикальная коллекция.
Элемент управления Gallery будет добавлен на ваш экран.Вам будет предложено выбрать источник данных, где вы можете выбрать источник данных из доступных источников данных.
Например, выберите таблицу Контакты для использования примера данных:Коллекция показывает элементы из этой таблицы:
Вставьте элемент управления Button с левой панели:
Переместите добавленную кнопку под элементы коллекции:
Обновить текстовое свойство кнопки на Удалить запись. Можно также использовать текст по вашему выбору.
Назначьте свойству OnSelect для этого элемента управления "Кнопка" следующую формулу:
Remove( Contacts, Gallery1.Selected )
Элемент управления Gallery делает текущую выбранную запись доступной с помощью свойства Selected. Функция Remove обращается к выбранной записи для ее удаления.
Просмотрите приложение с помощью кнопки Воспроизвести в правом верхнем углу или нажмите F5 на клавиатуре:
Выберите запись для удаления, например запись Nancy в этом примере:
Выберите Удалить запись:
Выбор кнопки удаляет выбранную запись (в данном примере, запись Nancy).
Закройте предварительный просмотр приложения.
Совет
Вы также можете использовать альтернативное поведение с клавишей ALT вместо использования предварительного просмотра приложения с помощью кнопки Воспроизведение или клавиши F5.
Примеры — значок корзины внутри коллекции
В этом примере вы удалите элемент, используя значок, помещенный внутри коллекции.
Создание коллекции с образцами данных
Если у вас уже есть подготовленный образец данных, пропустите этот шаг и перейдите к пункту Значок корзины внутри галереи.
Добавьте элемент управления Button на экран.
Задайте для свойства 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.
Создан образец коллекции, который вы можете использовать в следующем примере.
Значок корзины внутри коллекции
Создайте новое пустое приложение на основе холста, используя макет телефона.
Выберите Вставить в левой области.
Выберите Вертикальная коллекция.
Элемент управления Gallery будет добавлен на ваш экран.Вам будет предложено выбрать источник данных, где вы можете выбрать источник данных из доступных источников данных.
Например, выберите таблицу Контакты для использования примера данных:Если вы создали коллекцию, вместо этого выберите свою коллекцию:
Выберите элемент управления в верхнем элементе в коллекции.
Чтобы следующий шаг вставлял элемент в шаблон коллекции, а не вне коллекции, убедитесь, что вы выполнили этот шаг, прежде чем переходить к следующему шагу.
Выберите Добавить значок на левой панели.
Заметка
Добавить значок вставляет + значок в левую часть галереи, воспроизводимый для каждого элемента в галерее.
В верхнем элементе переместите значок в правую часть экрана.
Выберите свойство Icon для значка и установите его равным следующей формуле, чтобы обновить изображение значка в виде значка корзины:
Icon.Trash
Заметка
Префикс Icon. отображается только тогда, когда вы активно редактируете формулу.
Задайте для свойства OnSelect следующую формулу:
Remove( [@Contacts], ThisItem )
Заметка
В этом примере необходимо использовать глобальный оператор устранения неоднозначности [@...] с демонстрационными данными, которые используют таблицу Контакты, чтобы избежать конфликта с отношением один-ко-многим. Если вы используете источники данных, такие как список или таблица SQL Server, использовать глобальный оператор устранения неоднозначности не требуется.
Просмотрите приложение с помощью кнопки Воспроизвести в правом верхнем углу или нажмите F5 на клавиатуре.
Выберите значок корзины рядом с записью, например рядом с записью контакта Maria:
Запись удалена:
Закройте предварительный просмотр приложения.