Stvorite galeriju pojedinosti u aplikaciji od gotovih gradivnih elemenata
Slijedite podrobne upute za stvaranje galerije pojedinosti u aplikaciji od gotovih gradivnih elemenata za upravljanje izmišljenim podacima u bazi podataka Northwind Traders. Ovaj tema dio je serije koja objašnjava kako izraditi poslovnu aplikaciju na relacijskim podacima u Microsoft Dataverse. Za najbolje rezultate istražite ove teme u ovom nizu:
- Stvaranje galerije narudžbi.
- Stvaranje obrasca sažetka.
- Stvorite galeriju pojedinosti (ova tema).

Preduvjeti
Prije nego što pokrenete ovu temu, morate instalirati bazu podataka kako je ranije opisano u ovoj temi. Zatim morate ili stvoriti galeriju narudžbi i obrazac sažetka ili otvoriti aplikaciju Narudžbe Northwind (radno područje) – Početak 3. dio koja već sadrži tu galeriju i taj obrazac.
Izradite drugu naslovnu traku
Pri vrhu zaslona odaberite kontrolu Oznaka koja funkcionira kao naslovna traka, kopirajte je pritiskom na Ctrl-C, a zatim je zalijepite pritiskom na Ctrl-V:

Promijenite veličinu kopije i premjestite je tako da se prikaže upravo ispod obrasca sažetka.
Uklonite tekst iz kopije na jedan od sljedećih načina:
- Dvaput kliknite tekst kako biste ga odabrali, a zatim pritisnite Izbriši.
- Postavite svojstvo oznake Tekst na prazan niz („”).

Dodavanje galerije
Umetnite kontrolu Galerija s izgledom Prazna okomita:

Nova galerija, koja će prikazati pojedinosti narudžbe, prikazuje se u gornjem lijevom kutu.
Zatvorite skočni dijaloški okvir izvora podataka, a zatim promijenite veličinu galerije pojedinosti i premjestite je u donji desni kut, ispod nove naslovne trake:

Postavite svojstvo Stavke galerije pojedinosti u ovu formulu:
Gallery1.Selected.'Order Details'
Ako se prikaže pogreška, potvrdite da je galerija narudžbi imenovana kao Galerija1 (u oknu Prikaz stabla uz lijevi rub). Ako ta galerija ima drugo ime, preimenujte je u Galerija1.
Upravo ste povezali dvije galerije. Kada korisnik odabere narudžbu u galeriji narudžbi, taj odabir identificira zapis u tablici Narudžbe. Ako ta narudžba sadrži jednu stavku ili više njih, zapis u tablici Narudžbe povezan je s jednim zapisom ili više njih u tablici Detalji narudžbe, a podaci iz tih zapisa prikazuju se u galeriji detalja. Ovo ponašanje odražava odnos „jedan na više” koji je stvoren za vas između tablica Narudžbe i Detalji narudžbe. Formula koju ste naveli „šeta” tim odnosom upotrebljavajući notaciju s pomoću točaka:

Prikaz naziva proizvoda
U galeriji pojedinosti odaberite Dodaj stavku s kartice Umetni za odabir predloška galerije:

Provjerite jeste li umjesto same galerije odabrali predložak galerije. Okvir za ograničavanje trebao bi biti malo unutar granice galerije i vjerojatno niži od visine galerije. Kako u ovaj predložak umećete kontrole, one se ponavljaju za svaku stavku u galeriji.
Na kartici Umetni, umetnite oznaku u galeriju pojedinosti.
Oznaka bi se trebala prikazati unutar galerije; ako se ne prikaže, pokušajte ponovno, ali svakako odaberite predložak galerije prije nego što umetnete oznaku.

Postavite novo svojstvo oznake Tekst u ovu formulu:
ThisItem.Product.'Product Name'Ako se tekst ne prikaže, pri dnu galerije narudžbi odaberite strelicu za Narudžba 0901.
Promijenite veličinu oznake tako da se prikaže cijeli tekst:

Ovaj izraz dolazi od zapisa u tablici Detalji narudžbe. Zapis se čuva u ThisItem u tablici Proizvodi narudžbe kroz odnos "više na jedan":

