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


AddColumns, , DropColumnsRenameColumnsи ShowColumns функции

Применимо к: Приложения На основе холста Copilot Studio Desktop поддерживают функции Power Platform CLI Dataverse, управляемые моделью

Формирует таблицу или запись путем добавления, удаления, переименования и выбора его столбцов.

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

Обзор

Эти функции формируют таблицу или запись, изменяя его столбцы:

  • Уменьшите таблицу или запись, содержащую несколько столбцов до одного столбца для использования с функциями с одним столбцом, такими как Lower или Sqrt.
  • Добавьте вычисляемый столбец в таблицу или запись (например, столбец "Общая цена", показывающий результаты умножения количества на единицу).
  • Переименуйте столбец, чтобы его имя было более понятным в представлениях для пользователей или в формулах.

Таблица в Power Apps считается значением, как любая строка или число. Таблицы можно использовать в качестве аргумента формулы, и функции могут возвращать таблицу.

Заметка

Функции, которые описаны в этом разделе, не изменяют оригинальную таблицу. Они принимают таблицу в качестве аргумента и возвращают новую таблицу, применив к ней запрошенное преобразование. Подробнее см. раздел Работа с таблицами.

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

Description

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

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

Поля обрабатываемой в настоящее время записи доступны в формуле. Используйте оператор ThisRecord или просто укажите поля по имени, как указываются любые другие значения. Оператор As также можно использовать для присвоения имени обрабатываемой записи, что упростит понимание формулы и обеспечивает доступность вложенных записей. Дополнительные сведения см. в приведенных ниже примерах и в описании работы с областью записи.

Функция DropColumns исключает столбцы из таблицы или записи. Все остальные столбцы сохраняются без изменений. DropColumns исключает столбцы и ShowColumns включает столбцы.

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

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

Для всех этих функций результатом является новая таблица или запись с примененным преобразованием. Исходная таблица или запись не изменяется. Невозможно изменить существующую таблицу или запись с помощью формулы. SharePoint, Microsoft Dataverse, SQL Server и другие источники данных предоставляют средства для изменения столбцов списков и таблиц, которые часто называются схемой. Функции в этом разделе преобразуют только входную таблицу или запись, не изменяя исходный код, в выходную таблицу или запись для дальнейшего использования.

Аргументы этих функций поддерживают делегирование. Например, функция Filter, используемая в качестве аргумента для извлечения связанных записей, просматривает все списки, даже если источник данных '[dbo].[AllListings]' содержит миллион строк:

AddColumns( RealEstateAgents,
   Listings,
   Filter(  '[dbo].[AllListings]', ListingAgentName = AgentName )
)

Однако на выходные данные этих функций распространяется ограничение на количество записей без делегирования. В этом примере возвращается только 500 записей, даже если источник данных RealEstateAgents имеет 501 или более записей.

