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


Створення колекції замовлень у компонованій програмі

Дотримуйтеся покрокових інструкцій, щоб створити колекцію замовлень у компонованій програмі для керування вигаданими даними в базі даних Northwind Traders. Цей розділ є частиною серії, в якій описується процедура створення бізнес-програми на основі реляційних даних у Microsoft Dataverse. Для отримання найкращих результатів ознайомтеся з розділами по порядку:

  1. Створення колекції замовлень (цей розділ).
  2. Створення форми зведення.
  3. Створення галереї відомостей.

Визначення ділянок екрана.

Вимоги

Створення порожньої програми

Створіть пусту компоновану програму та призначте їй ім’я, як-от "Мої замовлення Northwind (компонована програма)".

Додавання даних

  1. В області ліворуч виберіть Дані > Додати дані > знайдіть та виберіть таблицю Замовлення.

    Виберіть послідовно «Переглянути», «Джерела даних», «Додати джерела даних».

    У таблиці Замовлення міститься багато полів різних типів.

    Список полів у таблиці «Замовлення».

    Кожне поле має Коротке ім'я та Ім'я, яке іноді називають логічним ім'ям. Обидва імені позначають ту саму сутність. Загалом, під час створення програми використовується коротке ім'я, але в деяких випадках необхідне, згідно з процедурою, більш загадкове Ім'я.

  2. Оскільки далі ми працюватимемо з екранами та елементами керування, перемкніть Power Apps Studio у Подання дерева ліворуч, натиснувши піктограму з трьома квадратиками в стовпчик. Можна повернутися до Джерел даних у будь-який час, натиснувши піктограму циліндра.

  1. На вкладці Вставлення виберіть пункт колекція > Пуста вертикальна, щоб додати елемент керування колекція, який покаже замовлення.

    Вставлення, колекція, Пуста вертикальна.

    Елемент керування буде розміщено на полотні, і відобразиться спливаюче діалогове вікно з проханням обрати, до якого джерела даних підключитися.

  2. Ми можемо тут підключитись безпосередньо до Замовлень, але замість цього ми хотіли б керувати порядком сортування колекції. Не звертайте уваги на спливаюче діалогове вікно. На панелі формул задайте значенням властивості колекції Елементи цю формулу:

    Sort( Orders, 'Order Number', Descending )
    

    Функція сортування впорядковує список таким чином, щоб першим відображалося найновіше замовлення (з найвищим номером замовлення).

    Сортування замовлень у галереї.

  3. За кілька секунд під рядком формул з'явиться подання результатів. Протягніть вниз стрілку ліворуч, щоб побачити результат нашої формули. Прокрутіть праворуч, щоб переглянути стовпець Номер замовлення та переконатися, що його відсортовано належним чином (від найбільшого до найменшого).

    Налаштування властивості колекції "Елементи".

  4. На вкладці Властивості біля правого краю, відкрийте список Макет.

    Список параметрів макета.

  5. У списку параметрів виберіть Заголовок та підзаголовок:

    Вибір макета.

    У шаблоні колекції додаються два елементи керування Надпис. За замовчуванням у цих елементах керування відображаються два стовпці таблиці Замовлення, але ви це зараз зміните. Шаблон галереї повторюється вертикально для кожного запису таблиці.

  6. Натисніть Редагувати (біля пункту Поля) у вкладці Властивості біля правого краю.

    Виберіть «Редагування» для оновлення полів.

  7. В області Дані виберіть Title1 (або виберіть верхній надпис в шаблоні колекції).

  8. У рядку формул задайте значенням властивості надпису Текст цей вираз:

    "Order " & ThisItem.'Order Number'
    

    Встановлення властивості "Текст" надпису-заголовка.

    Номер замовлення відобразиться у верхній частині кожного елемента колекції. У шаблоні галереї ThisItem надає доступ до всіх полів у таблиці Замовлення.

  9. В області Дані виберіть Subtitle1 (або виберіть нижній надпис в шаблоні колекції):

    Вибір підзаголовка надпису.

  10. У рядку формул задайте значенням властивості надпису Текст цей вираз:

    ThisItem.Customer.Company
    

    Встановлення властивості "Текст" надпису-підзаголовка.

    Після введення цієї формули може на секунду відобразитися підкреслення помилки. Помилка має зникнути, якщо вибрати будь-що поза рядком формул, а потім повернути курсор до рядка формул. Якщо помилка не зникає або ви не бачите значення, виберіть вкладку Подання, виберіть Джерела даних, а тоді оновіть таблицю Замовлення, вибравши три крапки (...) праворуч від імені цього джерела даних.

    Коли ви вказуєте ThisItem.Customer, ви використовуєте зв’язок «багато-до-одного» між таблицями Замовлення та Клієнти і отримуєте запис клієнта, зв'язаний з кожним замовленням. Із запису клієнта ви витягуєте, щоб відобразити, дані в стовпці Компанія.

    Можна відобразити усі зв'язки таблиці Замовлення із іншими таблицями, зокрема й з таблицею Клієнт.

    Список зв’язків.

  11. Закрийте панель Дані вибравши піктограму "закрити" (x) у правому верхньому кутку.

