Súvisiace a nesúvisiace funkcie
Vzťahuje sa na: aplikácie plátna aplikácie s podporou modelov
Vytvorenie a zrušenie vzťahov medzi záznamami dvoch tabuliek prostredníctvom vzťahu typu jeden k mnohým alebo mnohé k mnohým.
Popis
Funkcia Relate prepája dva záznamy prostredníctvom vzťahov typu jeden k mnohým a mnohé k mnohým v Microsoft Dataverse. Funkcia Unrelate proces obráti a odstráni odkaz.
Pre vzťahy typu jeden k mnohým tabuľka Mnoho pole cudzieho kľúča, ktoré ukazuje na záznam tabuľky Jeden. Relovať nastaví toto pole tak, aby ukazovalo na konkrétny záznam tabuľky One, zatiaľ čo Nevzťahovať nastaví toto pole na prázdne. Ak je pole už nastavené, keď sa volá funkcia Relate, existujúci odkaz sa stratí v prospech nového odkazu. Toto pole môžete tiež nastaviť pomocou funkcie Patch alebo ovládacieho prvku Upraviť formulár; nemusíte používať funkciu Relate.
Pre vzťahy typu mnohé k mnohým si systém, ktorý prepája záznamy, zachováva skrytú tabuľku spojení. K tejto tabuľke sa nedá pristupovať priamo; je možné ju prečítať iba prostredníctvom projekcie typu jeden k mnohým a nastaviť pomocou funkcií Relate a Unrelate. Ani jedna súvisiaca tabuľka nemá cudzí kľúč.
Údaje pre tabuľku, ktorú zadáte v prvom argumente, sa obnovia, aby odrážali zmenu, ale údaje pre tabuľku, ktorú zadáte v druhom argumente, sa nebudú obnovovať. Tieto údaje sa musia manuálne obnoviť pomocou funkcie Refresh na zobrazenie výsledku operácie.
Tieto funkcie nikdy nevytvárajú ani neodstraňujú záznam. Vytvoria alebo zrušia súvis iba medzi dvoma záznamami, ktoré už existujú.
Môžete tieto funkcie použiť iba vo vzorcoch správania.
Poznámka
Tieto funkcie sú súčasťou funkcie náhľadu a ich správanie je k dispozícii, iba ak je povolená funkcia Relačné údaje, množiny možností a ďalšie nové funkcie pre CDS. Toto je nastavenie na úrovni aplikácie, ktoré je predvolene povolené pre nové aplikácie. Ak chcete nájsť tento prepínač funkcií, otvorte ponuku Nastavenia a potom vyberte Pripravované funkcie. Vaša spätná väzba je pre nás veľmi cenná – podeľte sa s nami o svoj názor vo fórach komunity služby Power Apps.
Syntax
Súvisieť( Tabuľka1SúvisiacaTabuľka, Tabuľka2Záznam )
- Table1RelatedTable – povinné. Pre záznam Table1, tabuľka Table2 záznamy súvisiace prostredníctvom vzťahu typu jeden k mnohým alebo mnohé k mnohým.
- Table2Record – povinné. Záznam Table2 na pridanie do vzťahu.
Nesúvisiace( Tabuľka1SúvisiacaTabuľka, Tabuľka2Záznam )
- Table1RelatedTable – povinné. Pre záznam Table1, tabuľka Table2 záznamy súvisiace prostredníctvom vzťahu typu jeden k mnohým alebo mnohé k mnohým.
- Table2Record – povinné. Záznam Table2 na odstránenie zo vzťahu.
Príklady
Zvážte tabuľku Produkty s nasledujúcimi vzťahmi, ako je uvedené v prehliadači tabuliek portálu Power Apps:
Zobrazovaný názov vzťahu | Súvisiaca tabuľka | Typ vzťahu |
---|---|---|
Rezervácia produktu | Rezervácia | Jeden k mnohým |
Produkt ↔ Kontakt | Kontakt | Mnohé k mnohým |
Produkty a Rezervácie sú spojené prostredníctvom vzťahu One-to-Many. Na prepojenie prvého záznamu tabuľky Rezervácie s prvým záznamom tabuľky Produkty:
Relate( First( Products ).Reservations, First( Reservations ) )
Ak chcete odstrániť vzťah medzi týmito záznamami:
Unrelate( First( Products ).Reservations, First( Reservations ) )
V žiadnom okamihu sme nevytvorili ani neodstránili ani nenahradili záznam, zmenil sa iba vzťah medzi záznamami.
Produkty a Kontakty sú prepojené prostredníctvom vzťahu Many-to-Many. Na prepojenie prvého záznamu tabuľky Kontaktu s prvým záznamom tabuľky Produkty:
Relate( First( Products ).Contacts, First( Contacts ) )
Keďže vzťahy typu mnohé k mnohým sú symetrické, mohli sme to urobiť aj opačným smerom:
Relate( First( Contacts ).Products, First( Products ) )
Ak chcete odstrániť vzťah medzi týmito záznamami:
Unrelate( First( Products ).Contacts, First( Contacts ) )
alebo:
Unrelate( First( Contacts ).Products, First( Products ) )
Nasledujúci krok vykoná presne tieto operácie na týchto tabuľkách pomocou aplikácie s ovládacími prvkami Galéria a Rozbaľovacie pole na výber príslušných záznamov.
Tieto príklady závisia od vzorových údajov nainštalovaných vo vašom prostredí. Buď vytvorte skúšobné prostredie vrátane vzorových údajov alebo pridajte vzorové údaje do existujúceho prostredia.
Jeden k mnohým
Súvisieť funkcia
Najprv vytvoríte jednoduchú aplikáciu, pomocou ktorej si budete môcť prezerať a priraďovať rezervácie spojené s produktom.
Vytvorte aplikáciu pre tablet od začiatku.
Na karte Zobraziť vyberte položku Zdroje údajov.
Na table Údaje vyberte Pridať údaje > vyberte Produkty.
Tabla Produkty je súčasťou vzorových údajov načítaných vyššie.Na internete Vložiť pridajte prázdny vertikálny ovládací prvok Galéria.
Skontrolujte, má ovládací prvok, ktorý ste práve pridali, názov Gallery1, a potom ho posuňte a zmeňte jeho veľkosť tak, aby vyplnil ľavú stranu obrazovky.
Na karte Vlastnosti nastavte vlastnosť Items ovládacieho prvku Gallery1 na Produkty a Layout na Obrázok a názov.
V Gallery1 zabezpečte, aby ovládací prvok Označenie mal názov Title1 a potom nastavte jeho vlastnosť Text na ThisItem.Name.
Vyberte obrazovku, aby ste do Gallery1 nezadali ďalšiu položku. Pridajte druhý prázdny vertikálny ovládací prvok Galéria a uistite sa, že je pomenovaný ako Gallery2.
Galéria2 zobrazí rezervácie akéhokoľvek produktu, ktorý používateľ vyberie v Galéria1.
Presuňte a zmeňte veľkosť Gallery2 tak, aby vyplnila pravý horný kvadrant obrazovky.
(voliteľné) Pridajte modrý ovládací prvok Označenie nad Gallery2, ako ukazuje nasledujúci obrázok.
Na paneli vzorcov nastavte vlastnosť Items ovládacieho prvku Gallery2 na Gallery1.Selected.Reservations.
Na table vlastností nastavte vlastnosť Layout ovládacieho prvku Gallery2 na Názov.
V Gallery2 pridajte ovládací prvok Rozbaľovacie pole, uistite sa, že je pomenovaný ako ComboBox1 a potom ho presuňte a zmeňte jeho veľkosť, aby ste zabránili blokovaniu ostatných ovládacích prvkov v Gallery2.
Na karte Vlastnosti nastavte vlastnosť Items pre ComboBox1 na Produkty.
Prejdite nadol na karte Vlastnosti kartu a nastavte vlastnosť Allow multiple selection (Povoliť viacnásobný výber) pre ComboBox1 na Vyp..
Na paneli vzorcov nastavte vlastnosť DefaultSelectedItems pre ComboBox1 na ThisItem.'Product Reservation '.
V Gallery2 nastavte vlastnosť OnSelect pre NextArrow2 na tento vzorec:
Relate( ComboBox1.Selected.Reservations, ThisItem )
Keď používateľ vyberie túto ikonu, aktuálna rezervácia sa zmení na produkt, ktorý používateľ vybral v ComboBox1.
Stlačením klávesu F5 otestujte aplikáciu v režime ukážky.
Pomocou tejto aplikácie môže používateľ presunúť rezerváciu z jedného produktu na druhý. Pri rezervácii jedného produktu si môže používateľ vybrať iný produkt v ComboBox1 a potom vybrať NextArrow2 na zmenu tejto rezervácie.
Nesúvisiaca funkcia
V tomto okamihu môžete vzťah presunúť z jedného záznamu do druhého, ale vzťah nemôžete úplne odstrániť. Môžete použiť funkciu Unrelate na odpojenie záznamu o rezervácii od akéhokoľvek produktu.
Na karte Zobraziť vyberte položku Zdroje údajov.
Na table Údaje vyberte položku Pridať zdroj údajov>Microsoft Dataverse>Rezervácie>Pripojiť.
V Gallery2 nastavte vzorec OnSelect pre NextArrow2 na tento vzorec:
If( IsBlank( ComboBox1.Selected ), Unrelate( Gallery1.Selected.Reservations, ThisItem ), Relate( ComboBox1.Selected.Reservations, ThisItem ) ); Refresh( Reservations )
Skopírujte Gallery2 do schránky výberom a stlačením Ctrl+C.
Vložte duplikát Gallery2 na tú istú obrazovku stlačením klávesov Ctrl-V a potom ju presuňte do pravého dolného kvadrantu obrazovky.
(voliteľné) Ak ste vyššie uvedený štítok pridali nad Gallery2, zopakujte predchádzajúce dva kroky pre dané označenie.
Uistite sa, že duplikát Gallery2 je pomenovaný ako Gallery2_1 a potom nastavte jeho vlastnosť Items na tento vzorec:
Filter( Reservations, IsBlank( 'Product Reservation' ) )
Zobrazí sa upozornenie týkajúce sa delegovania, ale pri malom množstve údajov v tomto príklade na tom nezáleží.
Pomocou týchto zmien môžu používatelia vymazať výber v ComboBox1 pre kontakt, ak táto osoba nerezervovala produkt. Kontakty, ktoré si nevyhradili žiadny produkt, sa objavia v Gallery2_1, kde používatelia môžu priradiť každý kontakt k produktu.
Mnohé k mnohým
Vytvorenie vzťahu typu mnohé k mnohým
Vzorové údaje nezahŕňajú vzťah mnohé k mnohým, ale vytvoríte ho medzi tabuľkou Produkty a tabuľkou Kontakty. Používatelia môžu priradiť každý produkt k viac ako jednému kontaktu a každý kontakt k viac ako jednému produktu.
Z tejto stránky vyberte Údaje na ľavom navigačnom paneli a potom vyberte Tabuľky.
Zmeňte filter tabuľky tak, aby obsahoval všetky tabuľky.
Vzorové tabuľky sa predvolene nezobrazujú.
Posuňte zobrazenie nadol a otvorte tabuľku Produkt a vyberte Vzťahy.
Vyberte Pridať vzťah>Mnohé k mnohým.
Vyberte tabuľku Kontakt pre vzťah.
Vyberte Hotovo>Uložiť tabuľku.
Vytvorenie alebo zrušenie súvisu kontaktov s jedným alebo viacerými produktmi
Vytvoríte ďalšiu aplikáciu, ktorá sa podobá tej, ktorú ste vytvorili v tejto téme skôr, ale nová aplikácia ponúkne vzťah typu mnohé s mnohými. Každý kontakt si bude môcť rezervovať viac produktov namiesto jedného.
V prázdnej aplikácii pre tablety vytvorte Gallery1, ako je popísané v prvom postupe v tejto téme.
Pridajte ďalší prázdny vertikálny ovládací prvok Galéria, uistite sa, že je pomenovaný Gallery2 a potom ho presuňte do pravého horného rohu obrazovky.
Neskôr v tejto téme pridáte Rozbaľovacie pole po Gallery2.
Na riadku vzorcov nastavte vlastnosť Items ovládacieho prvku Gallery2 na Gallery1.Selected.Contacts.
Na karte Vlastnosti nastavte Rozloženie na Obrázok a názov.
V Gallery2 zabezpečte, aby ovládací prvok Označenie mal názov Title2 a potom nastavte jeho vlastnosť Text na ThisItem.'Full Name'.
V tomto ovládacom prvku sa nezobrazí žiadny text, kým neukončíte tento postup a nepriradíte kontakt produktu.
Odstráňte NextArrow2, vložte ikonu Zrušiť a uistite sa, že je pomenovaná ako icon1.
Vlastnosť OnSelect ikony Zrušiť nastavte na tento vzorec:
Unrelate( Gallery1.Selected.Contacts, ThisItem )
Na karte Zobraziť vyberte položku Zdroje údajov.
Na table Údaje vyberte položku Pridať zdroj údajov>Microsoft Dataverse>Kontakty>Pripojiť.
Pod Gallery2 pridajte ovládací prvok Rozbaľovacie pole, uistite sa, že je pomenované ComboBox1 a potom nastavte jeho vlastnosť Items na Kontakty.
Na karte Vlastnosti nastavte Povoliť viacnásobný výber na Vyp.
Vložte ikonu Pridať a nastavte jej vlastnosť OnSelect na tento vzorec:
Relate( Gallery1.Selected.Contacts, ComboBox1.Selected )
S touto aplikáciou môžu používatelia teraz voľne vytvoriť alebo zrušiť súvis množiny kontaktov s každým produktom.
Ak chcete do produktu pridať kontakt, vyberte kontakt v rozbaľovacom zozname v dolnej časti obrazovky a potom vyberte ikonu Pridať.
Ak chcete odstrániť kontakt z produktu, vyberte ikonu Zrušiť pre tento kontakt.
Na rozdiel vzťah jeden k mnohým umožňuje vzťah mnohé k mnohým používateľom priradiť ten istý kontakt k viacerým produktom.
Naopak: Vytvorenie a zrušenie súvisu produktov s viacerými kontaktmi
Vzťahy typu mnohé k mnohým sú symetrické. Príklad môžete rozšíriť tak, aby sa produkty pridali do kontaktu, a potom listovaním medzi dvoma obrazovkami ukázať, ako sa vzťah objavuje z oboch smerov.
Vlastnosť OnVisible položky Screen1 nastavte na Refresh( Products ).
Pri aktualizácii vzťahu jeden k mnohým alebo mnohé k mnohým sa obnovia iba údaje z tabuľky prvého argumentu volania Relate alebo Unrelate. Druhá sa musí obnoviť ručne, ak chcete listovať medzi obrazovkami tejto aplikácie.
Vytvorte duplikát Screen1.
Duplikát bude pomenovaný Screen1_1 a vytvorí základ na hľadanie vo vzťahoch zo strany kontaktov.
Ak chcete vytvoriť spätné zobrazenie, zmeňte tieto vzorce na ovládacích prvkoch 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 )
Výsledok bude vyzerať veľmi podobne ako predchádzajúca obrazovka, ale vychádza zo vzťahu zo strany Kontakty.
- Screen1_1.OnVisible =
Vložte ikonu Šípky hore dole a nastavte jej vlastnosť OnSelect na Navigate( Screen1, None ). Urobte to isté na obrazovke Screen1 so vzorcom Navigate( Screen1_1, None ).
Pomocou tejto novej obrazovky môžu používatelia pridať kontakt do produktu a potom listovať v zobrazení kontaktov a zobraziť priradený produkt. Vzťahy sú symetrické a zdieľané medzi oboma obrazovkami.