Share via


Funkciji Relate in Unrelate

Velja za: Aplikacije Canvas Aplikacije, ki temeljijo na modelu

Povezava in odstranjevanje povezave zapisov dveh tabel z odnosom »eden proti mnogo« ali »mnogo proti mnogo«.

Opis

Funkcija Relate poveže dva zapisa z odnosom »ena proti mnogo« ali »mnogo proti mnogo« v aplikaciji Microsoft Dataverse. Funkcija Unrelate razveljavi postopek in odstrani povezavo.

Za odnose »ena proti mnogo« ima tabela Mnogo polje s tujim ključem, ki vodi do zapisa tabele Ena. Funkcija Relate nastavi to polje tako, da vodi do določenega zapisa tabele »One«, medtem ko funkcija Unrelate to polje nastavi na prazno. Če je polje že nastavljeno, ko je priklicana funkcija Relate, se obstoječa povezava izgubi v korist nove povezave. To polje lahko nastavite tudi z uporabo funkcije Patch ali kontrolnika Edit form; ni vam treba uporabiti funkcije Relate.

Pri odnosih »mnogo proti mnogo« sistem, ki povezuje zapise, hrani skrito tabelo združevanja. Do te tabele združevanja ne morete dostopati neposredno; preberete jo lahko le prek projekcije odnosa »ena proti mnogo« in jo nastavite prek funkcij Relate in Unrelate. Nobena povezana tabela nima tujega ključa.

Podatki za tabelo, ki jo navedete v prvem argumentu, bodo osveženi tako, da bodo odražali spremembo, medtem ko podatki za tabelo, ki jo navedete v drugem argumentu, ne bodo osveženi. Te podatke morate ročno osvežiti s funkcijo Refresh, da prikažete rezultat operacije.

Funkciji nikoli ne ustvarita ali izbrišeta zapisa, ampak zgolj povežeta dva zapisa, ki že obstajata, oziroma odstranita povezavo med njima.

Funkciji lahko uporabljate samo v formulah za delovanje.

opomba,

Funkciji sta del predogleda in njuno delovanje je na voljo le, če je omogočena funkcija Relacijski podatki, nabori možnosti in druge nove funkcije za CDS. To je nastavitev na ravni aplikacije, ki je privzeto omogočena za nove aplikacije. Če želite najti to preklopno stikalo funkcije, izberite Nastavitve in nato izberite Prihajajoče funkcije. Vaše povratne informacije so za nas zelo dragocene – pošljite nam svoje mnenje v forumih skupnosti za Power Apps.

Sintaksa

Relate( Table1RelatedTable, Table2Record )

  • Table1RelatedTable – obvezno. Za zapis Table1, so zapisi v Table2 povezani z odnosom »ena proti mnogo« ali »mnogo proti mnogo«.
  • Table2Record – obvezno. Zapis Tabela2, ki ga želite dodati v odnos.

Unrelate( Table1RelatedTable, Table2Record )

  • Table1RelatedTable – obvezno. Za zapis Table1, so zapisi v Table2 povezani z odnosom »ena proti mnogo« ali »mnogo proti mnogo«.
  • Table2Record – obvezno. Zapis Tabela2, ki ga želite odstraniti iz odnosa.

Primeri

Razmislite o tabeli Izdelki z naslednjimi odnosi, kot je vidno v pregledovalniku tabel portala Power Apps:

Prikazno ime odnosa Povezana tabela Vrsta odnosa
Rezervacija izdelka Rezervacija Ena proti mnogo
Izdelek ↔ Stik stik, Mnogo proti mnogo

Entiteti Izdelki in Rezervacije sta povezani prek odnosa »ena proti mnogo«. Za povezavo s prvim zapisom tabele Rezervacije s prvim zapisom tabele Izdelki:

Relate( First( Products ).Reservations, First( Reservations ) )

Če želite odstraniti odnos med zapisoma:

Unrelate( First( Products ).Reservations, First( Reservations ) )

Zapis ni nikoli ustvarjen ali odstranjen, spremeni se samo odnos med zapisi.

Entiteti Izdelki in Stiki sta povezani prek odnosa »mnogo proti mnogo«. Za povezavo s prvim zapisom tabele Stiki s prvim zapisom tabele Izdelki:

Relate( First( Products ).Contacts, First( Contacts ) )

Ker so odnosi »mnogo proti mnogo« simetrični, bi to lahko storili tudi v obratni smeri:

