Делите путем


Креирање галерије детаља у апликацији подлоге

Пратите детаљна упутства да бисте креирали галерију детаља у апликацији подлоге за управљање фиктивним подацима у бази података Northwind Traders. Ова тема је део серије која објашњава како да направите пословну апликацију на релационим подацима у услузи Microsoft Dataverse. Да бисте постигли најбоље резултате, истражите ове теме у овом редоследу:

  1. Креирање галерије поруџбина.
  2. Креирање обрасца резимеа.
  3. Креирање галерије детаља (ова тема).

Дефиниција површина екрана.

Предуслови

Пре него што покренете ову тему, морате да инсталирате базу података како је раније описано у овој теми. Тада морате креирати галерију поруџбина и образац резимеа или отворити апликацију Northwind Orders (апликација подлоге) – почетак 3. дела која већ садржи ту галерију и тај образац.

Направите другу траку наслова

  1. На врху екрана изаберите контролу Ознака која делује као насловна трака, копирајте је притиском на Ctrl-C, а затим је налепите притиском на Ctrl-V:

    Копирајте и залепите насловну траку.

  2. Промените величину и преместите копију тако да се појављује одмах испод обрасца резимеа.

  3. Уклоните текст из копије на било који од ових начина:

    • Двапут кликните текст да бисте га изабрали, а затим притисните Delete.
    • Подесите својство ознаке Text на празну ниску ("").

    Уклоните текст из копије насловне траке.

  1. Уметните контролу Галерија са распоредом Празан усправан:

    Додавање празне усправне галерије.

    Нова галерија, која ће приказивати детаље поруџбине, приказује се у горњем левом углу.

  2. Затворите излазећи дијалог извора података, а затим промените величину и преместите галерију детаља у доњи десни угао, испод нове насловне траке:

    Коначна локација галерије детаља о поруџбини.

  3. Подесите својство Items галеријe детаља према овој формули:

    Gallery1.Selected.'Order Details'
    

    Подесите својство Items галерије детаља.

    Ако се појави грешка, потврдите да је именована галерија поруџбина Gallery1 (у окну Приказ стабла уз леву ивицу). Ако та галерија има друго име, преименујте је у Gallery1.

    Управо сте повезали две галерије. Када корисник одабере поруџбину у галерији поруџбина, тај избор идентификује запис у табели Поруџбине. Ако та поруџбина садржи једну или више ставки поруџбина, запис у табели Поруџбине је повезан са једним или више записа у табели Детаљи поруџбине, а подаци из тих записа се приказују у галерији детаља. Ово понашање одражава релацију један-према-више која је креирана за вас између табела Поруџбине и Детаљи поруџбине. Формула коју сте навели „шета“ ту релацију користећи тачкасту нотацију:

    Релација један-према-више између табеле Поруџбине и табеле Детаљи поруџбине.

Прикажите називе производа

  1. У галерији детаља изаберите Додајте ставку са картице Уметање за одабир предлошка галерије:

    Изаберите предложак за галерију детаља.

    Обавезно изаберите предложак галерије уместо саме галерије. Оквир за ограничавање треба да буде мало унутар граница галерије и вероватно краћи од висине галерије. Док убацујете контроле у овај образац, оне се понављају за сваку ставку у галерији.

  2. На картици Уметање уметните ознаку у галерију детаља.

    Ознака треба да се приказује унутар галерије; ако није тако, покушајте поново, али обавезно одаберите предложак галерије пре него што уметнете ознаку.

    Додајте нову ознаку у галерију детаља.

  3. Подесите ново својство Text ознаке према овој формули:

    ThisItem.Product.'Product Name'
    

    Ако се не појави текст, изаберите стрелицу за Поруџбина 0901 близу дна галерије поруџбина.

  4. Промените величину ознаке тако да се појави цео текст:

    Прикажите назив производа у детаљима поруџбине.

    Овај израз долази из записа у табели Детаљи поруџбине. Запис се одржава у атрибуту ThisItem преко табеле Производи поруџбине кроз релацију више-према-један:

    Релација више-према-један између табеле Детаљи поруџбине и табеле Производи поруџбине.

    Издвојена је колона Назив производа (и остале колоне које ћете користити):

    Колона у табели Производи поруџбине.