Показати стан кожного замовлення

У цій процедурі ми додамо місце в колекції для надпису та настроїмо його для відображення статусу кожного замовлення різними кольорами на основі даних.

  1. У шаблоні колекції, зменште ширину першого надпису, Title1:

    Title1 в шаблоні колекції.

  2. Повторіть попередній крок у другому надписі, Subtitle1:

    Subtitle1 в шаблоні колекції.

  3. Якщо вибрано шаблон колекції (або елемент керування у шаблоні), виберіть пункт Надпис у вкладці Вставлення.

    Додавання надпису.

  4. Перемістіть новий надпис праворуч від надпису Title1:

    Переміщення та зміна розміру надпису.

  5. Вкажіть для властивості Text нового підпису це значення:

    ThisItem.'Order Status'
    

    Настроювання властивості "Текст".

    У таблиці Замовлення поле Стан замовлення містить значення з вибору Стан замовлення. Елемент «вибір» є подібним до перелічення в інших засобах програмування. Кожен набір параметрів визначається в базі даних, тому користувачі можуть вказувати лише ті параметри, які входять до набору. Вибір Стан замовлень також є глобальним, а не локальним, тому його можна використовувати і в інших таблицях.

    Вибір "Стан замовлень".

    Кожен параметр у наборі має ім'я, яке відображається в надписі. Ці імена можна локалізувати, а програма розпізнає той самий параметр незалежно від того, чи англомовний користувач вибере Apple, франкомовний — Pomme, чи україномовний — Яблуко. Через це не можна створити формулу, яка спирається на жорстко закодований рядок в якості параметра, що демонструється пізніше в цьому розділі.

    У формулах необхідно вкладати Стан замовлення в одиночні лапки, оскільки стан містить пробіл. Однак, це ім'я функціонує так само, як будь-яке інше ім'я в Power Apps, наприклад Клієнт або Компанія.

  6. На вкладці Основне збільште розмір шрифту надпису статусу до 20 пунктів, а потім вирівняйте текст за правим краєм.

    Змінення розміру та вирівнювання шрифту.

  7. У рядку формул встановіть значенням властивості Колір надпису стану цю формулу:

    Switch( ThisItem.'Order Status',
        'Orders Status'.Closed, Green,
        'Orders Status'.New, Black,
        'Orders Status'.Invoiced, Blue,
        'Orders Status'.Shipped, Purple
    )
    

    Встановлення властивості "Колір" підпису стану.

    Power Apps забороняє створювати формулу, яка спирається на жорстко закодований рядок для кожного параметра у наборі, оскільки така формула може привести до неналежних результатів, якщо імена параметрів локалізовані. Замість цього, функція Перемикач визначає колір на основі того, який рядок відображається в надписі, залежно від налаштувань користувача.

    З цією формулою, різні значення стану відображаються в різних кольорах, як видно в попередньому зображенні.

