Relate és Unconnect függvények

A következőkre vonatkozik: Vászonalapú alkalmazások Modellvezérelt alkalmazások

Két tábla rekordjainak egymás közötti vagy sok-sok kapcsolaton keresztül történő összekapcsolása és leválasztása.

Ismertetés

A Relate függvény összekapcsol két rekordot egy-a-többhöz vagy több-a-többhöz kapcsolaton keresztül a Microsoft Dataverse-szolgáltatásban. Az Unrelate függvény megfordítja a folyamatot, és eltávolítja az összekapcsolást.

Az egy-a-sokhoz kapcsolat esetén a Sok tábla rendelkezik egy idegen kulcsú mezővel, amely az Egy tábla egy rekordjára mutat. A Relate úgy állítja be ezt a mezőt, hogy az Egy tábla egy adott rekordjára mutasson, míg a Unrelateüresre állítja ezt a mezőt. Ha a Relate meghívásakor a mező már be van állítva , a meglévő kapcsolat elvész az új kapcsolat érdekében. Ezt a mezőt a Patch függvénnyel vagy az Űrlap szerkesztése vezérlő segítségével is beállíthatja; nem kell használnia a Relate függvényt.

Sok-a-sokhoz kapcsolatok esetén a bejegyzéseket összekapcsoló rendszer rejtett egyesítési táblát tart fenn. Ez az egyesítési tábla nem érhető el közvetlenül; csak egy-a-sokhoz vetítési leképezéssel olvasható, és a Relate és Unrelate függvényekkel állítható be. Egyik kapcsolódó tábla sem rendelkezik idegen kulccsal.

Az első argumentumban megadott táblázat adatai frissülnek a változásnak megfelelően, de a második argumentumban megadott táblázat adatai nem. A művelet eredményének megjelenítéséhez a Refresh függvénnyel kézzel kell frissíteni az adatokat.

Ezek a függvények soha nem hoznak létre és nem törölnek rekordot. Csak két, már létező bejegyzéssel kapcsolnak össze vagy szüntetik meg a kapcsolatukat.

Ezek a függvények csak viselkedésszabályozó képletekben használható.

Feljegyzés

Ezek a függvények egy előzetes funkció részét képezik, és működésük csak akkor érhető el, ha a Relációs adatok, értékkészletek és a CDS más funkciói engedélyezve vannak. Ez egy alkalmazás szintű beállítás, amely alapértelmezés szerint engedélyezve van az új alkalmazásokhoz. A funkció megkereséséhez válassza a Beállítások parancsot, majd válassza a Hamarosan megjelenő funkciók lehetőséget. Az Ön visszajelzései nagyon fontosak számunkra – kérjük, ossza meg velünk véleményét a Power Apps közösség fórumain.

Szintaxis

Relate( Table1RelatedTable, Table2Record )

  • Table1RelatedTable – Kötelező. A Table1 rekordjához a Table2 rekordjai egy-a-sokhoz vagy sok-a-sokhoz kapcsolaton keresztül kapcsolódnak.
  • Table2Record – Kötelező. A kapcsolathoz hozzáadandó Table2 rekord.

Unrelate( Table1RelatedTable, Table2Record )

  • Table1RelatedTable – Kötelező. A Table1 rekordjához a Table2 rekordjai egy-a-sokhoz vagy sok-a-sokhoz kapcsolaton keresztül kapcsolódnak.
  • Table2Record – Kötelező. A kapcsolatból eltávolítandó Table2 rekord.

Példák

Nézzünk meg egy Termékek táblázatot a következő kapcsolatokkal, ahogyan az a Power Apps portál táblázatnézőben látható:

Kapcsolat megjelenítendő neve Kapcsolódó tábla Kapcsolat típusa
Termékfoglalás Foglalás Egy a sokhoz
Termékek ↔ Kapcsolattartók Kapcsolat Több-a-többhöz

A Termékek és a Foglalások egy egy-a-többhöz kapcsolaton keresztül kapcsolódnak. A Foglalások táblázat első rekordjának összekapcsolása a Termékek táblázat első rekordjával:

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

A rekordok közötti kapcsolat eltávolításához:

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

Semmikor nem hozunk létre, illetve nem távolítunk el egy rekordot, csak a rekordok közötti kapcsolat módosult.

A Termékek és a Kapcsolattartók Sok-a-sokhoz kapcsolaton keresztül kapcsolódnak. A Kapcsolatok táblázat első rekordjának összekapcsolása a Termékek táblázat első rekordjával:

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