Stupac Naziv proizvoda (i ostali stupci koje ćete koristiti) se izdvajaju:

Prikaži slike proizvoda
Na kartici Umetni, umetnite kontrolu Slika u galeriju pojedinosti:

Promijenite veličinu slike i premjestite je, kao i oznaku, jednu pokraj druge.
Savjet
Kako biste precizno nadzirali veličinu i položaj kontrole, počnite joj mijenjati veličinu ili je premještati bez pritiskanja tipke Alt, a zatim joj nastavite mijenjati veličinu ili je pomicati držeći pritisnutu tipku Alt:

Postavite svojstvo slike Slika u ovu formulu:
ThisItem.Product.PicturePonavljamo, izraz se odnosi na proizvod koji je povezan s ovom pojedinosti narudžbe i za prikaz izdvaja polje Slika.

Smanjite visinu predloška galerije tako da postoji više od jednog zapisa Pojedinosti narudžbe koji se prikazuje u isto vrijeme:

Prikažite količinu i cijenu proizvoda
Na kartici Umetni, umetnite drugu oznaku u galeriju pojedinosti, a zatim promijenite veličinu nove oznake i pomaknite je desno od informacija o proizvodu.
Postavite svojstvo nove oznake Tekst na ovaj izraz:
ThisItem.QuantityOva formula izvlači informacije izravno iz tablice Detalji narudžbe (nije potreban odnos).

Na kartici Početna, promijenite poravnanje ove kontrole u Desno:

Na kartici Umetni, umetnite drugu oznaku u galeriju pojedinosti, a zatim promijenite veličinu oznake i pomaknite je desno od oznake količine.
Postavite novo svojstvo oznake Tekst u ovu formulu:
Text( ThisItem.'Unit Price', "[$-en-US]$ #,###.00" )Ako ne uključite jezičnu oznaku ([$-en-US]), dodat će se automatski na temelju vašeg jezika i regije. Ako upotrebljavate različitu jezičnu oznaku, uklonite znak $ neposredno nakon zatvorene uglate zagrade (]), a zatim na to mjesto dodajte simbol svoje valute.

Na kartici Početna, promijenite poravnanje ove kontrole u Desno:

Na kartici Umetni, umetnite drugu kontrolu oznake u galeriju pojedinosti, a zatim promijenite veličinu nove oznake i pomaknite je desno od jedinične cijene.
Postavite novo svojstvo oznake Tekst u ovu formulu:
Text( ThisItem.Quantity * ThisItem.'Unit Price', "[$-en-US]$ #,###.00" )Ponavljamo, ako ne uključite jezičnu oznaku ([$-en-US]), dodat će se automatski na temelju vašeg jezika i regije. Ako se oznaka razlikuje, umjesto oznake $ trebali biste upotrijebiti simbol svoje valute neposredno nakon zatvorene uglate zagrade (]).

Na kartici Početna, promijenite poravnanje ove kontrole u Desno:

Za sada ste dodali kontrole u galeriju pojedinosti.
U oknu Prikaz stabla, odaberite Zaslon1 kako biste bili sigurni kako galerija pojedinosti više nije među odabranima.
Dodajte tekst u novu naslovnu traku
Na kartici Umetni na, na zaslon umetnite drugu oznaku:

Promijenite veličinu novu oznake i pomaknite je iznad slika proizvoda u drugoj naslovnoj traci, a zatim na kartici Početna promijenite boju teksta u bijelu boju.
Dvaput kliknite tekst oznake, a zatim upišite Proizvod:

Kopirajte i zalijepite oznaku proizvoda, a zatim promijenite veličinu kopije i pomaknite je iznad stupca količine.
Dvaput kliknite tekst nove oznake, a zatim upišite Količina:

Kopirajte i zalijepite oznaku količine, a zatim promijenite veličinu kopije i pomaknite je iznad stupca jedinična cijena.
Dvaput kliknite tekst nove oznake, a zatim upišite Jedinična cijena:

Kopirajte i zalijepite oznaku jedinična cijena, a zatim promijenite veličinu kopije i pomaknite je iznad stupca ukupna cijena.
Dvaput kliknite tekst nove oznake, a zatim upišite Ukupno:

Prikaza ukupnih iznosa narudžbe
Smanjite visinu galerije pojedinosti kako biste pri dnu zaslona oslobodili mjesto za ukupne iznose narudžbe:

Kopirajte i zalijepite naslovnu traku na sredinu zaslona, a zatim premjestite kopiju na dno zaslona:

Kopirajte i zalijepite oznaku proizvoda iz srednje naslovne trake, a zatim kopiju premjestite na donju naslovnu traku, s lijeve strane stupca Količina.
Dvaput kliknite tekst nove oznake, a zatim upišite taj tekst:
Ukupan iznos narudžbe:
Kopirajte i zalijepite oznaku ukupnih iznosa narudžbe, a zatim promijenite veličinu i pomaknite kopiju desno od oznake ukupnih iznosa narudžbe.
Postavite novo svojstvo oznake Tekst u ovu formulu:
Sum( Gallery1.Selected.'Order Details', Quantity )Ova formula prikazuje upozorenje za delegiranje, ali možete ga zanemariti jer niti jedna narudžba neće sadržavati više od 500 proizvoda.
Na kartici Početna, postavite poravnavanje teksta nove oznake na Desno:

Kopirajte i zalijepite tu kontrolu oznake, a zatim promijenite veličinu kopije i pomaknite je ispod stupca Ukupno.
Postavite svojstvo kopije Tekst u ovu formulu:
Text( Sum( Gallery1.Selected.'Order Details', Quantity * 'Unit Price' ), "[$-en-US]$ #,###.00" )Ova formula prikazuje upozorenje za delegiranje, ali možete ga zanemariti jer niti jedna narudžba neće sadržavati više od 500 proizvoda.

Dodavanje prostora za nove pojedinosti
U svakoj galeriji možete prikazati podatke, ali ih ne možete ažurirati niti dodavati zapise. Ispod galerije detalja dodat ćete područje u kojem korisnik može konfigurirati zapis u tablici Detalji narudžbe i umetnite taj zapis u narudžbu.
Smanjite visinu galerije pojedinosti dovoljno da napravite mjesta prostoru pod tom galerijom za uređivanje pojedinačnih stavki.
U ovom ćete prostoru dodati kontrole kako bi korisnik mogao dodati pojedinosti narudžbe:

Na kartici Umetni, umetnite oznaku, a zatim joj promijenite veličinu i premjestite je u galeriju pojedinosti.

Dvaput kliknite tekst nove oznake, a zatim pritisnite Izbriši.
Na kartici Početna, postavite boju Ispune nove oznake na Svijetloplava:

Odaberite proizvod
Na kartici Umetni, odaberite Kontrole > Kombinirani okvir:

Kontrola Kombinirani okvir prikazuje se u gornjem lijevom kutu.
U skočnom dijaloškom okviru odaberite izvor podataka Proizvodi iz narudžbe.
U kartici kombiniranog okvira Svojstva odaberite Uredi (pokraj Polja) kako biste otvorili okno Podaci. Osigurajte da su Primarni tekst i Polje za pretraživanje postavljeni na nwind_productname.
Odredite logično ime jer okno Podaci u ovom slučaju još ne podržava zaslonske nazive:

Zatvori okno Podaci.
U kartici Svojstva blizu desnog ruba, pomaknite se prema dolje, isključite Dopusti višestruki odabir i provjerite je li uključeno Dopusti pretraživanje:

Promijenite veličinu kombiniranog okvira i pomaknite ga u svijetloplavo područje, odmah ispod stupca naziva proizvoda u galeriji pojedinosti:

U ovom kombiniranom okviru korisnik će navesti zapis u tablici Proizvod za zapis Detalji narudžbe koji će aplikacija stvoriti.
Dok držite tipku Alt, odaberite strelicu dolje Kombiniranog okvira.
Savjet
Držanjem tipke Alt možete komunicirati s kontrolama u Power Apps Studio bez otvaranja načina pretpregleda.
Na popisu proizvoda koji se prikaže, odaberite proizvod:

Dodavanje slike proizvoda
Na kartici Umetni, odaberite Medij > Slika:

Kontrola Slika prikazuje se u gornjem lijevom kutu:

Promijenite veličinu slike i premjestite je u svijetloplavo područje ispod ostalih slika proizvoda i pokraj kombiniranog okvira.
Postavite svojstvo Slika za sliku na:
ComboBox1.Selected.Picture
Upotrijebite isti trik kao i kad ste prikazali sliku zaposlenika u obrascu sažetka. Svojstvo kombiniranog okvira Odabran vraća cjelokupni zapis bilo kojeg proizvoda koji korisnik odabere, uključujući i polje Slika.
Dodavanje okvira za količinu
Na kartici Umetni, odaberite Tekst > Unos teksta:

Kontrola Unos teksta prikazuje se u gornjem lijevom kutu.

Promijenite veličinu okvira za unos teksta i pomaknite ga na desnu stranu kombiniranog okvira, ispod stupca za količinu u galeriji pojedinosti:

Uporabom ovog okvira za unos teksta korisnik će odrediti polje Količina zapisa Pojedinosti narudžbe.
Postavite svojstvo Zadano te kontrole na „”:

Na kartici Početna, postavite poravnanje teksta ove kontrole u Desno:

Prikažite jedinicu i ukupnu cijenu
Na kartici Umetni, umetnite kontrolu Oznaka.
Oznaka se pojavljuje u gornjem lijevom kutu zaslona:

Promijenite veličinu oznake i pomaknite je desno od kontrole unosa teksta i postavite svojstvo Tekst za oznaku u ovu formulu:
Text( ComboBox1.Selected.'List Price', "[$-en-US]$ #,###.00" )
Ova kontrola prikazuje Cjenik iz tablice Proizvodi narudžbe. Ova vrijednost odredit će polje Jedinična cijena u zapisu Pojedinosti narudžbe.
Napomena
Vrijednost u ovom scenariju samo je za čitanje, ali drugi scenariji mogu tražiti od korisnika aplikacije da to promijeni. U tom slučaju upotrijebite kontrolu Unos teksta i postaviti njeno svojstvo Zadano na Cjenik.
Na kartici Početna, postavite poravnanje teksta oznake cjenika na Desno:

Kopirajte i zalijepite oznaku cjenika, a zatim promijenite veličinu i pomaknite kopiju desno od oznake cjenika.
Postavite novo svojstvo oznake Tekst u ovu formulu:
Text( Value(TextInput1.Text) * ComboBox1.Selected.'List Price', "[$-en-US]$ #,###.00" )
Ova kontrola prikazuje ukupnu cijenu na temelju količine koju je naveo korisnik aplikacije i cijene proizvoda koju je odabrao korisnik aplikacije. To je čisto informativno za korisnika aplikacije.
Dvaput kliknite kontrolu unosa teksta za količinu, a zatim upišite broj.
Oznaka cijene Ukupna preračunava se kako bi prikazala novu vrijednost:

Dodavanje ikone Dodaj
Na kartici Umetni, odaberite Ikone > Dodaj:

Ikona se prikazuje u gornjem lijevom kutu zaslona.