Если вы используете AddColumns таким образом, фильтр должен выполнять отдельные вызовы к источнику данных для каждой из этих первых записей в RealEstateAgents, что приводит к большому объему сетевого чата. Если [dbo](.[AllListings] достаточно мало и не меняется часто. Вы можете вызвать функцию Collect в OnStart, чтобы кэшировать источник данных в вашем приложении при его запуске. В качестве альтернативы вы могли бы изменить структуру своего приложения так, чтобы вы извлекали связанные записи только тогда, когда пользователь запрашивает их.

Заметка

В Power Apps до версии 3.24042 имена столбцов задавались текстовой строкой с использованием двойных кавычек, а при подключении к источнику данных они также должны были быть логическими именами. Например, вместо отображаемого имени Имя без кавычек использовалось логическое имя "cr43e_name" в двойных кавычках. Для источников данных SharePoint и Excel, содержащих имена столбцов с пробелами, каждый пробел был указан с помощью "_x0020_", например "Имя столбца" как "Имя_x0020_столбца". После этой версии все приложения были автоматически обновлены до нового синтаксиса, описанного в этой статье.

Синтаксис

AddColumns( TableOrRecord, ColumnName1, Formula1 [, ColumnName2, Formula2, ... ]

  • TableOrRecord — обязательный. Таблица или запись для работы.
  • ColumnNames - Обязательно. Имена столбцов для добавления.
  • Формулы - Обязательно. Формулы, вычисляемые для каждой записи таблицы. Результат добавляется в итоговую таблицу как значение соответствующего нового столбца. Вы можете ссылаться на другие столбцы таблицы или записи в этой формуле.

DropColumns( TableOrRecord, ColumnName1 [, ColumnName2, ... ] )

  • TableOrRecord — обязательный. Таблица или запись для работы.
  • ColumnNames - Обязательно. Имена столбцов для исключения.

RenameColumns( TableOrRecord, OldColumnName1, NewColumnName1 [, OldColumnName2, NewColumnName2, ... ] )

  • TableOrRecord — обязательный. Таблица или запись для работы.
  • OldColumnNames - Обязательно. Имена столбцов, которые нужно переименовать из исходной таблицы или записи. Этот элемент отображается первым в паре аргументов (или первым в каждой из пар, если формула содержит несколько пар).
  • NewColumnNames - Обязательно. Имена, которые нужно использовать вместо старых. Этот элемент отображается последним в паре аргументов (или последним в каждой из пар, если формула содержит несколько пар).

ShowColumns( TableOrRecord, ColumnName1 [, ColumnName2, ... ] )

  • TableOrRecord — обязательный. Таблица или запись для работы.
  • ColumnNames - Обязательно. Имена столбцов для включения.

Примеры

В следующих примерах мы будем использовать источник данных IceCreamSales, который содержит данные в такой таблице:

Пример мороженого.

Ни один из этих примеров не изменяет исходную таблицу источника данных IceCreamSales. Каждая функция преобразует ее в новую таблицу и возвращает полученную таблицу в результате.

Формула Description Result
AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold ) Добавляет к результату столбец Revenue. Для каждой записи вычисляется выражение UnitPrice * QuantitySold. Результат вычисления помещается в новый столбец. Результат с клубникой, шоколадом и ванилью.
DropColumns( IceCreamSales, UnitPrice ) Исключает из результата столбец UnitPrice. Используйте эту функцию для исключения столбцов и их использования ShowColumns . Результат с клубникой, шоколадом, ванилью при наличии только столбца QuantitySold.
ShowColumns( IceCreamSales, Flavor ) Включает в результат только столбец Flavor. Используйте эту функцию, включив столбцы и исключив DropColumns их. Только столбец вкуса.
RenameColumns( IceCreamSales, UnitPrice, Price) Переименовывает столбец UnitPrice в итоговой таблице. Результат с вкусом, ценой и выручкой.
RenameColumns( IceCreamSales, UnitPrice, Price, NumberSold, Number) Переименовывает столбцы UnitPrice и QuantitySold в результате. Результат с 3 морожеными и столбцами вкуса, цены, дохода.
DropColumns(
RenameColumns(
AddColumns( IceCreamSales, Доход,
UnitPrice * QuantitySold ),
UnitPrice, Price ),
Количество )
Поочередно выполняет следующие преобразования, начиная с "внутренней стороны" формулы:
  1. Добавляет столбец Revenue, заполняемый данными по формуле UnitPrice * Quantity.
  2. Переименовывает столбец UnitPrice в Price.
  3. Исключает столбец Quantity.
Порядок имеет значение. Например, мы не сможем вычислить UnitPrice после того, как переименуем его.
Пример мороженого для цены за единицу.

Пошаговое руководство

Давайте попробуем некоторые примеры, приведенные ранее в этой статье.

  1. Создайте коллекцию, добавив элемент управления Button (Кнопка) и установите для его свойства OnSelect следующую формулу:

    ClearCollect( IceCreamSales,
       Table(
           { Flavor: "Strawberry", UnitPrice: 1.99, QuantitySold: 20 },
           { Flavor: "Chocolate", UnitPrice: 2.99, QuantitySold: 45 },
           { Flavor: "Vanilla", UnitPrice: 1.50, QuantitySold: 35 }
       )
    )
    
  2. Выполните формулу, выбрав кнопку при нажатой клавише ALT.

  3. Добавьте второй элемент управления Button (Кнопка), задайте для свойства OnSelect следующую формулу, затем выполните ее:

    ClearCollect( FirstExample,
       AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold )
    )
    
  4. В меню Файл выберите Коллекции, затем выберите IceCreamSales для отображения этой коллекции.

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

    Средство просмотра коллекции, отображающее три записи коллекции Продажа мороженого, в которые не включен столбец Доход.

  5. Выберите FirstExample.

    Как показывает этот рисунок, вторая формула вернула новую таблицу с добавленным столбцом. Функция ClearCollect захватила новую таблицу в коллекцию FirstExample, добавляя что-то к исходной таблице, когда она проходила через функцию без изменения источника:

    Средство просмотра коллекции, отображающее три записи коллекции Первый пример, которая включает новый столбец Доход.

Сопоставить столбцы в компоненте

См. Сопоставить столбцы.