Прикажи слике производа

  1. На картици Уметање уметните контролу Слика у галерију детаља:

    Уметните контролу слике на подлогу.

  2. Промените величину и преместите слику и ознаку једну поред друге.

    Савет

    Да бисте прецизно контролисали величину и положај контроле, почните да мењате њену величину или је померате без притиска на тастер Alt, а затим наставите да мењате величину или померате контролу док држите тастер Alt:

    Преместите контролу слике.

  3. Подесите својство слике Image према овој формули:

    ThisItem.Product.Picture
    

    Израз се поново односи на производ који је повезан са овим детаљем наруџбе и издваја поље Слика за приказ.

    Прикажи слику производа.

  4. Смањите висину предлошка галерије тако да се одједном приказује више од једног записа Детаљ поруџбине:

    Скратите предложак галерије.

Прикажите количину и трошкове производа

  1. На картици Уметање, уметните другу ознаку у галерију детаља, а затим промените величину и преместите нову ознаку десно од информација о производу.

  2. Подесите ново својство Text ознаке на овај израз:

    ThisItem.Quantity
    

    Ова формула преузима информације директно из табеле Детаљи поруџбине (није потребна релација).

    Прикажите количину производа.

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

    Промена поравнања удесно.

  4. На картици Уметање, уметните другу ознаку у галерију детаља, а затим промените величину и преместите нову ознаку десно од ознаке количине.

  5. Подесите ново својство Text ознаке према овој формули:

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

    Ако не укључите ознаку језика ([$-en-US]), биће додата за вас на основу вашег језика и региона. Ако користите другу језичку ознаку, треба да уклоните знак $ непосредно након затварања угласте заграде (]), а затим додајте свој сопствени симбол валуте на тој позицији.

    Приказ цене по јединици.

  6. На картици Почетак, промените поравнање ове контроле у Десно:

    Промена поравнања на десну страну.

  7. На картици Уметање, уметните другу контролу ознаке у галерију детаља, а затим промените величину и преместите нову ознаку десно од цене по јединици.

  8. Подесите ново својство Text ознаке према овој формули:

    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. Подесите ново својство Text ознаке према овој формули:

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

    Ова формула показује упозорење о делегирању, али можете је игнорисати јер ниједна поруџбина неће садржати више од 500 производа.

  7. На картици Почетак, подесите поравнање текста нове ознаке на Десно:

    Промените поравнање.

  8. Копирајте и залепите контролу ове ознаке, а затим промените величину и преместите копију испод колоне Укупно.

  9. Подесите својство Text копије према овој формули:

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

    Ова формула показује упозорење о делегирању, али можете је игнорисати јер ниједна поруџбина неће садржати више од 500 производа.

    Прикажите укупну цену поруџбине.

Додајте простор за нове детаље

У свакој галерији можете приказати податке, али не можете их ажурирати нити додавати записе. Испод галерије детаља додаћете област у којој корисник може да конфигурише запис у табели Детаљи поруџбине и убаците тај запис у поруџбину.

  1. Смањите висину галерије детаља довољно да направите места за простор за уређивање појединачних ставки испод те галерије.

    У том простору ћете додати контроле како би корисник могао да дода детаље поруџбине:

    Скраћење галерије детаља.

  2. На картици Уметање уметните ознаку, а затим је промените и преместите испод галерије детаља.

    Уметните ознаку.

  3. Двапут кликните на текст нове ознаке, а затим притисните Избриши:

  4. На картици Почетак, подесите боју Fill нове ознаке на LightBlue:

    Промените боју попуне ознаке у светлоплаву.

