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


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

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

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

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

Вимоги

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

Створення додаткової панелі заголовка

  1. У верхній частині екрана виберіть елемент керування Надпис, який виступає рядком заголовка, скопіюйте його, натиснувши клавіші CTRL-C, а потім вставте, натиснувши клавіші CTRL-V.

    Копіювання та вставка рядка заголовка.

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

  3. Видаліть текст із копії будь-яким із зазначених нижче способів:

    • Двічі клацніть текст, щоб вибрати його, а потім натисніть клавішу DELETE.
    • Задайте значенням властивості Текст надпису порожній рядок ("").

    Вилучення тексту з копії панелі заголовка.

  1. Вставка елемента керування колекція із пустим вертикальним макетом:

    Додавання пустої вертикальної колекції.

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

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

    Остаточне розташування колекції відомостей замовлень.

  3. Задайте зазначену нижче формулу в якості значення для властивості Елементи колекції відомостей:

    Gallery1.Selected.'Order Details'
    

    Встановлення значення для властивості "Елементи" колекції відомостей.

    Якщо відобразиться повідомлення про помилку, переконайтеся, що ім'я колекції замовлень — Gallery1 (в області Подання дерева, поруч із лівим краєм). Якщо в колекція має інше ім'я, перейменуйте її в Gallery1.

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

    Зв’язок «один-до-багатьох» між таблицею «Замовлення» та таблицею «Відомості про замовлення».

Відображення назв продуктів

  1. У колекції відомостей виберіть Додати елемент з вклади вставок щоб вибрати шаблон колекції:

    Виберіть шаблон для колекції відомостей.

    Переконайтеся, що вибрали шаблон колекції, а не саму колекцію. Обмежувальна рамка має бути в межах колекції та, ймовірно, коротшою за висоту колекції. Вставлені в цей шаблон елементи керування повторюватимуться в кожному елементі колекції.

  2. На вкладці Вставлення, вставте надпис до колекції відомостей.

    Надпис має відображатися в колекції. Якщо не відображається, спробуйте ще раз, але переконайтеся, що шаблон колекції обрано, перш ніж вставляти надпис.

    Додавання надпису до колекції відомостей.

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

    ThisItem.Product.'Product Name'
    

    Якщо текст не відображається, натисніть стрілку Замовлення 0901 у нижній частині колекції замовлень.

  4. Змініть розмір надпису таким чином, щоб з'явився повний текст:

    Відображення назви продукту у відомостях про замовлення.

    Цей вираз походіть від запису в таблиці Відомості про замовлення. Запис проводиться в ThisItem до таблиці Продукти для замовлення через зв'язок «багато-до-одного»:

    Зв’язок «багато-до-одного» між таблицею «Відомості про замовлення» та таблицею «Продукт для замовлення».

    Стовпець Ім'я продукту (та інші стовпці, які ви збираєтесь використати), отримано:

    Стовпець у таблиці «Продукти для замовлення».

Відображення зображень продуктів

  1. На вкладці Вставлення, вставте елемент керування Зображення до колекції відомостей:

    Вставте елемент керування зображенням на полотно.

  2. Змініть розмір і перемістіть зображення та надпис, щоб вони розташувались поряд.

    Підказка

    Для більш тонкого керування розміром і положенням елемента керування, починайте зміну розміру або переміщення, не натискаючи клавішу Alt, а потім продовжуйте змінювати розмір або переміщувати елемент керування, утримуючи клавішу Alt:

    Переміщення елемента керування "Зображення".

  3. В якості значення одноіменної властивості Зображення, вкажіть цю формулу:

    ThisItem.Product.Picture
    

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

    Відображення зображення продукту.

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

    Вкорочення шаблону колекції.

