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


Функции Collect, Clear и ClearCollect

Создание и удаление коллекций и добавление записей в любом источнике данных.

Collect

Применимо к: Приложениям Canvas Карточки Dataverse малокодовый подключаемым модулям Power Platform CLI Потоки рабочего стола

Функция Collect добавляет записи в источник данных. Возможно добавление следующих элементов:

  • Одно значение: значение помещается в поле Value новой записи. Поля всех остальных свойств остаются пустыми.
  • Запись: каждое именованное свойство помещается в соответствующее свойство новой записи. Поля всех остальных свойств остаются пустыми.
  • Таблица: каждая запись таблицы добавляется в виде отдельной записи в источнике данных, как описано выше. Таблица не добавляется в запись в виде вложенной таблицы. Для выполнения этой задачи сначала заключите таблицу в запись.

При использовании вместе с коллекцией будут созданы дополнительные столбцы, если это необходимо. Столбцы для других источников данных зафиксированы источником данных, и новые столбцы добавить нельзя.

Если источник данных еще не существует, создается коллекция.

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

Можно также использовать функцию Patch для создания записей в источнике данных.

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

Clear

Применимо к: приложениям Canvas

Функция Clear удаляет все записи из коллекции. Столбцы в коллекции остаются.

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

Можно использовать функцию Remove для выборочного удаления записей.

Clear не имеет возвращаемого значения. Ее можно использовать только в формуле поведения.

ClearCollect

Применимо к: Приложениям Canvas Приложениям, управляемым моделями

Функция ClearCollect удаляет все записи из коллекции. А затем добавляет другой набор записей в ту же коллекцию. Функция ClearCollect сочетает в себе возможности функций Clear и затем Collect.

ClearCollect возвращает измененную коллекцию в виде таблицы. ClearCollect можно использовать только в формуле поведения.

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

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

Синтаксис

Собрать( Источник данных, Элемент, ... )

  • Источник данных – Обязательно. Это источник данных, в который необходимо добавить данные. Если он еще не существует, создается новая коллекция.
  • Элементы - Обязательно. Одна или несколько записей или таблиц, которые необходимо добавить в источник данных.

Очистить( Коллекция )

  • Коллекция – Обязательно. Коллекция, которую необходимо очистить.

ОчиститьСобрать( Коллекция, Элемент, ... )

  • Коллекция – Обязательно. Коллекция, которую необходимо очистить, а затем добавить в нее данные.
  • Элементы - Обязательно. Одна или несколько записей или таблиц, которые необходимо добавить в источник данных.

Примеры

Удаление и добавление записей в источнике данных

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

Пример источника данных.

Формула Описание Результат
ClearCollect( Мороженое, { Вкус: "Клубника", Количество: 300 } ) Выполняется удаление всех данных из коллекции IceCream и добавляется запись, в которой указано количестве клубничного мороженого. Таблица с одной записью.

Коллекция IceCream также была изменена.
Собрать( Мороженое, { Вкус: "Фисташка", Количество: 40 }, { Вкус: "Апельсин", Количество: 200 } ) Выполняется добавление двух записей в коллекцию IceCream, в которой указано количество фисташкового и апельсинового мороженого. Таблица с двумя записями.

Коллекция IceCream также была изменена.
Прозрачный (мороженое) Выполняется удаление всех записей из коллекции IceCream. Пустая таблица.

Коллекция IceCream также была изменена.

Пошаговые примеры создания коллекции см. в разделе Создание и обновление коллекции.

Записи и таблицы

Эти примеры показывают, как обрабатываются аргументы записи и таблицы для Collect и ClearCollect.

Формула Описание Результат
ClearCollect( Мороженое, { Вкус: "Шоколад", Количество: 100 }, { Вкус: "Ваниль", Количество: 200 } ) Удаление всех данных из коллекции IceCream, затем добавление в нее двух записей, в которой указано количестве шоколадного и ванильного мороженого. Добавляемые записи предоставляются в качестве отдельных аргументов функции. Записи Chocolate и Vanilla добавлены в коллекцию.

Коллекция IceCream также была изменена.
ClearCollect( IceCream, Table( { Вкус: "Шоколад", Количество: 100 }, { Вкус: "Ваниль", Количество: 200 } ) ) То же, что и в предыдущем примере, за исключением того, что записи объединяются в таблицу и передаются через один аргумент. Содержимое таблицы извлекается запись за записью перед добавлением в коллекцию IceCream. Записи шоколада и ванили добавлены в коллекцию и изменены.

Коллекция IceCream также была изменена.
ОчиститьСобрать( Мороженое,
{ MyFavorites: Table( { Flavor: "Chocolate", Quantity: 100 }, { Flavor: "Vanilla", Quantity: 200 } ) } )
То же, что и в предыдущем примере, за исключением того, что таблица упакована в запись. Записи таблицы не извлекаются, а вместо этого вся таблица добавляется как ячейка записи. Записи шоколада и ванили добавлены в коллекцию, измененную с таблицей, заключенной в запись.

Коллекция IceCream также была изменена.