Изаберите производ

  1. На картици Уметање, изаберите Контроле > Комбиновани оквир:

    Уметање комбинованог оквира.

    Контрола Комбиновани оквир се појављује у горњем левом углу.

  2. У дијалогу потпалете, изаберите извор података Производи поруџбине.

  3. На картици Својства за комбинованог оквира, изаберите Уреди (поред Поља) да бисте отворили окно Подаци. Осигурајте да су Примарни текст и SearchField подешени на nwind_productname.

    Логичко име наводите јер окно Подаци у овом случају још увек не подржава имена за приказ:

    Подесите примарни текст за комбиновани оквир.

  4. Затворите окно Подаци.

  5. На картици Својства близу десне ивице, померите се надоле, искључите Дозволи вишеструки избор и уверите се да је укључена опција Дозволи претраживање укључена:

    Онемогућите вишеструки избор и омогућите претраживање.

  6. Промените величину и преместите комбиновани оквир у светлоплаву област, одмах испод колоне назива производа у галерији детаља:

    Померите комбиновани оквир.

    У овом комбинованом оквиру, корисник ће навести запис у табели Производ за запис Детаљи поруџбине који ће апликација креирати.

  7. Док држите притиснут тастер Alt, изаберите стрелицу надоле за комбинирани оквир.

    Савет

    Држећи тастер Alt можете ступати у интеракцију са контролама у програму Power Apps Studio без отварања режима прегледа.

  8. На листи производа који се појављују одаберите производ:

    Изаберите производ у комбинованом оквиру.

Додајте слику производа

  1. На картици Уметање, изаберите Медији > Слика:

    Уметните контролу слике.

    Контрола Слика се појављује у горњем левом углу:

    Подразумевана локација контроле слике.

  2. Промените величину и преместите слику у светлоплаву област испод осталих слика производа и поред комбинованог оквира.

  3. Подесите својство Image за слику да бисте:

    ComboBox1.Selected.Picture
    

    Подесите својство Image за слику.

    Користите исти трик који сте користили да бисте приказали слику запосленог у обрасцу резимеа. Својство Selected комбинованог оквира враћа целокупни запис било ког производа који корисник изабере, укључујући и поље Слика.

Додајте поље за количину

  1. На картици Уметање, изаберите Текст > Унос текста:

    Додавање поља за унос текста.

    Контрола Унос текста се појављује у горњем левом углу:

    Подразумевана локација поља за унос текста.

  2. Промените величину и преместите поље за унос текста десно од комбинованог оквира, одмах испод колоне количине у галерији детаља:

    Промените величину и преместите поље за унос текста.

    Користећи ово поље за унос текста, корисник ће одредити поље Количина записа Детаљи поруџбине.

  3. Подесите својство Default ове контроле на "":

    Поставите  подразумевано  својство оквира за унос текста.

  4. На картици Почетак, подесите поравнање текста ове контроле на Десно:

    Промените поравнање контроле удесно.

Прикажите јединицу и укупне цене

  1. На картици Уметање, уметните контролу Ознака:

    Ознака се приказује у горњем левом углу екрана:

    Уметните ознаку.

  2. Промените величину и преместите ознаку десно од контроле уноса текста и подесите својство Text ознаке према овој формули:

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

    Подесите својство Text ознаке.

    Ова контрола приказује Ценовник из табеле Производи поруџбине. Ова вредност ће одредити поље Цена по јединици у запису Детаљи поруџбине.

    Напомена

    За овај сценарио, вредност је само за читање, али други сценарији могу захтевати од корисника да је измени. У том случају, користите контролу Унос текста и подесите њено својство Default на Цена из ценовника.

  3. На картици Почетак, подесите поравнање текста ознаке цене из ценовника на Десно:

    Промена поравнања контроле на десну страну.

  4. Копирајте и налепите ознаку цене из ценовника, а затим промените величину и преместите копију десно од ознаке цене из ценовника.

  5. Подесите ново својство Text ознаке према овој формули:

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

    Подесите својство Text нове ознаке.

    Ова контрола приказује укупну цену на основу количине коју је корисник апликације одредио и цене производа коју је корисник апликације изабрао. То је чисто информативно за корисника апликације.

  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.

    Уопште, функција Patch ажурира и креира записе, а специфични аргументи у овој формули одређују тачне промене које ће функција извршити.

    • Први аргумент наводи извор података (у овом случају, табелу Детаљи поруџбине) у којој ће функција ажурирати или креирати запис.

    • Други аргумент наводи да ће функција креирати запис са подразумеваним вредностима за табелу Детаљи поруџбине, осим ако у трећем аргументу није другачије назначено.

    • Трећи аргумент одређује да ће четири колоне у новом запису садржавати вредности корисника.

      • Колона Поруџбина ће садржати број поруџбине који је корисник изабрао у галерији поруџбина.
      • Колона Производ ће садржати назив производа који је корисник изабрао у комбинованом оквиру који приказује производе.
      • Колона Количина ће садржати вредност коју је корисник одредио у пољу за унос текста.
      • Колона Цена по јединици ће садржавати листу производа који је корисник одабрао за овај детаљ поруџбине.

    Напомена

    Можете да направите формуле које користе податке из било које колоне (у табели Производи поруџбине) за било који производ који корисник апликације изабере у комбинованом оквиру који приказује производе. Када корисник изабере запис у табели Производи поруџбине, не само да се назив производа приказује у том комбинованом оквиру, већ се и јединична цена производа приказује у ознаци. Свака вредност проналажења у апликацији подлоге односи се на читав запис, а не само на примарни кључ.

    Функција Refresh осигурава да табела Поруџбине одражава запис који сте управо додали у табелу Детаљи поруџбине. Функција Reset брише податке о производу, количини и цене по јединици, тако да корисник лакше креира још један детаљ поруџбине за исту поруџбину.

  3. Притисните F5, а затим изаберите икону Додај.

    Поруџбина одражава информације које сте навели:

    Анимација додавања детаља поруџбине.

  4. (опционално) Додајте још једну ставку у поруџбину.

  5. Притисните тастер Esc да бисте затворили режим прегледа.