Promijenite veličinu ove ikone i pomaknite je na desni rub svijetloplavog područja, a zatim svojstvo OnSelect za ikonu postavite u ovu formulu:
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 )
Općenito, funkcija Naljepak ažurira i stvara zapise, a specifični argumenti u ovoj formuli određuju točne promjene koje će funkcija izvršiti.
Prvi argument navodi izvor podataka (u ovom slučaju tablicu Detalji narudžbe) u kojoj će se funkcija ažurirati ili će se stvoriti zapis.
Drugi argument navodi, da će funkcija stvoriti zapis sa zadanim vrijednostima za tablicu Detalji narudžbe, ako u trećem argumentu nije drugačije navedeno.
Treći argument navodi kako će četiri stupca u novom zapisu sadržavati vrijednosti korisnika.
- Stupac Narudžba sadrži broj narudžbe koju je korisnik odabrao u galeriji narudžbi.
- Stupac Proizvod sadrži ime proizvoda koji je korisnik odabrao u kombiniranom okviru koji prikazuje proizvode.
- Stupac Količina sadrži vrijednost koju je korisnik odredio u okviru za unos teksta.
- Stupac Jedinična cijena sadrži cijenu proizvoda koju je korisnik odabrao za ovu pojedinost narudžbe.
Napomena
Možete izraditi formule koje koriste podatke iz bilo kojeg stupca (u tablici Proizvodi narudžbe) za bilo koji proizvod koji korisnik aplikacije odabere u kombiniranom okviru koji prikazuje proizvode. Kada korisnik odabere zapis u tablici Proizvodi narudžbe, ne samo da se naziv proizvoda prikazuje u tom kombiniranom okviru, već se i jedinična cijena proizvoda prijavljuje na oznaci. Svaka vrijednost pretraživanja u aplikaciji od gotovih gradivnih elemenata odnosi se na čitav zapis, a ne samo na primarni ključ.
Funkcija Osvježi osigurava da tablica Narudžbe odražava zapis koji ste upravo dodali u tablici Detalji narudžbe. Funkcija Vrati zadano briše podatke o proizvodu, količini i jediničnoj cijeni, tako da korisnik može lakše izraditi još jednu pojedinost narudžbe za istu narudžbu.
Pritisnite F5, a zatim odaberite ikonu Dodaj.
Narudžba odražava podatke koje ste naveli:

(izborno) Dodajte narudžbi još jednu stavku.
Pritisnite Esc kako biste zatvorili Pretpregled.
Uklanjanje pojedinosti narudžbe
U sredini zaslona odaberite predložak galerije pojedinosti:

Na kartici Umetni, odaberite Ikone > Otpad:

Ikona Otpad prikazuje se u gornjem lijevom kutu predloška galerije.

Promijenite veličinu ikone Otpad i pomaknite je na desnu stranu predloška galerije pojedinosti, a zatim svojstvo OnSelect za ikonu postavite u ovu formulu:
Remove( 'Order Details', ThisItem ); Refresh( Orders )
Od pisanja ovog članka ne možete ukloniti zapis izravno iz odnosa, pa funkcija Ukloni uklanja zapis izravno iz povezane tablice. Ta stavka određuje zapis koji treba ukloniti, snimljen iz istog zapisa u galeriji pojedinosti u kojoj se prikazuje ikona Otpad.
Operacija koristi predmemorirane podatke, pa funkcija Osvježi obavještava tablicu Narudžbe da je aplikacija promijenila jednu od povezanih tablica.
Pritisnite F5 kako biste otvorili način Pretpregleda, a zatim odaberite ikonu Otpad pokraj svakog zapisa Pojedinosti narudžbe koju želite ukloniti iz narudžbe.
Pokušajte dodati i ukloniti različite pojedinosti iz svoje narudžbe:

Zaključak
Da ponovimo, dodali ste drugu galeriju kako biste prikazali pojedinosti narudžbe i kontrole za dodavanje i uklanjanje pojedinosti narudžbe u aplikaciji. Upotrebljavali ste ove elemente:
- Kontrola druge galerije, povezana s galerijom narudžbi putem odnosa jedan na mnoštvo: Galerija2.Stavke =
Gallery1.Selected.'Order Details' - Odnos „više na jedan” između tablice Detalji narudžbe i Proizvodi narudžbe:
ThisItem.Product.'Product Name'iThisItem.Product.Picture - Funkcija Odabiri za dobivanje popisa proizvoda:
Choices( 'Order Details'.Product' ) - Svojstvo Odabran kombiniranog okvira kao kompletan povezani zapis mnoštvo na jednog:
ComboBox1.Selected.PictureiComboBox1.Selected.'List Price' - Funkcija Naljepak za stvaranje zapisa Pojedinosti narudžbe:
Patch( 'Order Details', Defaults( 'Order Details' ), ... ) - Funkcija Ukloni za brisanje zapisa Pojedinosti narudžbe:
Remove( 'Order Details', ThisItem )
Ovaj niz tema bio je brzi prikaz korištenja Dataverse Odnosi i izbora u aplikaciji radnog područja u obrazovne svrhe. Prije nego što neku aplikaciju pustite u proizvodnju, trebali biste razmotriti provjeru polja, rukovanje pogreškama i mnoge druge čimbenike.