Relate( First( Contacts ).Products, First( Products ) )

Če želite odstraniti odnos med zapisoma:

Unrelate( First( Products ).Contacts, First( Contacts ) )

ali:

Unrelate( First( Contacts ).Products, First( Products ) )

Naslednja predstavitev opisuje točno te postopke na teh tabelah z aplikacijo s kontrolnikoma Galerija in Kombinirano polje za izbiro zadevnih zapisov.

Ti primeri so odvisni od vzorčnih podatkov, ki so nameščeni v vašem okolju. Bodisi ustvarite poskusno okolje, vključno z vzorčnimi podatki ali dodajte vzorčne podatke v obstoječe okolje.

Ena proti mnogo

Funkcija Relate

Najprej boste ustvarili enostavno aplikacijo za prikaz in vnovično dodelitev rezervacij, ki so povezane z izdelkom.

  1. Ustvarite aplikacijo za tablični računalnik od začetka.

  2. Na zavihku Pogled izberite Viri podatkov.

  3. V podoknu Podatki izberite možnost Dodaj podatke>Izdelki.
    Tabela Izdelki je del zgoraj naloženih vzorčnih podatkov.

  4. Na zavihku Vstavljanje dodajte prazen navpični kontrolnik Gallery.

  5. Prepričajte se, da je kontrolnik, ki ste ga pravkar dodali, poimenovan Gallery1, nato pa ga premaknite in spremenite njegovo velikost, da zapolni levo stran zaslona.

  6. Na zavihku Lastnosti nastavite lastnost Items kontrolnika Gallery1 na Izdelki, lastnost Layout pa na Slika in naslov.

    Konfiguracija kontrolnika ProductsGallery.

  7. Pri kontrolniku Gallery1 se prepričajte, da je kontrolnik Label poimenovan Title1, in nato nastavite njegovo lastnost Besedilo na ThisItem.Name.

    Konfiguracija oznake v kontrolniku »Gallery1«.

  8. Izberite zaslon, da se izognete vstavljanju naslednjega elementa v kontrolnik Gallery1. Dodajte nov prazen navpični kontrolnik Gallery in se prepričajte, da je poimenovan Gallery2.

    Gallery2 prikaže rezervacije za izdelek, ki ga uporabnik izbere v kontrolniku Gallery1.

  9. Premaknite in spremenite velikost kontrolnika Gallery2, da zapolnite zgornji desni kvadrant zaslona.

  10. (neobvezno) Dodajte modri kontrolnik Label nad kontrolnikom Gallery2, kot prikazuje spodnja slika.

  11. V vnosni vrstici nastavite lastnost Items kontrolnika Gallery2 na Gallery1.Selected.Reservations.

    Konfiguracija lastnosti »Items« v kontrolniku »Gallery2«.

  12. V podoknu z lastnostmi nastavite lastnost Layout kontrolnika Gallery2 na Naslov.

    Konfiguracija lastnosti »Layout« v kontrolniku »Gallery2«.

  13. V kontrolniku Gallery2 dodajte kontrolnik Combo box in se prepričajte, da je poimenovan ComboBox1, nato pa ga premaknite in spremenite njegovo velikost, da preprečite blokiranje drugih kontrolnikov v kontrolniku Gallery2.

  14. Na zavihku Lastnosti nastavite lastnost Items kontrolnika ComboBox1 na Izdelki.

    Nastavitev lastnosti »Items« na »Izdelki«.

  15. Pomaknite se navzdol na zavihku Lastnosti in nastavite lastnost Allow multiple selection kontrolnika ComboBox1 na Izklopljeno.

    Nastavitev lastnosti »Allow multiple selection« na »Izklopljeno«.

  16. V vnosni vrstici nastavite lastnost DefaultSelectedItems kontrolnika ComboBox1 na ThisItem.'Product Reservation'.

    Nastavitev lastnosti »DefaultSelectedItems« za ReserveCombo.

  17. V kontrolniku Gallery2 nastavite lastnost OnSelect kontrolnika NextArrow2 na to formulo:

    Relate( ComboBox1.Selected.Reservations, ThisItem )
    

    Ko uporabnik izbere to ikono, se trenutna rezervacija spremeni v izdelek, ki ga je uporabnik izbral v kontrolniku ComboBox1.

    Konfiguracija kontrolnika NextArrow2.

  18. Pritisnite F5, da preskusite aplikacijo v načinu predogleda.