Відображення кількості та вартості продуктів

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

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

    ThisItem.Quantity
    

    У цій формулі інформація витягується безпосередньо з таблиці Відомості про замовлення (зв'язок не потрібен).

    Відображення кількості продуктів.

  3. На вкладці Основне вирівняйте цей елемент керування по правому краю.

    Змініть вирівнювання вправо.

  4. На вкладці Вставлення вставте ще один надпис до колекції відомостей, а потім змініть розмір і перемістіть надпис праворуч від надпису про кількість.

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

    Text( ThisItem.'Unit Price', "[$-en-US]$ #,###.00" )
    

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

    Відображення ціни за одиницю.

  6. На вкладці Основне вирівняйте цей елемент керування по правому краю.

    Змініть вирівнювання на правий бік.

  7. На вкладці Вставлення вставте ще один елемент керування "Надпис" до колекції відомостей, а потім змініть розмір і перемістіть новий надпис праворуч від ціни за одиницю.

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

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

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

    Відображення загальної ціни.

  9. На вкладці Основне вирівняйте цей елемент керування по правому краю.

    Змініть вирівнювання праворуч.

    Наразі ми завершили додавання елементів керування до колекції відомостей.

  10. В області Подання дерева виберіть Screen1, щоб переконатися, що колекцію відомостей більше не вибрано.

Додавання тексту до нової панелі заголовка

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

    Знімок екрана: вставлення підпису.

  2. Змініть розмір і перемістіть новий надпис над зображеннями продуктів у другому рядку заголовка, а потім змініть колір тексту на білий на вкладці Основне.

  3. Двічі клацніть текст надпису, а потім введіть Продукт:

    Зміна тексту надпису на "Продукт".

  4. Скопіюйте та вставте надпис продукту, а потім змініть розмір і помістіть копію над стовпцем кількості.

  5. Двічі клацніть текст нового надпису, а потім введіть Кількість:

    Зміна тексту надпису на "Кількість".

  6. Скопіюйте та вставте надпис кількості, а потім змініть розмір і помістіть копію над стовпцем ціни за одиницю.

  7. Двічі клацніть текст нового надпису, а потім введіть Ціна за одиницю:

    Зміна тексту надпису на "Ціна за одиницю".

  8. Скопіюйте та вставте надпис ціни за одиницю, а потім змініть розмір і помістіть копію над стовпцем загальної ціни.

  9. Двічі клацніть текст нового надпису, а потім введіть "Загальна".

    Зміна тексту надпису на "Загальна".

Відображення сум замовлень

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

    Вкорочення колекції відомостей про замовлення.

  2. Скопіюйте та вставте рядок заголовка в середину екрана, а потім перемістіть копію в нижню частину екрана:

    Скопіюйте рядок заголовка та перемістіть копію до нижнього краю.

  3. Скопіюйте та вставте надпис продукту в середній рядок заголовку, а потім перемістіть копію в нижній рядок заголовка, безпосередньо ліворуч від стовпця Кількість.

  4. Двічі клацніть текст нового надпису, а потім введіть наступний текст:
    Суми замовлень:

    Додавання надпису для сум замовлень.

  5. Скопіюйте та вставте надпис для сум замовлень, а потім змініть розмір і перемістіть копію праворуч від надпису для сум замовлень.

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

    Sum( Gallery1.Selected.'Order Details', Quantity )
    

    У цій формулі відображається попередження про делегацію, але його можна пропустити, оскільки жодне замовлення не міститиме більше 500 продуктів.

  7. На вкладці Основне встановіть вирівнювання тексту нового надпису по правому краю.

    Зміна вирівнювання.

  8. Скопіюйте та вставте елемент керування "Надпис", а потім змініть розмір і помістіть копію під стовпцем Загальна.

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

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

    У цій формулі відображається попередження про делегацію, але його можна пропустити, оскільки жодне замовлення не міститиме більше 500 продуктів.

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

Додавання місця для нових відомостей

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

  1. Зменште висоту колекції відомостей, щоб звільнити місце для одноелементної області редагування під колекцією.

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

    Вкорочення колекції відомостей.

  2. На вкладці Вставлення вставте надпис, а потім змініть розмір і перемістіть його під колекцію відомостей.

    Вставлення надпису.

  3. Двічі клацніть текст нового надпису, а потім натисніть клавішу DELETE.

  4. На вкладці Основне задайте блакитний колір Заливки:

    Зміна заливки надпису на блакитну.

Вибір продукту

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

    Вставити поле зі списком.

    Елемент керування Поле зі списком відобразиться у верхньому лівому кутку.

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

  3. На вкладці Властивості поля зі списком натисніть Редагувати (поруч з пунктом Поля), щоб відкрити область Дані. Переконайтеся, що Основний текст і SearchField мають значення nwind_productname.

    Вкажіть логічне ім'я, оскільки область Дані ще не підтримує короткі імена в цьому випадку:

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

  4. Закрийте область даних.

  5. Біля правого краю вкладки Властивості прокрутіть униз, вимкніть параметр Дозволити вибір кількох елементів та переконайтеся, що параметр Дозволити пошук увімкнуто:

    Вимкнення вибору кількох елементів і ввімкнення пошуку.

  6. Змініть розмір і перемістіть поле зі списком на блакитну область, під стовпець назви продукту в колекції відомостей:

    Переміщення поля зі списком.

    У цьому полі зі списком користувач вказуватиме запис у таблиці Продукт для запису Відомості про замовлення, який створить програма.

  7. Утримуючи клавішу Alt, натисніть стрілку вниз поля зі списком.

    Підказка

    Утримуючи клавішу Alt, можна взаємодіяти з елементами керування Power Apps Studio, не відкриваючи режим попереднього перегляду.

  8. У списку продуктів, що відкрився, виберіть продукт:

    Вибір продукту у полі зі списком.

Додавання зображення продукту

  1. На вкладці Вставка виберіть Медіадані > Зображення.

    Вставлення елемента керування "Зображення".

    Елемент керування Зображення відобразиться у верхньому лівому кутку:

    Розташування елемента керування "Зображення" за замовчуванням.

  2. Змініть розмір і перемістіть зображення на блакитну область під іншими зображеннями продуктів та поруч із полем зі списком.

  3. Встановіть значення одноіменної властивості зображення:

    ComboBox1.Selected.Picture
    

    Встановлення значення одноіменної властивості зображення.

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

Додавання поля "кількість"

  1. На вкладці Вставка виберіть Текст > Введення тексту.

    Додавання поля введення тексту.

    Елемент керування Введення тексту відобразиться у верхньому лівому кутку:

    Розташування поля введення тексту за замовчуванням.

  2. Змініть розмір і перемістіть поле введення тексту праворуч від поля зі списком, під стовпець кількості в колекції відомостей:

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

    За допомогою цього поля введення тексту, користувач буде вказувати поле Кількість запису Відомостей про замовлення.

  3. В якості значення За замовчуванням цього елемента керування задайте "":

    Установіть властивість За промовчанням для поля введення тексту.

  4. На вкладці Основне вирівняйте текст цього елемента керування по правому краю.

    Змініть вирівнювання елемента керування вправо.

Відображення цін за одиницю та загальних цін

  1. На вкладці Вставлення, вставте елемент керування Надпис.

    Надпис відобразиться у верхньому лівому кутку екрана.

    Вставлення надпису.

  2. Змініть розмір і перемістіть надпис праворуч від елемента керування "Введення тексту" і задайте в якості значення властивості Текст надпису цю формулу:

    Text( ComboBox1.Selected.'List Price', "[$-en-US]$ #,###.00" )
    

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

    Цей елемент керування відображає Ціну за прайсом з таблиці Продукти для замовлення. Це значення визначить Ціну за одиницю в записі відомостей про замовлення.

    Примітка

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

  3. На вкладці Основне вирівняйте текст надпису ціни за прейскурантом по правому краю.

    Змініть вирівнювання елемента керування на праву сторону.

  4. Скопіюйте та вставте надпис для ціни за прейскурантом, а потім змініть розмір і перемістіть копію праворуч від надпису для ціни за прейскурантом.

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

    Text( Value(TextInput1.Text) * ComboBox1.Selected.'List Price', "[$-en-US]$ #,###.00" )
    

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

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

  6. Двічі клацніть елемент керування "Введення тексту" для кількості, а потім введіть число.

    Надпис Загальна ціна" повторює розрахунок, щоб відобразити нове значення:

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

Додавання піктограми додавання

  1. На вкладці Вставка виберіть Піктограми > Додавання:

    Вставка піктограми додавання.

    Піктограма відобразиться у верхньому лівому кутку екрана.

    Розташування піктограми додавання за замовчуванням.

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

    Patch( 'Order Details',
        Defaults('Order Details'),
        {
            Order: Gallery1.Selected,
            Product: ComboBox1.Selected,
            Quantity: Value(TextInput1.Text),
            'Unit Price': ComboBox1.Selected.'List Price'
        }
    );
    Refresh( Orders );
    Reset( ComboBox1 );
    Reset( TextInput1 )
    

    Установіть властивість OnSelect піктограми.

    Загалом, функція Виправлення оновлює та створює записи, а певні аргументи в цій формулі визначають точні зміни, які внесе функція.

    • Перший аргумент визначає джерело даних (в нашому випадку це таблиця Відомості про замовлення), в якому функція оновлюватиме або створюватиме записи.

    • Другий аргумент визначає, що функція створить запис зі значеннями за замовчуванням для таблиці Відомості про замовлення, якщо інше не буде вказано в третьому аргументі.

    • Третій аргумент вказує на те, що чотири стовпці в новому записі міститимуть значення від користувача.

      • Стовпець Замовлення міститиме номер замовлення, вибраного користувачем в колекції замовлень.
      • Стовпець Продукт міститиме назву продукту, вибраного користувачем у полі зі списком, в якому відображаються продукти.
      • Стовпець Кількість міститиме значення, вказане користувачем в полі введення тексту.
      • Стовпець Ціна за одиницю міститиме ціну за прейскурантом продукту, вибраного користувачем для цих відомостей замовлення.

    Примітка

    Ви можете створювати формули, які використовують дані з будь-якого стовпця (у таблиці Продукти для замовлення) для будь-якого продукту, який користувач вибирає в полі зі списком, де відображаються продукти. Коли користувач вибирає запис у таблиці Продукти для замовлення, відображається не тільки ім'я продукту в цьому полі зі списком, але й ціна за одиницю продукту в підписі. Кожне значення підстановки в компонованій програмі посилається на весь запис, а не лише первинний ключ.

    Функція Оновити гарантує, що запис, щойно доданий до таблиці Відомості про замовлення, відобразиться в таблиці Замовлення. Функція скидання видаляє дані про продукт, кількість і ціну за одиницю, щоб спростити створення користувачем нових відомостей для того самого замовлення.

  3. Натисніть клавішу F5, а потім виберіть піктограму Додавання.

    У замовленні відображаються зазначені вами відомості.

    Анімація додавання відомостей про замовлення.

  4. (необов'язково) Додайте до замовлення ще один елемент.

  5. Натисніть клавішу Esc, щоб закрити режим попереднього перегляду.

Вилучення відомостей про замовлення

  1. У центрі екрана виберіть шаблон колекції відомостей:

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

  2. На вкладці Вставка виберіть Піктограми > Кошик:

    Вставка піктограми "Кошик".

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

    Розташування піктограми за замовчуванням.

  3. Змініть розмір і перемістіть піктограму "Кошик" на праву сторону шаблона колекції, а потім задайте значенням властивості OnSelect для піктограми цю формулу:

    Remove( 'Order Details', ThisItem ); Refresh( Orders )
    

    Встановлення значення властивості OnSelect піктограми.

    На момент створення цієї статті записи не можна видаляти безпосередньо зі зв'язку, тому функція Remove видаляє запис безпосередньо з пов'язаної таблиці. У пункті "ThisItem" вказується запис, який буде видалено, взятий з того ж запису в колекції відомостей, де відображається піктограма "кошик".

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

  4. Натисніть клавішу F5, щоб відкрити режим попереднього перегляду, а потім натисніть піктограму "кошик" поруч із записом відомостей про замовлення, який необхідно усунути з замовлення.

  5. Спробуйте додавати та видаляти різноманітні відомості про замовлення в своїх замовленнях:

    Анімація додавання та видалення відомостей про замовлення.

На заключення

Отже, ми додали ще одну колекцію, щоб відображати відомості про замовлення та елементи керування для додавання та видалення відомостей про замовлення у програмі. Ми використати наступні елементи:

  • Другий елемент керування "Колекція", зв'язаний із колекцією замовлень зв'язком "один-до-багатьох": Gallery2.Items = Gallery1.Selected.'Order Details'
  • Зв'язок «багато-до-одного» між таблицею Відомості про замовлення та таблицею Продукти для замовлення: ThisItem.Product.'Product Name' і ThisItem.Product.Picture
  • Функцію Варіанти вибору для отримання списку продуктів: Choices( 'Order Details'.Product' )
  • Властивість Вибрано поля зі списком в якості повного запису зі зв'язком "багато-до-одного": ComboBox1.Selected.Picture та ComboBox1.Selected.'List Price'
  • Функцію Виправлення для створення запису відомостей про замовлення: Patch( 'Order Details', Defaults( 'Order Details' ), ... )
  • Функцію Вилучення для видалення запису відомостей про замовлення: Remove( 'Order Details', ThisItem )

Ця серія статей — це короткий освітній посібник щодо використання зв'язків і виборів Dataverse в компонованих програмах. Перш ніж випускати будь-яку програму для виробництва, слід розглянути перевірку полів, обробку помилок та багато інших факторів.

Примітка

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

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