Вы можете использовать коллекцию для хранения данных, которые могут использоваться в приложении. Коллекция — это группа схожих элементов. Например, вы можете создать коллекцию "Мои товары", содержащую изображения всех товаров, которые продает ваша компания. Эту коллекцию можно добавить в PowerApps и создать приложение, отображающее все изображения товаров. Или же можно создать коллекцию "Прайс-лист", содержащую список товаров и цену каждого из них.

Вы можете создавать и использовать коллекции в PowerApps. Давайте приступим.

Технические условия

  • Зарегистрируйтесь в службе PowerApps, установите и откройте ее, а затем войдите с помощью учетных данных, использованных при регистрации.
  • Создайте приложение в PowerApps или откройте уже существующее.
  • Узнайте, как настроить элемент управления в PowerApps.
  • Здесь в качестве образца входных данных используется файл PriceList.zip. Этот ZIP-файл содержит XML-файл, который можно преобразовать в Excel. В противном случае PowerApps автоматически считывает и импортирует файлы в ZIP-файлах. Вы можете скачать и использовать этот образец данных или импортировать собственный.

Создание коллекции с одним столбцом

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

  1. Откройте свое приложение.
  2. На вкладке Вставка выберите Текст, а затем — Текстовое поле.

  3. В верхнем левом углу выберите Text1 и переименуйте элемент управления на Назначение:

  4. На вкладке Вставка выберите Кнопка, чтобы добавить кнопку в конструктор. В раскрывающемся списке выберите свойство OnSelect. Задайте для него следующую функцию:

    Collect(Destinations, Destination!Text)

    Это должно выглядеть следующим образом:

  5. Выделите текст кнопки и введите Добавить:

  6. Выберите кнопку Добавить и переместите ее под элемент управления "Текст". Ее можно переместить в любое место:

Вы только что использовали функцию Collect для создания коллекции с именем Destinations (Назначения). Вы также добавили кнопку, которая позволяет добавить новые элементы в коллекцию. Посмотрим, что у нас получилось.

  1. Нажмите кнопку предварительного просмотра:

  2. Введите в поле название города, а затем нажмите кнопку Добавить.

  3. Введите другие названия городов и каждый раз нажимайте кнопку Добавить.

  4. Нажмите клавишу ESC, чтобы закрыть окно предварительного просмотра.

  5. Просмотрите коллекцию "Назначения" и введенные текстовые значения. На вкладке Файл выберите Коллекции. Вы увидите введенный текст:

Дополнительные возможности

Теперь привяжем коллекцию "Назначения" к полю со списком:

  1. Вернитесь в режим конструктора.
  2. На вкладке Вставка выберите Элементы управления, а затем щелкните Список:

  3. Переместите список, чтобы его было видно. Задайте для его свойства Items следующее выражение:
    Destinations!Value

    После этого список автоматически заполняется элементами, ранее введенными в коллекции "Назначения":

Просмотрите внесенные изменения: . В поле со списком содержатся введенные названия городов. В элементе управления для ввода текста введите новое название города и нажмите кнопку Добавить. Поле со списком автоматически обновится, и теперь в нем будет это название.

Создание коллекции с несколькими столбцами

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

  1. На вкладке Главная откройте новый экран.
  2. На вкладке Вставка выберите Текст, а затем — Текстовое поле.
  3. Переименуйте текстовый элемент управления на Город:

  4. Вставьте еще один элемент управления для ввода текста и переименуйте его на Штаты.

  5. Переместите текстовые элементы управления "Город" и "Штаты" так, чтобы их было видно:

    Примечание. Можно заменить "Текстовое поле" на названия "Город" или "Штат", как на рисунке.

  6. На вкладке Вставка выберите Кнопка. Задайте для свойства OnSelect следующую функцию:
    Collect(Destinations, {Cities:City!Text, States:States!Text})

    Это должно выглядеть следующим образом:

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

    Collect(Destinations, {Cities:City!Text, States:States!Text}, {Countries:Country!Text})

  7. Переименуйте элемент управления "Кнопка" AddCityStateButton и задайте для его свойства Text значение Добавить город и штат:

Вы только что добавили столбец Города и Штаты в коллекцию Назначения. Элемент управления "Кнопка" позволяет добавить эти новые текстовые элементы в коллекцию. Посмотрим, что у нас получилось.

  1. Нажмите кнопку предварительного просмотра:

  2. Введите текст в поля "Город" и "Штат", а затем нажмите кнопку Добавить город и штат.
  3. Добавьте несколько городов и штатов.
  4. Нажмите клавишу ESC, чтобы закрыть окно предварительного просмотра.
  5. Чтобы просмотреть элементы, добавленные в коллекцию "Назначения", выберите вкладку Файл, а затем — Коллекции:

Добавление столбцов в коллекцию

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

Импорт прайс-листа и создание коллекции

  1. Скачайте ZIP-файл PriceList.
  2. На вкладке Главная добавьте новый экран.
  3. На вкладке Вставка выберите Элементы управления, а затем щелкните Импорт:

  4. На вкладке Действия выберите OnSelect. Введите следующую функцию:

    Collect(PriceList, Import1!Data)

  5. Просмотрите приложение. Нажмите кнопку Импорт данных, выберите файл PriceList.zip и щелкните Открыть.

  6. Закройте окно предварительного просмотра.

  7. Щелкните вкладку Файл и выберите Коллекции. Вы увидите элементы, содержащиеся в импортированном файле PriceList:

Добавление коллекции для отображения элементов коллекции

  1. Вернитесь в режим конструктора.
  2. На вкладке Вставка выберите Коллекция, прокрутите вниз до Пользовательские коллекции и выберите Книжная:

  3. Переименуйте коллекцию на PriceGallery (Коллекция цен) и задайте для свойства Items значение PriceList (Прайс-лист):

  4. Переместите коллекцию "Прайс-лист" под элемент управления Импорт данных. Выберите границы коллекции и измените ее размер (щелкнув и перетащив), чтобы отображались три квадрата, как показано ниже.
  5. В коллекции выберите первый квадрат и добавьте три метки (вкладка Вставка > Метка).
  6. Измените размер меток в строке в верхней части первого квадрата и упорядочите их соответствующим образом. Коллекция будет выглядеть следующим образом:
  7. Задайте для свойства Text каждой метки следующее выражение:

    Метка Выражение, которое нужно задать для свойства Text
    Метка 1 ThisItem!Name
    Метка 2 Text(ThisItem!Price, "$#")
    Метка 3 ThisItem!Maker

    После этого меткам автоматически будут присвоены значения "Название", "Цена" и "Изготовитель" в коллекции "Прайс-лист".

  8. Измените размер меток и коллекции, чтобы не осталось свободного пространства. Окно должно выглядеть следующим образом:

Добавление ползунка для регулирования количества и обновление коллекции

  1. На вкладке Вставка щелкните Элементы управления и выберите Ползунок. Переименуйте ползунок на OrderQty и переместите его под коллекцию.
  2. Добавьте кнопку, задайте для ее свойства Text значение Добавить и переместите ее под ползунок OrderQty. Приложение будет выглядеть следующим образом:
  3. Задайте для свойства OnSelect кнопки Добавить следующее выражение:

    Collect(OrderList, {Name:PriceGallery!Selected!Name, Qty:OrderQty!Value, Cost:OrderQty!Value*LookUp(PriceList, PriceGallery!Selected!Name in Name, Price)});SaveData(OrderList, "orderfile")

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

  4. Выберите вкладку Экран и задайте для свойства OnVisible следующее выражение:

    If(IsEmpty(PriceList), LoadData(PriceList, "pricefile"));If(IsEmpty(OrderList), LoadData(OrderList, "orderfile"))

Посмотрим, что у нас получилось.

  1. Перейдите в режим предварительного просмотра.
  2. Выберите товар в коллекции, передвиньте ползунок на нужное количество, а затем нажмите кнопку Добавить.

    Важно!

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

  3. Повторите эти шаги, чтобы добавить еще несколько товаров. Нажмите клавишу ESC, чтобы закрыть окно предварительного просмотра.

  4. На вкладке Файл выберите Коллекции для предварительного просмотра созданной коллекции Список заказов:

Подсказка.

Чтобы удалить все элементы в списке заказов, добавьте кнопку, задайте для ее свойства Text значение Clear (Очистить), а для свойства OnSelect следующее выражение:
Clear(OrderList);SaveData(OrderList, "orderfile")
Для удаления одного элемента за раз откройте коллекцию Список заказов в коллекции, а затем задайте для свойства OnSelect метки в этой коллекции следующее выражение:
Remove(OrderList, ThisItem);SaveData(OrderList, "orderfile")

Советы и хитрости

  • Вы в любое время можете выбрать кнопку предварительного просмотра ( ), чтобы просмотреть диаграммы и увидеть, как выглядят данные.
  • При разработке приложения вы можете изменять размер элементов управления и перемещать их (щелкните необходимый элемент и перетащите его).

Полученные навыки

В рамках этой статьи вы:

  • Использовали функцию Collect() для создания коллекции в приложении.
  • Добавили кнопку, которая позволяет добавить новые элементы в коллекцию.
  • Использовали список для добавления элементов в коллекцию.
  • Добавили ползунок для обновления элементов в коллекции.