S to aplikacijo lahko uporabnik premika rezervacijo iz enega izdelka v drugega. Za rezervacijo za en izdelek lahko uporabnik izbere drug izdelek v kontrolnikuComboBox1, nato pa izbere NextArrow2 in spremeni to rezervacijo.

Prikaz funkcije »Relate« v aplikaciji z odnosom »ena proti mnogo«.

Funkcija Unrelate

Na tej točki lahko odnos premaknete iz enega zapisa v drugega, vendar razmerja ne morete odstraniti v celoti. Lahko uporabite funkcijo Unrelate in odstranite povezavo z zapisom rezervacije iz kateregakoli izdelka.

  1. Na zavihku Pogled izberite Viri podatkov.

  2. V podoknu Podatki izberite Dodaj vir podatkov>Microsoft Dataverse>Rezervacije>Poveži.

  3. V kontrolniku Gallery2 nastavite to formulo OnSelect za NextArrow2:

    If( IsBlank( ComboBox1.Selected ),
        Unrelate( Gallery1.Selected.Reservations, ThisItem ),
        Relate( ComboBox1.Selected.Reservations, ThisItem )
    );
    Refresh( Reservations )
    

    Konfiguracija ikone za desno.

  4. Kopirajte kontrolnik Gallery2 v odložišče, tako da ga izberete in nato pritisnete Ctrl in C.

  5. Prilepite dvojnik kontrolnika Gallery2 na isti zaslon tako, da pritisnete Ctrl in V, nato pa ga premaknite v spodnji desni kvadrant zaslona.

  6. (neobvezno) Če ste dodali oznako nad kontrolnik Gallery2, ponovite prejšnja dva koraka za to oznako.

  7. Prepričajte se, da je dvojnik kontrolnika Gallery2 poimenovan Gallery2_1, in nato nastavite njegovo lastnost Items na to formulo:

    Filter( Reservations, IsBlank( 'Product Reservation' ) )
    

    Prikaže se opozorilo o posredovanju, vendar to ni pomembno zaradi majhne količine podatkov v tem primeru.

    Nastavitev lastnosti »Items« v kontrolniku »Gallery2_1«.

S temi spremembami lahko uporabniki počistijo izbiro v kontrolniku ComboBox1 za stik, če ta oseba ni rezervirala izdelka. Stiki, ki niso rezervirali izdelka, so prikazani v kontrolniku Gallery2_1, kjer lahko uporabniki dodelijo vsak stik izdelku.

Prikaz funkcij »Relate« in »Unrelate« v aplikaciji z odnosom »ena proti mnogo«.

Mnogo proti mnogo

Ustvarjanje odnosa »mnogo proti mnogo«

Vzorčni podatki ne vključujejo odnosa »mnogo proti mnogo««, vendar ga boste ustvarili med tabelo Izdelki in tabelo Stiki. Uporabniki lahko vsak izdelek povežejo z več stiki in vsak stik z več izdelki.

  1. Na tej strani, v levi vrstici za krmarjenje izberite zavihek Podatki in nato Tabele.

    Odpiranje seznama tabel.

  2. Spremenite filter tabel, da bo vključeval vse tabele.

    Privzeto se vzorčne tabele ne prikažejo.

    Odstranjevanje tega filtra.

  3. Pomaknite se navzdol in odprite tabelo Izdelek in izberite možnost Odnosi.

  4. Izberite Dodaj odnos>Mnogo proti mnogo.

  5. Izberite tabelo Stik za odnos.

  6. Izberite možnost Končano>Shrani tabelo.

Povezovanje stikov z enim ali več izdelki in odstranjevanje povezav