Mivel a sok-a-sokhoz kapcsolatok szimmetrikusak, ezt az ellenkező irányba is elvégezheti:

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

A rekordok közötti kapcsolat eltávolításához:

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

vagy:

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

Az alábbiakban bemutatott út pontosan ezeket a műveleteket végzi el a táblázatokon egy Galéria és Kombinált mező vezérlővel rendelkező alkalmazás segítségével, amely az érintett rekordok kiválasztására szolgál.

Ezek a példák a környezetre telepített mintaadatoktől függenek. Hozzon létre egy mintaadatokat tartalmazó próbakörnyezetet, vagy adjon hozzá mintaadatokat egy meglévő környezethez.

Egy a sokhoz

Relate függvény

Először hozzon létre egy egyszerű alkalmazást, amellyel megtekintheti és újra hozzárendelheti a termékhez kapcsolódó foglalásokat.

  1. Hozzon létre egy üres táblagépes alkalmazást.

  2. A Nézet lapon válassza az Adatforrások lehetőséget.

  3. Az Adatok ablaktáblán válassza az Adatok hozzáadása>Termékek lehetőséget.
    A Termékek táblázat a fent betöltött mintaadatok része.

  4. A Beszúrás lapon adjon hozzá üres függőleges Katalógus vezérlőt.

  5. Ügyeljen arra, hogy az imént felvett vezérlő neve Gallery1 legyen, majd helyezze át, és méretezze át, hogy kitöltse a képernyő bal oldalát.

  6. A Tulajdonságok lapon állítsa be a Gallery1Elemek tulajdonságát Termékek értékre, illetve az Elrendezés tulajdonságát Kép és cím értékre.

    A ProductsGallery konfigurálása.

  7. A Gallery1 alatt ellenőrizze, hogy a Címke vezérlő neve Title1 legyen, majd állítsa a Szöveg tulajdonságát ThisItem.Namere értékre.

    A címke konfigurálása a Gallery1 helyen.

  8. Válassza ki a képernyőt, hogy ne szúrja be a következő elemet a Gallery1 alá. Vegyen fel egy második üres függőleges Katalógus vezérlőt, és ellenőrizze, hogy a neve Gallery2 legyen.

    A Gallery2 megmutatja a felhasználó által a Gallery1 helyen kiválasztott termékre vonatkozó foglalásokat.

  9. A Gallery2 áthelyezésével és átméretezésével töltse ki a képernyő jobb felső negyedét.

  10. (opcionális) Adja hozzá a kék Címke vezérlőt a Gallery2 fölé, ahogy azt a következő ábra mutatja.

  11. A szerkesztőlécen állítsa be a Gallery2Elemek tulajdonságát Gallery1.Selected.Reservations értékre.

    Gallery2 elemeinek konfigurálása.

  12. A Tulajdonságok ablaktáblában állítsa be a Gallery2ElrendezésétCím értékre.

    Gallery2 elrendezésének konfigurálása.

  13. A Gallery2 alatt adja hozzá a Kombinált lista vezérlőt, győződjön meg róla, hogy annak neve ComboBox1, majd helyezze át és méretezze át, hogy elkerülje a Gallery2 többi vezérlőjének blokkolását.

  14. A Tulajdonságok lapon állítsa be a ComboBox1Elemek tulajdonságát a Termékek értékre.

    Elemek tulajdonságainak beállítása Termékek értékre.

  15. Görgessen lefelé a Tulajdonságok fülön, és állítsa be a ComboBox1Többszörös kijelölés engedélyezése tulajdonságát Ki értékre.

    Többszörös kiválasztás engedélyezésének beállítása Ki értékre.

  16. A szerkesztőlécen állítsa be a ComboBox1DefaultSelectedItems tulajdonságát a ThisItem.'Product Reservation' értékre.

    DefaultSelectedItems beállítása a ReserveCombo elemhez.

  17. A Gallery2 alatt állítsa be a NextArrow2OnSelect tulajdonságát erre a képletre:

    Relate( ComboBox1.Selected.Reservations, ThisItem )
    

    Amikor a felhasználó kiválasztja ezt az ikont, az aktuális foglalás a felhasználó által a ComboBox1 listában kiválasztott termékre módosul.

    A NextArrow2 konfigurálása.

  18. Az alkalmazás előnézeti módban történő teszteléséhez nyomja meg az F5 funkcióbillentyűt.

Ezzel az alkalmazással a felhasználó áthelyezheti a foglalást az egyik termékről a másikra. Az egyik termékre vonatkozó foglalás esetén a felhasználó kiválaszthat egy másik terméket a ComboBox1 listában, majd a NextArrow2 kiválasztásával módosíthatja a foglalást.

