Создание и обновление коллекции в приложенииCreate and update a collection in your app

Вы можете использовать коллекцию для хранения данных, которые могут использоваться в приложении.Use a collection to store data that can be used in your app. Коллекция — это группа схожих элементов.A collection is a group of items that are similar. Например, вы можете создать коллекцию "Мои товары", содержащую изображения всех товаров, которые продает ваша компания.For example, you create a MyImages collection that stores all the product images your company sells. Эту коллекцию можно добавить в PowerApps и создать приложение, отображающее все изображения товаров.Within PowerApps, you can add your MyImages collection and create an app that displays all the pictures of these products. Или же можно создать коллекцию "Прайс-лист", содержащую список товаров и цену каждого из них.In another example, you can create a PriceList collection that lists the products and the price of each product.

Вы можете создавать и использовать коллекции в PowerApps.You can create and use collections within PowerApps. Давайте приступим.Let's get started.

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

  • Зарегистрируйтесь в службе PowerApps, установите и откройте ее, а затем войдите с помощью учетных данных, использованных при регистрации.Sign up for PowerApps, install it, open it, and then sign in by providing the same credentials that you used to sign up.
  • Создайте приложение в PowerApps или откройте уже существующее.Create an app or open an existing app in PowerApps.
  • Узнайте, как настроить элемент управления в PowerApps.Learn how to configure a control in PowerApps.
  • Здесь в качестве образца входных данных используется файл PriceList.zip.These steps use the PriceList.zip file as sample input data. Этот ZIP-файл содержит XML-файл, который можно преобразовать в Excel.The zip file includes an XML file that can be converted to Excel. В противном случае PowerApps автоматически считывает и импортирует файлы в ZIP-файлах.Otherwise, PowerApps automatically reads the files in the .zip files and imports it successfully. Вы можете скачать и использовать этот образец данных или импортировать собственный.You can download and use this sample data, or import your own.

Создание коллекции с одним столбцомCreate a single-column collection

Здесь показано, как создать в своем приложении коллекцию с помощью функции Collect и добавить в нее элементы.The following steps show you how to create a collection within your app using the Collect function, and how to add items to your collection.

  1. Откройте свое приложение.Open your app.
  2. На вкладке Вставка выберите Текст, а затем — Текстовое поле.On the Insert tab, select Text, and then select Text input:
  3. В верхнем левом углу выберите Text1 и переименуйте элемент управления на Назначение:In the top left corner, select Text1, and rename the control to Destination:
  4. На вкладке Вставка выберите Кнопка, чтобы добавить кнопку в конструктор.On the Insert tab, select Button to add a button control to your designer. В раскрывающемся списке выберите свойство OnSelect.From the drop-down list, the OnSelect property is listed. Задайте для него следующую функцию:Set it to the following function:

    Collect(Destinations, Destination!Text)

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

  5. Выделите текст кнопки и введите Добавить:Select the button text, and enter Add:
  6. Выберите кнопку Добавить и переместите ее под элемент управления "Текст".Select the Add button, and move it under your text control. Ее можно переместить в любое место:You can move it anywhere:

Вы только что использовали функцию Collect для создания коллекции с именем Destinations (Назначения).In these steps, you used the Collect function to create a collection named Destinations. Вы также добавили кнопку, которая позволяет добавить новые элементы в коллекцию.You also added a button control and when selected, adds new items to your collection. Посмотрим, что у нас получилось.Now, see what you created:

  1. Нажмите кнопку предварительного просмотра:Select Preview:
  2. Введите в поле название города, а затем нажмите кнопку Добавить.Type a city name into the box, and then select the Add button.
  3. Введите другие названия городов и каждый раз нажимайте кнопку Добавить.Enter some additional city names and select the Add button each time.
  4. Нажмите клавишу ESC, чтобы закрыть окно предварительного просмотра.Press the Esc key to close the Preview window.
  5. Просмотрите коллекцию "Назначения" и введенные текстовые значения.See the Destinations collection and the text values you entered. На вкладке Файл выберите Коллекции.On the File tab, select Collections. Вы увидите введенный текст:The text you entered is listed:

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

Теперь привяжем коллекцию "Назначения" к полю со списком:Now, let's bind the Destinations collection to a listbox:

  1. Вернитесь в режим конструктора.Go back to your designer.
  2. На вкладке Вставка выберите Элементы управления, а затем щелкните Список:On the Insert tab, select Controls, and then select ListBox:
  3. Переместите список, чтобы его было видно.Move the listbox so you can easily see it. Задайте для его свойства Items следующее выражение:Set its Items property to the following expression:
    Destinations!Value

    После этого список автоматически заполняется элементами, ранее введенными в коллекции "Назначения":When you do this, the listbox is automatically populated with the items you previously entered in the Destinations collection:

Просмотрите внесенные изменения: .Preview your changes: . В поле со списком содержатся введенные названия городов.In the listbox, you can see the different cities you entered. В элементе управления для ввода текста введите новое название города и нажмите кнопку Добавить.In the text-input control, enter a new city, and select the Add button. Поле со списком автоматически обновится, и теперь в нем будет это название.The listbox is automatically updated to include the new city you entered.