Ustvarili boste novo aplikacijo, ki bo podobna tisti, ki ste jo že ustvarili v tej temi, vendar bo nova aplikacija ponudila odnos »mnogo proti mnogo«. Vsak stik bo lahko rezerviral več izdelkov in ne zgolj enega.

  1. V prazni aplikaciji za tablične računalnike ustvarite kontrolnik Gallery1, kot je opisano v prvem postopku v tej temi.

  2. Dodajte nov prazen navpični kontrolnik Gallery, prepričajte se, da je poimenovan Gallery2, nato pa ga premaknite v zgornji desni kot zaslona.

    V nadaljevanju te teme boste dodali kontrolnik Combo box pod kontrolnik Gallery2.

  3. V vnosni vrstici nastavite lastnost Items kontrolnika Gallery2 na Gallery1.Selected.Contacts.

    Konfigurirajte lastnost predmeta ContactsGallery.

  4. Na zavihku Lastnosti nastavite lastnost Layout na Slika in naslov.

    Konfigurirajte postavitev ContactsGallery.

  5. Pri kontrolniku Gallery2 se prepričajte, da je kontrolnik Label poimenovan Title2, in nato nastavite njegovo lastnost Besedilo na ThisItem.'Full Name'.

    V tem kontrolniku se ne prikaže nobeno besedilo, dokler ne dokončate tega postopka in dodelite stika izdelku.

    Prikaz imena stika.

  6. Izbrišite NextArrow2, vstavite ikono Prekliči in se prepričajte, da je poimenovana icon1.

  7. Nastavite lastnost OnSelect ikone Prekliči na to formulo:

    Unrelate( Gallery1.Selected.Contacts, ThisItem )
    

    Konfiguracija ikone za preklic.

  8. Na zavihku Pogled izberite Viri podatkov.

  9. V podoknu Podatki izberite Dodaj vir podatkov>Microsoft Dataverse>Stiki>Poveži.

  10. Pod Gallery2 dodajte kontrolnik Combo box, prepričajte se, da je poimenovan ComboBox1, in nato nastavite njegovo lastnost Items na Stiki.

    Konfiguracija lastnosti »Items« kombiniranega polja.

  11. Na zavihku Lastnosti nastavite lastnost Allow multiple selection na Izklopljeno.

    Konfiguracija lastnosti »Layout« kombiniranega polja.

  12. Vstavite ikono Dodaj in nastavite njeno lastnost OnSelect na to formulo:

    Relate( Gallery1.Selected.Contacts, ComboBox1.Selected )
    

    Konfiguracija ikone za dodajanje.

S to aplikacijo lahko uporabniki zdaj prosto povežejo nabor stikov s posameznim izdelkom in odstranijo te povezave.

  • Če želite dodati stik v izdelek, izberite stik v kombiniranem polju na dnu zaslona in nato še ikono Dodaj.

  • Če želite odstraniti stik iz izdelka, izberite ikono Prekliči za ta stik.

    Za razliko od odnosa »ena proti mnogo«, odnos »mnogo proti mnogo« omogoča uporabnikom, da povežejo isti stik z več izdelki.

Prikaz funkcij »Relate« in »Unrelate« v aplikaciji z odnosom »mnogo proti mnogo«.

Obratna smer: povezovanje izdelkov z več stiki in odstranjevanje povezav

Odnosi »mnogo proti mnogo« so simetrični. Primer lahko razširite tako, da dodate izdelke v stik in nato preklopite med zaslonoma, da pokažete, kako je odnos prikazan iz obeh smeri.

  1. Nastavite lastnost OnVisible kontrolnika Screen1 na Osveži (izdelki).

    Ko posodobite odnos »eden proti mnogo« na »mnogo proti mnogo«, se osvežijo samo podatki iz prve tabele argumentov klica Relate ali Unrelate. Drugega morate osvežiti ročno, če želite preklopiti med zasloni te aplikacije.

    Nastavitev lastnosti »OnVisible« na funkcijo »Refresh«.

  2. Podvojite kontrolnik Screen1.

    Dvojnik bo poimenovan Screen1_1 in bo osnova za prikaz odnosov s strani stikov.

    Podvajanje zaslona.

  3. Če želite ustvariti obratni pogled, spremenite te formule v kontrolnikih možnosti 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 bo zelo podoben prejšnjemu zaslonu, vendar je odnos na strani entitete Stiki.

    Prikaz odnosa »mnogo proti mnogo«, ki se začne s stiki.

  4. Vstavite ikono Puščici gor in dol in nastavite njeno lastnost OnSelect na Navigate( Screen1, None ). Naredite isto za Screen1 s formulo Navigate( Screen1_1, None ).

    Dodajanje krmarjenja med zasloni.

S tem novim zaslonom lahko uporabniki dodajo stik v izdelek in nato preklopijo v pogled stikov ter si ogledajo povezani izdelek. Odnosi so simetrični in v skupni rabi med obema zaslonoma.

Prikaz odnosa »mnogo proti mnogo« z obeh strani.