A Relate függvény bemutatása a egy-a-sokhoz alkalmazásban.

Unrelate függvény

Ezen a ponton a kapcsolatot áthelyezheti egyik rekordból a másikba, de a kapcsolatot nem távolíthatja el teljesen. Az Unrelate függvénnyel leválaszthat bármilyen termékhez tartozó foglalási rekordot.

  1. A Nézet lapon válassza az Adatforrások lehetőséget.

  2. Az Adatok panelen válassza az Adatforrás hozzáadása>Microsoft Dataverse>Foglalások>Kapcsolódás lehetőséget.

  3. A Gallery2 alatt állítsa be a NextArrow2OnSelect képletét erre a képletre:

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

    A Jobb ikon konfigurálása.

  4. A Ctrl+C billentyűkombinációt lenyomásával másolja a Gallery2 katalógust a vágólapra.

  5. A Ctrl-V billentyűkombináció lenyomásával ugyanabba ugyanarra a képernyőre illessze be a Gallery2 katalógust, majd helyezze azt a képernyő jobb alsó negyedébe.

  6. (opcionális) Ha a Gallery2 fölé címkét is hozzáadott, akkor ismételje meg az előző két lépést az adott címkére vonatkozóan.

  7. Győződjön meg arról, hogy a Gallery2 másolatának neve Gallery2_1, majd a következő képletre állítja be a Cikkek tulajdonságát:

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

    Egy delegálási figyelmeztetés jelenik meg, de ez nem számít a példában szereplő kis mennyiségű adat esetében.

    A Gallery2_1 Elemek tulajdonságának beállítása.

Ezekkel a módosításokkal a felhasználók törölhetik a kiválasztást ComboBox1 listából egy kapcsolattartóhoz, ha az adott személy nem foglalt el egy terméket. Azok a kapcsolattartók, akik még nem foglaltak le egy terméket, a Gallery2_1 katalógusban jelennek ahol felhasználók az egyes kapcsolattartókat egy termékhez rendelhetik.

A Relate és Unrelate függvény bemutatása a egy-a-sokhoz alkalmazásban.

Több-a-többhöz

Új sok-a-sokhoz kapcsolat létrehozása

A mintaadatok nem tartalmaznak több-a-többhöz kapcsolatokat, de a Termékek táblázat és a Kapcsolatok táblázat között létrehozhat egyet. A felhasználók egy termékhez terméket több kapcsolattartóhoz és társíthatnak, illetve az egyes kapcsolattartókat több termékhez is társíthatják.

  1. Ezen az oldalon válassza a bal oldali navigációs sávban az Adatok, majd a Táblázatok lehetőséget.

    A táblázat listájának megnyitása.

  2. Módosítsa a táblázatszűrőt úgy, hogy az összes táblázat megjelenjen.

    Alapértelmezés szerint a sablontáblázatok nem jelennek meg.

    A táblázatok szűrő eltávolítása.

  3. Görgessen lefelé, nyissa meg a Termék táblázatot, és válassza a Kapcsolatok lehetőséget.

  4. Válassz a Kapcsolat hozzáadása>Sok-a-sokhoz lehetőséget.

  5. Válassza ki a Kapcsolat táblázatot a kapcsolathoz.

  6. Válassza a Kész>Táblázat mentése lehetőséget.

Kapcsolattartók társítása vagy társításuk megszüntetése egy vagy több termék esetében

