Функции Remove и RemoveIf в Power Apps

Удаляют записи из источника данных.

Описание

Функция Remove

С помощью функции Remove можно удалить из источника данных определенную запись или набор записей.

Для коллекций должна совпадать вся запись. Удалить все копии записи можно с помощью аргумента All; в противном случае удаляется только одна копия.

Функция RemoveIf

С помощью функции RemoveIf можно удалить одну или несколько записей на основе определенного условия или набора условий. Каждое из этих условий может быть любой формулой, которая возвращает результат true (истина) или false (ложь), и может содержать ссылки на столбцы источника данных (по имени). Каждое условие оценивается отдельно для каждой записи, и запись удаляется, если все условия возвращают значение true.

Функции Remove и RemoveIf возвращают измененный источник данных в виде таблицы. Обе эти функции можно использовать только в формулах поведения.

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

Делегирование

При использовании с источником данных эти функции невозможно делегировать. Будет извлечена только первая часть источника данных, затем будет применена функция. Результат может не отражать ситуацию в целом. Во время разработки может отобразиться предупреждение, чтобы напомнить об этом ограничении и предложить по возможности переключиться на подлежащие делегированию альтернативы. Дополнительные сведения см. в обзоре делегирования.

Синтаксис

Remove( источник_данных, запись_1 [, запись_2, ... ] [, All ] )

  • DataSource — обязательный аргумент. Это источник данных, содержащий запись или записи, которые требуется удалить.
  • запись(_n)  — обязательный аргумент. Запись или записи, которые требуется удалить.
  • All — необязательный аргумент. В коллекции может существовать несколько копий одной записи. С помощью аргумента All можно удалить их все.

Remove( источник_данных, таблица [, All ] )

  • DataSource — обязательный аргумент. Это источник данных, содержащий записи, которые требуется удалить.
  • таблица — обязательный аргумент. Таблица с записями, которые требуется удалить.
  • All — необязательный аргумент. В коллекции может существовать несколько копий одной записи. С помощью аргумента All можно удалить их все.

RemoveIf( источник_данных, условие [, ... ] )

  • DataSource — обязательный аргумент. Это источник данных, содержащий запись или записи, которые требуется удалить.
  • Condition(s) — обязательный аргумент. Формула, возвращающая значение true для записи или записей, которые требуется удалить. В формуле можно использовать названия столбцов из источника_данных. Если указано несколько условий, для удаления соответствующей записи все они должны возвращать значение true.

Примеры — отдельные формулы

В этих примерах выполняется удаление записи или записей из источника данных под названием IceCream, начинающегося со значений из следующей таблицы:

Создание коллекции с образцами записей

Чтобы создать коллекцию с этими данными:

  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,
First( Filter( IceCream, Flavor="Chocolate" ) ) )
Удаляет из источника данных запись Chocolate.

Источник данных IceCream изменен.
Remove( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ) First( Filter( IceCream, Flavor="Strawberry" ) ) )
Удаляет из источника данных две записи.

Источник данных IceCream изменен.
RemoveIf( IceCream, Quantity > 150 ) Удаляет записи со значением Quantity больше 150.

Источник данных IceCream изменен.
RemoveIf( IceCream, Quantity > 150, Left( Flavor, 1 ) = "S" ) Удаляет записи со значением Quantity больше 150 и значением Flavor, начинающимся с буквы S.


Источник данных IceCream изменен.
RemoveIf( IceCream, true ) Удаляет из источника данных все записи.

Источник данных IceCream изменен.

В этом примере вы будете использовать элемент управления Коллекция для перечисления записей в таблице. А затем использовать функцию Удалить для выборочного удаления элемента.

Подготовка для образца данных

В этом примере используется сущность Контакты в Common Data Service, доступная с демонстрационными приложениями и данными. Вы можете развернуть демонстрационные приложения и данные, когда создаете среду. Вы также можете использовать любой другой источник данных.

В этом примере вы удалите элемент, используя кнопку за пределами коллекции.

  1. Создайте новое пустое приложение на основе холста, используя макет телефона.

    Пустое приложение на основе холста с использованием макета телефона

  2. Выберите Вставить в левой области.

  3. Выберите Вертикальная коллекция.
    Элемент управления Коллекция будет добавлен на ваш экран.

    Использование панели инструментов "Вставка" для добавления элемента управления "Вертикальная галерея"

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

    Выбор сущности "Контакты" для отображения в коллекции

    Коллекция показывает элементы из этой сущности:

    Добавлена коллекция, показывающая сущность "Контакты"

  5. Вставьте элемент управления Кнопка с левой панели:

    Использование панели инструментов "Вставка" для добавления элемента управления "Кнопка"

  6. Переместите добавленную кнопку под элементы коллекции:

    Переместите кнопку

  7. Обновить текстовое свойство кнопки на Удалить запись. Можно также использовать текст по вашему выбору.

    Переименование кнопки

  8. Назначьте свойству OnSelect для этого элемента управления "Кнопка" следующую формулу:

    Remove( Contacts, Gallery1.Selected )
    

    Задание свойству OnSelect элемента управления "Кнопка"

    Элемент управления "Коллекция" делает текущую выбранную запись доступной с помощью свойства Selected. Функция 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 для значка и установите его равным следующей формуле, чтобы обновить изображение значка в виде значка корзины:

    Icon.Trash
    

    Примечание

    Префикс Icon. отображается только тогда, когда вы активно редактируете формулу.

    Изменение значка на значок корзины

  9. Задайте для свойства OnSelect следующую формулу:

    Remove( [@Contacts], ThisItem )
    

    Примечание

    Вы должны использовать глобальный оператор устранения неоднозначности [@...] в этом примере с образцами данных, которые используют сущность Контакты, чтобы избежать конфликта с отношением Один ко многим. Если вы используете источники данных, такие как список SharePoint или таблица SQL Server, использовать глобальной оператора устранения неоднозначности не требуется.

    OnSelect для значка корзины

  10. Просмотрите приложение с помощью кнопки Воспроизвести в правом верхнем углу или нажмите F5 на клавиатуре.

  11. Выберите значок корзины рядом с записью, например рядом с записью контакта Maria:

    Коллекция с одним удаленным контактом

    Запись удалена:

    Удаленная запись

  12. Закройте предварительный просмотр приложения.