Споделяне чрез


Създайте галерия с подробности в приложение за платно

Следвайте инструкциите стъпка по стъпка, за да създадете галерия с подробности в приложение за платно за управление на фиктивни данни в базата данни на Northwind Traders. Тази тема е част от поредица, която обяснява как да се изгради бизнес приложение на релационни данни в Microsoft Dataverse. За най-добри резултати проучете тези теми в тази последователност:

  1. Създаване на галерията за поръчки.
  2. Създаване на формуляр за обобщение.
  3. Създайте галерия с подробности (тази тема).

Определяне на областите на екраните.

Предварителни изисквания

Преди да започнете тази тема, трябва да инсталирате базата данни, както е описано по-горе в тази тема. След това трябва или да създадете галерия за поръчки и обобщената форма или да отворите Поръчки на Northwind (Платно) - Започнете част 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. На раздела Начало, задайте цвета на Запълване на новия етикет на LightBlue:

    Променете запълването на етикета на светлосиньо.

Изберете продукт

  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 на иконата.

    От това писане не можете да премахнете запис директно от връзка, така че Премахване функция премахва запис директно от свързаната таблица. Този артикул указва записа, който трябва да се премахне, взет от същия запис в галерията с подробности, където се появява иконата на кошчето.

    Отново, операцията използва кеширани данни, така че Обнови функцията информира Поръчки таблица, че приложението е променило една от свързаните таблици.

  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 и избори в приложение за платно с образователна цел. Преди да пуснете някое приложение в производство, трябва да помислите за проверка на полето, работа с грешки и много други фактори.

Бележка

Можете ли да ни споделите повече за езиковите си предпочитания за документацията? Попълнете кратко проучване. (имайте предвид, че това проучване е на английски език)

Проучването ще отнеме около седем минути. Не се събират лични данни (декларация за поверителност).