Egy másik alkalmazást hoz létre, amely hasonlít a témakörben korábban létrehozotthoz de az új alkalmazás sok-a-sokhoz kapcsolatot biztosít. Minden kapcsolattartó egy helyett tud több terméket foglalni.

  1. Egy üres táblagépes alkalmazásban, hozza létre a Gallery1 katalógust a témakör első eljárásnak megfelelően.

  2. Adjon hozzá egy másik üres függőleges Katalógus vezérlőt, ellenőrizze, hogy a neve Gallery2 legyen, majd helyezze a képernyő jobb felső sarkába.

    A témakör későbbi részében egy Kombinált lista vezérlőt ad hozzá a Gallery2 alá.

  3. A szerkesztőlécen állítsa be a Gallery2Elemek tulajdonságát Gallery1.Selected.Contacts értékre.

    ContactsGallery konfigurálása – Elemek tulajdonság.

  4. A Tulajdonságok lapon állítsa be az ElrendezéstKép és cím értékre.

    ContactsGallery konfigurálása – Elrendezés.

  5. A Gallery2 alatt ellenőrizze, hogy a Címke vezérlő neve Title2 legyen, majd állítsa a Szöveg tulajdonságát ThisItem.'Full Name' értékre.

    A vezérlőelemben csak akkor jelenik meg szöveg, ha befejezte ezt az eljárást, és egy kapcsolattartót rendel hozzá egy termékhez.

    Kapcsolattartó nevének megjelenítése.

  6. Törölje az NextArrow2 elemet, szúrjon be egy Mégse ikont, és gondoskodjon róla, hogy a neve icon1 legyen.

  7. A Mégse ikon OnSelect tulajdonságát állítsa a következő képletre:

    Unrelate( Gallery1.Selected.Contacts, ThisItem )
    

    A Mégse ikon beállítása.

  8. A Nézet lapon válassza az Adatforrások lehetőséget.

  9. Az Adatok panelen válassza az Adatforrás hozzáadása>Microsoft Dataverse>Kapcsolattartók>Kapcsolódás lehetőséget.

  10. A Gallery2 alatt adjon hozzá egy Kombinált lista vezérlőjét, a neve legyen ComboBox1, majd állítsa be az Elemek tulajdonságát a Kapcsolattartók értékre.

    A kombinált lista Elemek tulajdonságának konfigurálása.

  11. A Tulajdonságok lapon állítsa be a Többszörös kijelölés engedélyezése beállítást Ki értékre.

    A kombinált lista Elrendezés tulajdonságának konfigurálása.

  12. Szúrjon be egy Hozzáadás ikont, és az OnSelect tulajdonság értékeként adja meg ezt a képletet:

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

    Hozzáadás ikon konfigurálása.

Ezzel az alkalmazással a felhasználók most szabadon rendelhetik hozzá kapcsolatartók halmazát az egyes termékekhez.

  • Ha egy kapcsolattartót szeretne hozzáadni egy termékhez, akkor jelölje ki a kapcsolattartót a képernyő alján található kombinált listában, majd válassza a Hozzáadás ikont.

  • Ha egy kapcsolattartót el szeretne távolítani egy termékből, akkor válassza az adott kapcsolattartóhoz tartozó Mégse ikont.

    Az egy-a-sokhoz, sok-a-sokhoz kapcsolattal ellentétben a felhasználók több termékhez is társítják ugyanazt a kapcsolattartót.

A Relate és Unrelate függvény bemutatása a sok-a-sokhoz alkalmazásban.

Fordított: termékeket hozzárendelhet több kapcsolattartóhoz, és megszűnteheti hozzárendelésüket

A sok-a-sokhoz kapcsolatok szimmetrikusak. A példát bővítheti termékek hozzáadásához egy kapcsolattartóhoz, majd a két képernyő közötti tükrözéssel megjelenítheti, hogyan jelenik meg a kapcsolat egyik irányból.

  1. Állítsa be a Screen1OnVisible tulajdonságát Frissítés (Termékek) értékre.

    Amikor egy több-a-többhöz vagy több-a-többhöz kapcsolat frissítését végzi, csak a Kapcsolás vagy a Leválasztás hívás első argumentumtáblázatának adatai frissülnek. A másodikat manuálisan kell frissíteni, ha az alkalmazás képernyőjén szeretné megfordítani azt.

    OnVisible tulajdonság beállítása a Refresh függvényhez.

  2. Duplikált Screen1.

    A duplikált elem neve Screen1_1 lesz és a kapcsolatok megtekintését a kapcsolattartók oldaláról teszi lehetővé.

    Képernyő duplikálása.

  3. A fordított nézet létrehozásához módosítsa a képleteket a Screen1_1 vezérlőiben:

    • 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 )

    Az eredmény nagyon hasonlít az előző képernyőhöz, de a Kapcsolattartók oldaláról irányul a kapcsolat.

    Sok-a-sokhoz kapcsolat megjelenítése a kapcsolattartókkal kezdve.

  4. Szúrjon be egy Fel le nyilat az ikon fölé, és állítsa be a OnSelect tulajdonságot Navigate( Screen1, None) értékre. Ugyanígy hajtsa végre ugyanazt a Screen1 képernyőn a Navigate( Screen1_1, None ) használatával.

    A képernyők közötti navigálás hozzáadása.

Ezzel az új képernyővel a felhasználók hozzáadhatnak egy kapcsolattartót a termékhez, majd megtekinthetik a kapcsolattartók nézetét, és megtekinthetik a kapcsolódó terméket. A kapcsolatok a két képernyő szimmetrikusak és megosztottak.

Több-a-többhöz kapcsolat bemutatása mindkét oldalról.