Funkcije povezivanja i poništavanja veze
Primjenjuje se na sljedeće: Aplikacije radnog područja Aplikacije stvorene prema modelu
Povezuje i prekida povezanost zapisa dviju tablica kroz odnos jedan-prema-mnogo ili mnogo-prema-mnogo.
Opis
Funkcija Relate povezuje dva zapisa pomoću odnosa „jedan na više” ili „više na više” u usluzi Microsoft Dataverse. Funkcija Unrelate preokreće ovaj proces i uklanja vezu.
Za odnose jedan-prema-mnogo tablica Mnogo ima polje stranog ključa koje upućuje na zapis tablice Jedan. Relate postavlja ovo polje tako da upućuje na određeni zapis tablice One, dok Unrelate postavlja ovo polje na prazno . Ako je polje već postavljeno pri pozivanju funkcije Relate, postojeća veza nestaje u korist nove veze. Ovo polje možete postaviti i funkcijom Patch ili kontrolom Edit form; ne morate koristiti funkciju Relate.
U slučaju odnosa „više na više”, sustav koji povezuje zapise održava skrivenu tablicu pridruživanja. Ne možete izravno pristupati ovoj tablici pridruživanja; može se očitavati samo putem projekcije „jedan na više” i postavljati funkcijama Relate i Unrelate. Niti jedna povezana tablica nema strani ključ.
Podaci za tablicu koju navedete u prvom argumentu osvježit će se kako bi odražavali promjenu, ali podaci za tablicu koju navedete u drugom argumentu neće se osvježiti. Ti se podatci moraju ručno osvježiti funkcijom Refresh kako bi se prikazali rezultati operacije.
Te funkcije nikada ne stvaraju i ne brišu zapis. One samo povezuju i odvezuju dva zapisa koji već postoje.
Ove funkcije možete koristiti samo u formulama ponašanja.
Napomena
Ove su funkcije dio značajke pretpregleda, a njihovo je ponašanje dostupno samo ako je omogućena značajka Relacijski podatci, skupovi mogućnosti i ostale nove značajke za CDS. Ovo je postavka na razini aplikacije koja je omogućena prema zadanim postavkama za nove aplikacije. Da biste pronašli ovaj prekidač značajki, odaberite Postavke, a zatim odaberite Buduće značajke. Vaše su nam povratne informacije vrlo vrijedne – javite nam što mislite u forumima Power Apps zajednica.
Sintaksa
Relate(Table1RelatedTable,Table2Record )
- Tablica1PovezanaTablica - Obavezno. Za zapis Table1 zapisi tablice Table2 povezani su odnosom jedan-prema-mnogo ili mnogo-prema-mnogo.
- Tablica2Zapis- Obavezno. Zapis Table2 za dodavanje u odnos.
Unrelate( Tablica1PovezanaTablica; Tablica2Zapis )
- Tablica1PovezanaTablica - Obavezno. Za zapis Table1 zapisi tablice Table2 povezani su odnosom jedan-prema-mnogo ili mnogo-prema-mnogo.
- Tablica2Zapis- Obavezno. Zapis Table2 za uklanjanje iz odnosa.
Primjeri
Razmotrite tablicu Proizvodi sa sljedećim odnosima kao što se može vidjeti u Power Apps pregledniku tablica portala:
Zaslonski naziv odnosa | Povezana tablica | Vrsta odnosa |
---|---|---|
Product Reservation | Reservation | Jedan na više |
Kontakt za proizvod ↔ | Kontakt | „Više na više” |
Proizvodi i Rezervacije povezani su putem odnosa Jedan na više. Da biste povezali prvi zapis tablice Rezervacije s prvim zapisom tablice Proizvodi:
Relate( First( Products ).Reservations, First( Reservations ) )
Da biste uklonili odnos između ovih zapisa:
Unrelate( First( Products ).Reservations, First( Reservations ) )
Ni u jednom trenutku nismo stvorili ili uklonili neki zapis, već smo samo izmijenili odnos između zapisa.
Proizvodi i kontakti povezani su putem odnosa "više na više". Da biste povezali prvi zapis tablice Kontakti s prvim zapisom tablice Proizvodi:
Relate( First( Products ).Contacts, First( Contacts ) )
Budući da su odnosi „više na više” simetrični, to bismo mogli učiniti i u suprotnom smjeru:
Relate( First( Contacts ).Products, First( Products ) )
Da biste uklonili odnos između ovih zapisa:
Unrelate( First( Products ).Contacts, First( Contacts ) )
ili:
Unrelate( First( Contacts ).Products, First( Products ) )
Vodič koji slijedi obavlja upravo ove radnje na ovim tablicama pomoću aplikacije s kontrolama Galerija i Kombinirani okvir za odabir uključenih zapisa.
Ovi primjeri ovise o oglednim podatcima instaliranim u vaše okruženje. Izradite probno okruženje uključujući ogledne podatke ili dodajte uzorke podataka u postojeće okruženje.
Jedan na više
Poveži funkciju
Najprije ćete izraditi jednostavnu aplikaciju za pregled i ponovnu dodjelu rezervacija povezanih s nekim proizvodom.
Stvorite aplikaciju za tablet od početka.
Na kartici Prikaz odaberite Izvori podataka.
U oknu Podaci, odaberite Dodaj podatke> odaberite Proizvodi.
Tablica Proizvodi dio je uzorka podataka učitanih gore.Na kartici Umetanje dodajte praznu okomitu kontrolu Gallery.
Osigurajte da naziv kontrole koju ste upravo dodali bude Gallery1, a zatim je pomaknite i promijenite joj veličinu kako biste ispunili lijevu stranu zaslona.
Na kartici Svojstva postavite svojstvo Items za kontrolu Gallery1 na Products, a njen Layout na Image and title.
U kontroli Gallery1 osigurajte da kontrola Label ima naziv Title1, a zatim postavite njeno svojstvo Text na ThisItem.Name.
Odaberite zaslon kako biste izbjegli umetanje sljedeće stavke u Gallery1. Dodajte drugu praznu okomitu kontrolu Gallery i osigurajte da je nazvana Gallery2.
Galerija2 će prikazati rezervacije za bilo koji proizvod koji korisnik odabere u Galeriji1.
Pomaknite i promijenite veličinu kontrole Gallery2 da biste ispunili gornji desni kvadrant zaslona.
(izborno) Dodajte plavu kontrolu Label iznad Gallery2, kao na sljedećoj slici.
U traci za formule postavite svojstvo Items kontrole Gallery2 na Gallery1.Selected.Reservations.
U oknu za svojstva postavite svojstvo Layout kontrole Gallery2 na Title.
U Gallery2 dodajte kontrolu Combo box, osigurajte da je nazvana ComboBox1, a zatim je premjestite i promijenite joj veličinu kako biste izbjegli blokiranje ostalih kontrola u Gallery2.
Na kartici Svojstva postavite svojstvo Items kontrole ComboBox1 na Products.
Pomaknite se prema dolje na kartici Svojstva i postavite svojstvo Dopusti višestruki odabir za kontrolu ComboBox1 na Isključeno.
U traci za formule postavite svojstvo DefaultSelectedItems kontrole ComboBox1 na ThisItem.'Product Reservation'.
U kontroli Gallery2 postavite svojstvo OnSelect za NextArrow2 na ovu formulu:
Relate( ComboBox1.Selected.Reservations, ThisItem )
Kad korisnik odabere ovu ikonu, trenutačna rezervacija mijenja se u proizvod koji je korisnik odabrao u kontroli ComboBox1.
Pritisnite F5 da biste testirali aplikaciju u načinu pretpregleda.
Pomoću ove aplikacije korisnik može premjestiti rezervaciju s jednog proizvoda na drugi. Za rezervaciju na jednom proizvodu, korisnik može odabrati neki drugi proizvod u kontroli ComboBox1, a zatim odabrati NextArrow2 kako bi promijenio tu rezervaciju.
Nepovezana funkcija
U ovom trenutku odnos možete premjestiti iz jednog zapisa u drugi, ali taj odnos ne možete u potpunosti ukloniti. Možete koristiti funkciju Unrelate kako biste prekinuli vezu zapisa rezervacije s bilo kojim proizvodom.
Na kartici Prikaz odaberite Izvori podataka.
U oknu Data odaberite Dodaj izvor podataka>Microsoft Dataverse>Reservations>Poveži.
U kontroli Gallery2 postavite formulu svojstva OnSelect za NextArrow2 na ovu formulu:
If( IsBlank( ComboBox1.Selected ), Unrelate( Gallery1.Selected.Reservations, ThisItem ), Relate( ComboBox1.Selected.Reservations, ThisItem ) ); Refresh( Reservations )
Iskopirajte Gallery2 u međuspremnik tako da ga odaberete, a zatim pritisnete Ctrl-C.
Zalijepite duplikat kontrole Gallery2 na isti zaslon pritiskanjem Ctrl-V, a zatim ga pomaknite u donji desni kvadrant zaslona.
(izborno) Ako ste dodali neku oznaku iznad kontrole Gallery2, ponovite prethodna dva koraka za tu oznaku.
Osigurajte da duplikat kontrole Gallery2 ima naziv Gallery2_1, a zatim postavite njezino svojstvo Items na ovu formulu:
Filter( Reservations, IsBlank( 'Product Reservation' ) )
Prikazuje se upozorenje delegiranja, ali neće biti važno s malom količinom podataka u ovom primjeru.
Ovim promjenama korisnik može očistiti odabir u ComboBox1 za kontakt ako ta osoba nije rezervirala neki proizvod. Kontakti koji nisu rezervirali neki proizvod pojavljuju se u Gallery2_1, pri čemu korisnici mogu dodijeliti svaki kontakt nekom proizvodu.
„Više na više”
Stvaranje odnosa „više na više”
Uzorak podataka ne uključuje odnos mnogo-prema-mnogo, ali stvorit ćete jedan odnos između tablice Proizvodi i tablice Kontakti. Korisnici mogu svaki proizvod povezati s više kontakata, a svaki kontakt s više proizvoda.
Na ovoj stranici odaberite Podaci u lijevoj navigacijskoj traci, a zatim odaberite Tablice.
Promijenite filtar tablice tako da uključuje sve tablice.
Prema zadanim se postavkama uzorci tablica ne pojavljuju.
Pomaknite se prema dolje, otvorite tablicu Proizvod i odaberite Odnosi.
Odaberite Dodaj odnos>Više na više.
Odaberite tablicu Kontakt za odnos.
Odaberite Gotovo>Spremi tablicu.
Povezivanje i odvezivanje kontakata s jednim ili više proizvoda
Stvorit ćete drugu aplikaciju koja nalikuje onoj koju ste stvorili ranije u ovoj temi, ali nova će aplikacija ponuditi odnos „više na više”. Svaki će kontakt moći rezervirati više proizvoda umjesto samo jednog.
U praznoj aplikaciji za tablete stvorite kontrolu Gallery1 kako opisuje prvi postupak u ovoj temi.
Dodajte još jednu praznu okomitu kontrolu Gallery, osigurajte da ima naziv Gallery2, a zatim je premjestite u gornji desni kut zaslona.
Kasnije u ovoj temi dodat ćete kontrolu Combo box pod Gallery2.
U traci za formule postavite svojstvo Items kontrole Gallery2 na Gallery1.Selected.Contacts.
Na kartici Svojstva postavite Layout na Image and title.
U kontroli Gallery2 osigurajte da kontrola Label ima naziv Title2, a zatim postavite njeno svojstvo Text na ThisItem.'FullName'.
Na toj se kontroli neće pojaviti nikakav tekst dok ne završite ovaj postupak i ne dodijelite neki kontakt nekom proizvodu.
Izbrišite NextArrow2, umetnite ikonu Odustani i osigurajte da ima naziv icon1.
Postavite svojstvo OnSelect ikone Odustani na ovu formulu:
Unrelate( Gallery1.Selected.Contacts, ThisItem )
Na kartici Prikaz odaberite Izvori podataka.
U oknu Data odaberite Dodaj izvor podataka>Microsoft Dataverse>Contacts>Poveži.
Pod Gallery2 dodajte kontrolu Combo box, osigurajte da ima naziv ComboBox1, a zatim postavite njezino svojstvo Items na Contacts.
Na kartici Svojstva postavite Dopusti višestruki odabir na Isključeno.
Umetnite ikonu Dodaj i postavite njezino svojstvo OnSelect na ovu formulu:
Relate( Gallery1.Selected.Contacts, ComboBox1.Selected )
Pomoću ove aplikacije korisnici sada mogu slobodno povezati i odvezati skup kontakata sa svakim proizvodom.
Da biste nekom proizvodu dodali kontakt, odaberite taj kontakt u kombiniranom okviru na dnu zaslona i zatim odaberite ikonu Dodaj.
Da biste uklonili neki kontakt iz proizvoda, odaberite ikonu Odustani za taj kontakt.
Za razliku od odnosa „jedan na više”, odnos „više na više” omogućuje korisnicima da isti kontakt povežu s više proizvoda.
Obrnuto: povezivanje i odvezivanjeproizvoda s više kontakata
Odnosi „više na više” su simetrični. Možete proširiti primjer da biste proizvodima dodali neki kontakt, a zatim se prebacili između dva zaslona da biste pokazali kako odnos izgleda iz oba smjera.
Postavite svojstvo OnVisible za Screen1 na Refresh( Products ).
Kada ažurirate odnos jedan-prema-mnogo ili mnogo-prema-mnogo, samo se podaci prve tablice argumenata poziva Relate ili Unrelate osvježavaju. Drugi se mora osvježiti ručno želite li prelaziti između zaslona ove aplikacije.
Duplicirajte Screen1.
Duplikat će biti nazvan Screen1_1 i činit će temelj za gledanje odnosa sa strane kontakata.
Da biste stvorili obrnuti prikaz, promijenite ove formule na kontrolama za Screen1_1:
- Screen1_1.OnVisible =
Refresh( Contacts )
- Gallery1_1.Items =
Contacts
- Title1_1.Text =
ThisItem.'Full Name'
- Label1_1.Text =
"Selected Contact Products"
- Gallery2_1.Items =
Gallery1_1.Selected.Products
- Title2_1.Text =
ThisItem.Name
- Icon1_1.OnSelect =
Unrelate( Gallery1_1.Selected.Products, ThisItem )
- ComboBox1_1.Items =
Products
- Icon2_1.OnSelect =
Relate( Gallery1_1.Selected.Products, ComboBox1_1.Selected )
Rezultat će izgledati vrlo slično prethodnom zaslonu, ali dolazi od odnosa sa strane Contacts.
- Screen1_1.OnVisible =
Umetnice ikonu Strelice gore dolje i postavite njeno svojstvo OnSelect na Navigate( Screen1, None ). Učinite to isto na Screen1 s formulom Navigate( Screen1_1, None ).
S ovim novim zaslonom, korisnici mogu dodati kontakt nekom proizvodu, a zatim okrenuti prikaz kontakata i vidjeti pridruženi proizvod. Odnosi su simetrični i dijele se između dva zaslona.