Создание коллекции с несколькими столбцамиCreate a multi-column collection

Здесь показано, как создать в своем приложении коллекцию с помощью функции Collect и добавить в нее несколько строк.The following steps show you how to create a collection within your app using the Collect function, and how to add multiple rows to your collection.

  1. На вкладке Главная откройте новый экран.On the Home tab, open a new screen.
  2. На вкладке Вставка выберите Текст, а затем — Текстовое поле.On the Insert tab, select Text, and then select Text input.
  3. Переименуйте текстовый элемент управления на Город:Rename the text control to City:
  4. Вставьте еще один элемент управления для ввода текста и переименуйте его на Штаты.Insert another text-input control, and rename it to States.
  5. Переместите текстовые элементы управления "Город" и "Штаты" так, чтобы их было видно:Move the City and States text controls so you can see them both:

    Примечание

    Можно заменить "Текстовое поле" текстом "Город" или "Штат", как на рисунке.You can replace 'Text Input' with something like 'City' or 'State', which was done in the image.

  6. На вкладке Вставка выберите Кнопка.On the Insert tab, select Button. Задайте для свойства OnSelect следующую функцию:Set its OnSelect property to the following function:
    Collect(Destinations, {Cities:City!Text, States:States!Text})

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

    Примечание

    Эту же функцию можно использовать для добавления дополнительных столбцов к этой коллекции.You can use this same function to add additional columns to this collection. Например, можно добавить элемент управления для ввода текста с именем "Страна", чтобы добавить столбец "Страны":For example, you can add another text-input control for Country to add a Countries column:

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

  7. Переименуйте элемент управления "Кнопка" AddCityStateButton и задайте для его свойства Text значение Добавить город и штат:Rename the button control AddCityStateButton, and set its Text property to Add City and State:

Вы только что добавили столбец Города и Штаты в коллекцию Назначения.In these steps, you added a Cities column and a States column to the Destinations collection. Элемент управления "Кнопка" позволяет добавить эти новые текстовые элементы в коллекцию.The button control adds these new text items to your collection. Посмотрим, что у нас получилось.Now, see what you created:

  1. Нажмите кнопку предварительного просмотра:Select Preview:
  2. Введите текст в поля "Город" и "Штат", а затем нажмите кнопку Добавить город и штат.Type some text into the City and State boxes, and then select the Add City and State button.
  3. Добавьте несколько городов и штатов.Add a few more cities and states.
  4. Нажмите клавишу ESC, чтобы закрыть окно предварительного просмотра.Press the Esc key to close the Preview window.
  5. Чтобы просмотреть элементы, добавленные в коллекцию "Назначения", выберите вкладку Файл, а затем — Коллекции:To see the items you added to the Destinations collection, select the File tab, and then select Collections:

Добавление столбцов в коллекциюAdd columns to a collection

Это пошаговое руководство состоит из нескольких разделов.There are a few sections in this walk-through. По завершении вы узнаете, как импортировать данные в коллекцию, создать коллекцию, которая отображает данные в прайс-листе, и использовать ползунок, который определяет количество единиц товара.When complete, you'll know how to import data into your collection, create a gallery that shows data in a price list, and use a slider control that determines the quantity of a product.

Импорт прайс-листа и создание коллекцииImport the price list and create the collection

  1. Скачайте ZIP-файл PriceList.Download the PriceList zip file.
  2. На вкладке Главная добавьте новый экран.On the Home tab, add a new screen.
  3. На вкладке Вставка выберите Элементы управления, а затем щелкните Импорт:On the Insert tab, select Controls, and then select Import:
  4. На вкладке Действия выберите OnSelect.On the Action tab, select OnSelect. Введите следующую функцию:Enter the following function:

    Collect(PriceList, Import1!Data)

  5. Просмотрите приложение.Preview your app. Нажмите кнопку Импорт данных, выберите файл PriceList.zip и щелкните Открыть.Select the Import Data button, select the PriceList.zip file, and select Open.
  6. Закройте окно предварительного просмотра.Close the Preview window.
  7. Щелкните вкладку Файл и выберите Коллекции.Select the File tab, and select Collections. Вы увидите элементы, содержащиеся в импортированном файле PriceList:The PriceList items you imported are listed:
  1. Вернитесь в режим конструктора.Go back to your designer.
  2. На вкладке Вставка выберите Коллекция, прокрутите вниз до Пользовательские коллекции и выберите Книжная:On the Insert tab, select Gallery, scroll down to Custom Galleries, and then select Portrait:
  3. Переименуйте коллекцию на PriceGallery (Коллекция цен) и задайте для свойства Items значение PriceList (Прайс-лист):Rename the gallery to PriceGallery and set the Items property to PriceList:
  4. Переместите коллекцию "Прайс-лист" под элемент управления Импорт данных.Move the PriceList gallery below the Import Data control. Выберите границы коллекции и измените ее размер (щелкнув и перетащив), чтобы отображались три квадрата, как показано ниже.Select the gallery borders and use click-and-drag to resize the gallery so three squares are shown.
  5. В коллекции выберите первый квадрат и добавьте три метки (вкладка Вставка > Метка).In the gallery, select the first square, and add three labels (Insert tab > Label).
  6. Измените размер меток в строке в верхней части первого квадрата и упорядочите их соответствующим образом.Resize and arrange the labels in a row near the top of the first square. Коллекция будет выглядеть следующим образом:Your gallery looks similar to the following:
  7. Задайте для свойства Text каждой метки следующее выражение:Set the Text property of each label to the following expression:

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

    После этого меткам автоматически будут присвоены значения "Название", "Цена" и "Изготовитель" в коллекции "Прайс-лист".When you do this, the labels are automatically updated with the name, price, and maker values within the PriceList collection.

  8. Измените размер меток и коллекции, чтобы не осталось свободного пространства.Resize the labels and the gallery to remove any extra spaces. Окно должно выглядеть следующим образом:Your screen look similar to the following:

Добавление ползунка для регулирования количества и обновление коллекцииAdd the quantity slider and update the collection

  1. На вкладке Вставка щелкните Элементы управления и выберите Ползунок.On the Insert menu, select Controls, and select Slider. Переименуйте ползунок на OrderQty и переместите его под коллекцию.Rename the slider to OrderQty, and move it under the gallery.
  2. Добавьте кнопку, задайте для ее свойства Text значение Добавить и переместите ее под ползунок OrderQty.Add a button, set its Text property to Add, and move it under the OrderQty slider. Приложение будет выглядеть следующим образом:Your app looks similar to the following:
  3. Задайте для свойства OnSelect кнопки Добавить следующее выражение:Set the OnSelect property of the Add button to the following expression:

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

    Примечание

    Когда вы позже нажмете эту кнопку, будет создана и сохранена коллекция с именем Список заказов.When you select this button later in this procedure, you'll create and save a collection named OrderList. Коллекция будет содержать имя товара, введенного в коллекции, количество, которое можно выбрать с помощью ползунка, и общую стоимость, которая вычисляется путем умножения количества на цену товара.The collection will contain the name of a product that you enter in the gallery, a quantity that you choose with the slider, and the total cost calculated by multiplying the quantity by the price of the product.

  4. Выберите вкладку Экран и задайте для свойства OnVisible следующее выражение:Select the Screen tab and set the OnVisible property to the following expression:

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

Посмотрим, что у нас получилось.Now, see what you created:

  1. Перейдите в режим предварительного просмотра.Open Preview.
  2. Выберите товар в коллекции, передвиньте ползунок на нужное количество, а затем нажмите кнопку Добавить.Select a product in the gallery, move the slider to your desired quantity, and then select the Add button.

    Важно!

    При выборе товара он не выделяется.When you select a product, that product is not highlighted to indicate you selected it. Мы не добавили эту функциональную возможность во время создания коллекции.When we created the gallery, we didn't add this functionality. Помните, что товар выбирается с помощью щелчка.Know that clicking the product does select it.

  3. Повторите эти шаги, чтобы добавить еще несколько товаров.Repeat these steps to add a couple more products. Нажмите клавишу ESC, чтобы закрыть окно предварительного просмотра.Press ESC to close the Preview window.
  4. На вкладке Файл выберите Коллекции для предварительного просмотра созданной коллекции Список заказов:On the File tab, select Collections to display a preview of the OrderList collection you created:

Совет

Чтобы удалить все элементы в списке заказов, добавьте кнопку, задайте для ее свойства Text значение Clear, а для свойства OnSelect следующее выражение:To remove all items from the order list, add a button, set its Text property to Clear, and set its OnSelect property to the following expression:
Clear(OrderList);SaveData(OrderList, "orderfile")
Для удаления одного элемента за раз откройте коллекцию Список заказов в коллекции, а затем задайте для свойства OnSelect метки в этой коллекции следующее выражение:To remove one item at a time, show the OrderList collection in a gallery, and then set the OnSelect property of a label in that gallery to the following expression:
Remove(OrderList, ThisItem);SaveData(OrderList, "orderfile")

Советы и хитростиTips and Tricks

  • Вы в любое время можете выбрать кнопку предварительного просмотра (), чтобы просмотреть диаграммы и увидеть, как выглядят данные.At anytime, you can select the Preview button () to view your charts, and to see how they look with data.
  • При разработке приложения вы можете изменять размер элементов управления и перемещать их (щелкните необходимый элемент и перетащите его).When designing your app, you can re-size the controls and move them around using click-and-drag.

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

В рамках этой статьи вы:In this topic, you:

  • Использовали функцию Collect() для создания коллекции в приложении.Used the Collect() function to create a collection within your app.
  • Добавили кнопку, которая позволяет добавить новые элементы в коллекцию.You added a button control and when selected, the button adds new items to your collection.
  • Использовали список для добавления элементов в коллекцию.Used a listbox to add items to your collection.
  • Добавили ползунок для обновления элементов в коллекции.Added a slider control to update items within the collection.