Відображення загальної вартості кожного замовлення

  1. Виберіть перший елемент в колекції, тобто шаблон колекції:

    Виберіть шаблон колекції.

  2. На вкладці Вставлення виберіть Надпис, щоб додати ще один надпис:

    Додайте іще один підпис.

  3. Перемістіть новий надпис, щоб він відображався під надписом про стан:

    Змінення розміру та переміщення нового надпису.

  4. У рядку формул задайте значенням властивості нового надпису Текст цю формулу:

    Text( Sum( ThisItem.'Order Details', Quantity * 'Unit Price' ), "[$-en-US]$ #,###.00" )
    

    Формула для обчислення загальної вартості замовлення.

    У цій формулі функція Sum складає записи у таблиці Відомості про замовлення, зв'язані з кожним записом у таблиці Замовлення через зв'язок «один-до-багатьох». Ці позиції утворюють кожне замовлення, і для відображення та редагування цих елементів у нижньому правому районі екрана використовується той самий зв'язок "один-до-багатьох".

    Ця формула відображає синє підкреслення та попередження про делегацію, оскільки Dataverse не підтримує делегування складних агрегатних функцій (наприклад, суми множення). Ці відомості можна ігнорувати, оскільки замовлення в цьому прикладі міститимуть не більше 500 позицій. Якщо це необхідно для іншої програми, можна збільшити цю межу в Налаштуваннях програми.

    Функція Текст у цій формулі додає символ грошової одиниці та форматує результат тисячними та десятковими роздільниками. Дана формула містить тег для американської англійської мови ([$-EN-US]) і символ долара ($). Якщо тег мови вилучити його буде замінено іншим, на основі ваших мовних параметрів, а надпис покаже відповідні формати для цього тегу. Якщо ви залишите символ долара, то надпис покаже відповідний символ грошової одиниці на основі налаштувань користувача. Проте, можна примусово задати інший символ, шляхом заміни символу долара на потрібний вам.

  5. На вкладці Основне замініть розмір шрифту найновішого надпису на 20 пунктів, а потім вирівняйте текст за правим краєм.

    Змінення розміру шрифту та вирівнювання надпису.

  6. Перемістіть колекцію до лівого краю екрана та зменште ширину колекції, щоб закрити трохи місця.

  7. Збільште висоту колекції так, щоб вона мала майже висоту екрана, але залиште трохи місця вгорі для рядка заголовка, який ми додамо на початку наступного розділу:

    Переміщення та змінення розміру колекції.

Підсумок

Отже, ми почали створення одноекранної компонованої програми, додавши колекцію замовлень, яка містить такі елементи:

  • Вираз для відображення номера замовлення: "Orders " & ThisItem.OrderNumber
  • Поле зі зв'язком "багато-до-одного": ThisItem.Customer.Company
  • Надпис, в якому відображається ім'я параметра у наборі: ThisItem.'Order Status'
  • Надпис, який змінює формат на основі того, який параметр у наборі відображає надпис: Switch( ThisItem.'Order Status', 'Orders Status'.Closed, Green, ...
  • Складну агрегатну функцію над зв'язком "один-до-багатьох": Sum( ThisItem.'Order Details', Quantity * 'Unit Price' )

Наступний розділ

У наступному розділі ми додамо елемент керування Форма редагування щоб відображати та редагувати зведення будь-якого замовлення, вибраного користувачем в у щойно створеній колекції.

Примітка

Розкажіть нам про свої уподобання щодо мови документації? Візьміть участь в короткому опитуванні. (зверніть увагу, що це опитування англійською мовою)

Проходження опитування займе близько семи хвилин. Персональні дані не збиратимуться (декларація про конфіденційність).