Уклоните детаље поруџбине

  1. У средини екрана изаберите предложак галерије детаља:

    Изаберите предложак галерије.

  2. На картици Уметање, изаберите Иконе > Корпа за отпатке:

    Уметните икону Корпа за отпатке.

    Икона Корпа за отпатке се приказује у горњем левом углу предлошка галерије.

    Подразумевана локација иконе.

  3. Промените величину и преместите икону Корпа за отпатке на десну ивицу предлошка галерије детаља, па подесите својство иконе OnSelect према овој формули:

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

    Подесите својство OnSelect иконе.

    У часу овог писања, не можете уклонити запис директно из релације, па функција Remove уклања запис директно из повезане табеле. ThisItem одређује запис који треба уклонити, снимљен из истог записа у галерији детаља у којој се појављује икона Корпа за отпатке.

    Опет, операција користи кеширане податке, па функција Refresh обавештава табелу Поруџбине да је апликација променила једну од повезаних табела.

  4. Притисните F5 да бисте отворили режим прегледа, а затим изаберите икону Корпа за отпатке поред сваког записа Детаљи поруџбине који желите да уклоните из поруџбине.

  5. Покушајте да додате и уклоните различите детаље поруџбине из поруџбина:

    Анимација додавања и уклањања детаља поруџбине.

Закључак

Да резимирамо, додали сте другу галерију за приказ детаља поруџбине и контроле додавањем и уклањањем детаља поруџбине у апликацији. Користили сте ове елементе:

  • Друга контрола галерије, повезана са галеријом поруџбина путем релације „један према више“: Gallery2.Items = Gallery1.Selected.'Order Details'
  • Релација више-према-један између табеле Детаљи поруџбине и табеле Производи поруџбине: ThisItem.Product.'Product Name' и ThisItem.Product.Picture
  • Функција Choices за добијање листе производа: Choices( 'Order Details'.Product' )
  • Својство Selected комбинованог оквира као комплетног записа у релацији „више према један“: ComboBox1.Selected.Picture и ComboBox1.Selected.'List Price'
  • Функција Patch за креирање записа Детаљи поруџбине: Patch( 'Order Details', Defaults( 'Order Details' ), ... )
  • Функција Remove за брисање записа Детаљи поруџбине: Remove( 'Order Details', ThisItem )

Ова серија тема је била брзо упутство за употребу Dataverse релација и избора у апликацији са подлогом у образовне сврхе. Пре него што пустите било коју апликацију у производњу, требало би да размотрите проверу ваљаности поља, руковање грешкама и многе друге факторе.

Напомена

Можете ли нам рећи о својим жељеним поставкама језика у документацији? Испуните кратку анкету. (имајте на уму да је ова анкета на енглеском језику)

Анкета ће трајати око седам минута. Не прикупљају се лични подаци (изјава о приватности).