Funkcijų susiejimas ir nesusiejimas
Taikoma: drobės programoms
Modeliu pagrįstoms programoms
Susieti – atsieja dviejų lentelių įrašus per ryšį "vienas su daugeliu" arba "daugelis su daugeliu".
Aprašymas
Funkcija Relate platformoje „Microsoft Dataverse“ susieja du įrašus naudodama ryšį „vienas su daugeliu“ arba „daugelis su daugeliu“. Funkcija Unrelate procesą atšaukia ir pašalina saitą.
"vienas su daugeliu" ryšių atveju "Daugelis" lentelėje yra užsiėmęs rakto laukas, kuris nurodo lentelės "Vienas" įrašą. Susieti nustato, kad šis laukas nurodo konkretų vienos lentelės įrašą, o nerealus laukas nustatomas kaip tuščias. Jei, iškviečiant Relate, laukas jau nustatytas, esamas saitas panaikinamas, kad būtų galima naudoti naująjį saitą. Šį lauką taip pat galite nustatyti naudodami funkciją Patch arba redagavimo formos valdiklį; funkcijos Relate naudoti nereikia.
Ryšių „daugelis su daugeliu“ atveju įrašus siejanti sistema tvarko paslėptą sujungimo lentelę. Tiesiogiai šios sujungimo lentelės pasiekti negalite; ją galima skaityti tik naudojant projekciją „vienas su daugeliu“ ir nustatyti naudojant funkcijas Relate bei Unrelate. Nei viena susijusi lentelė neturi susaikdų rakto.
Lentelės duomenys, kuriuos nurodote pirmajame argumente, bus atnaujinti, kad atspindėtų pakeitimą, tačiau lentelės duomenys, kuriuos nurodote antrajame argumente, nebus. Šiuos duomenis reikia rankiniu būdu atnaujinti naudojant funkciją Refresh, kad būtų rodomas operacijos rezultatas.
Šios funkcijos niekada nekuria ir nepanaikina įrašo. Jos susieja arba atsieja du jau esančius įrašus.
Šias funkcijas galite naudoti tik veikimo formulėse.
Pastaba.
Šios funkcijos yra peržiūros funkcijos dalis ir jos veikia tik tada, kai įjungta funkcija Santykiniai duomenys, parinkčių rinkiniai ir kitos naujos CDS funkcijos. Tai yra programų lygio parametras, kuris naujose programose įjungtas pagal numatytuosius parametrus. Norėdami rasti šį funkcijos jungiklį rinkitės Nustatymai, ir tada rinkitės Būsimos funkcijos. Jūsų atsiliepimai mums labai vertingi – išsakykite, ką galvojate „Power Apps“ bendruomenės forumuose.
Sintaksė
Susieti ( 1 lentelėSusijusilentelė, 2 lentelėĮrašas )
- Table1RelatedTable - Būtinas. Įrašui Table1, lenelės Table2 įrašai susiję naudojant ryšį "vienas su daugeliu" arba "daugelis su daugeliu".
- Table2Record - Būtinas. 2 lentelės įrašas, kurį reikia įtraukti į ryšį.
Atsieti ( 1 lentelėSusijusilentelė, 2 lentelėĮrašas )
- Table1RelatedTable - Būtinas. Įrašui Table1, lenelės Table2 įrašai susiję naudojant ryšį "vienas su daugeliu" arba "daugelis su daugeliu".
- Table2Record - Būtinas. 2 lentelės įrašas, kurį reikia pašalinti iš ryšių.
Pavyzdžiai
Apsvarstykite produktų lentelę su šiais ryšiais, kaip matyti „Power Apps“ portalo lentelės peržiūros programoje:
Rodomas ryšio pavadinimas | Susijusi lentelė | Ryšio tipas |
---|---|---|
Produktų rezervavimas | Rezervavimas | Vienas su daugeliu |
Produktas ↔ kontaktas | Prisijungti | Daugelis su daugeliu |
Produktai ir Rezervacijos susieti naudojant ryšį „vienas su daugeliu“. Norėdami susieti pirmąjį lentelės Rezultatai įrašą su pirmuoju produktų lentelės įrašu:
Relate( First( Products ).Reservations, First( Reservations ) )
Kaip pašalinti ryšį tarp šių įrašų:
Unrelate( First( Products ).Reservations, First( Reservations ) )
Niekada nesukūrėme ir nepašalinome įrašo, buvo modifikuotas tik ryšys tarp įrašų.
Produktai ir Kontaktai susieti naudojant ryšį „daugelis su daugeliu“. Norėdami susieti pirmąjį lentelės Kontaktai įrašą su pirmuoju produktų lentelės įrašu:
Relate( First( Products ).Contacts, First( Contacts ) )
Kadangi ryšiai „daugelis su daugeliu“ yra simetriški, tai taip pat galėjome atlikti priešinga kryptimi:
Relate( First( Contacts ).Products, First( Products ) )
Kaip pašalinti ryšį tarp šių įrašų:
Unrelate( First( Products ).Contacts, First( Contacts ) )
arba:
Unrelate( First( Contacts ).Products, First( Products ) )
Iš šių lentelių galima pereiti būtent šias operacijas naudojant programą su Gallery ir Combo box valdikliais, kad būtų galima pažymėti dalyvaujančius įrašus.
Šių pavyzdžių tinkamumas priklauso nuo to, ar jūsų aplinkoje įdiegti duomenų pavyzdžiai. Sukurkite bandomoji aplinka su duomenų pavyzdžiais arba įtraukite pavyzdinius duomenis į esamą aplinką.
Vienas su daugeliu
Relate funkcija
Pirmiausia sukursite paprastą programą, kad galėtumėte peržiūrėti ir iš naujo priskirti rezervacijas, susietas su produktu.
Skirtuke Rodinys pasirinkite Duomenų šaltiniai.
Duomenų juostoje rinkitės Įtraukti duomenis> rinkitės Produktai.
Produktų lentelė yra aukščiau įkeltų duomenų pavyzdžio dalis.Skirtuke Įterpti įtraukite tuščią vertikalųjį galerijos valdiklį.
Įsitikinkite, kad ką tik įtraukto valdiklio pavadinimas yra Gallery1, o tada jį perkelkite ir pakeiskite jo dydį, kad būtų užpildyta kairioji ekrano pusė.
Skirtuke Ypatybės Gallery1 ypatybę Items nustatykite kaip Produktai, o maketą – kaip Vaizdas ir pavadinimas.
Įsitikinkite, kad Gallery1 žymos valdiklis pavadintas Title1, tada jo ypatybę Text nustatykite kaip ThisItem.Name.
Pasirinkite ekraną, kad kitas elementas nebūtų įterptas į Gallery1. Įtraukite antrą tuščią vertikalųjį galerijos valdiklį ir įsitikinkite, kad jis pavadintas Gallery2.
Gallery2 bus rodomos bet kurio produkto, kurį vartotojas pasirenka valdiklyje Gallery1.
Gallery2 perkelkite ir keiskite jo dydį, kad būtų užpildytas viršutinis dešinysis ekrano kvadrantas.
(nebūtina) Virš Gallery2 įtraukite mėlyną žymos valdiklį, kaip parodyta tolesniame grafiniame elemente.
Formulės juostoje Gallery2 ypatybę Items nustatykite kaip Gallery1.Selected.Reservations.
Ypatybių srityje Gallery2 maketą nustatykite kaip Pavadinimas.
Valdiklyje Gallery2 įtraukite pasirinktinio įvedimo lauko valdiklį, įsitikinkite, kad jis pavadintas ComboBox1, tada valdiklį perkelkite ir keiskite jo dydį, kad nebūtų blokuojami kiti Gallery2 valdikliai.
Skirtuke Ypatybės ComboBox1 ypatybę Items nustatykite kaip Produktai.
Slinkite žemyn į skirtuką Ypatybės ir ComboBox1 ypatybę Leisti pasirinkti kelis elementus nustatykite kaip Išjungta.
Formulės juostoje ComboBox1 ypatybę DefaultSelectedItems nustatykite kaip ThisItem.'Product Reservation'.
Valdiklyje Gallery2 NextArrow2 ypatybę OnSelect nustatykite kaip šią formulę:
Relate( ComboBox1.Selected.Reservations, ThisItem )
Kai vartotojas pasirenka šią piktogramą, dabartinė rezervacija pasikeičia į produktą, kurį vartotojas pasirinko elemente ComboBox1.
Paspausdami F5, patikrinkite programą peržiūros režimu.
Naudodamas šią programą vartotojas gali rezervaciją iš vieno produkto perkelti į kitą. Jei rezervuotas vienas produktas, vartotojas elemente ComboBox1 gali pasirinkti kitą produktą, tada pasirinkti NextArrow2, kad būtų pakeista ta rezervacija.
Atsiejimo funkcija
Šiuo metu galite perkelti ryšį iš vieno įrašo į kitą, tačiau negalite panaikinti pačio ryšio. Naudodami funkciją Unrelate, rezervacijos įrašą galite atsieti nuo bet kurio produkto.
Skirtuke Rodinys pasirinkite Duomenų šaltiniai.
Srityje Duomenys pasirinkite Įtraukti duomenų šaltinį>„Microsoft Dataverse“>Rezervacijos>Prijungti.
Valdiklyje Gallery2 NextArrow2 ypatybę OnSelect nustatykite kaip šią formulę:
If( IsBlank( ComboBox1.Selected ), Unrelate( Gallery1.Selected.Reservations, ThisItem ), Relate( ComboBox1.Selected.Reservations, ThisItem ) ); Refresh( Reservations )
Gallery2 nukopijuokite į mainų sritį, jį pasirinkdami ir paspausdami „Ctrl“-C.
Paspausdami „Ctrl“-V, Gallery2 dublikatą įklijuokite į tą patį ekraną, tada jį perkelkite į apatinį dešinįjį ekrano kvadrantą.
(nebūtina) Jei įtraukėte žymą virš Gallery2, su ta žyma atlikite ankstesnius du veiksmus.
Įsitikinkite, kad Gallery2 dublikatas yra pavadintas Gallery2_1, tada jo ypatybę Items nustatykite kaip šią formulę:
Filter( Reservations, IsBlank( 'Product Reservation' ) )
Rodomas perdavimo įspėjimas, tačiau šiame pavyzdyje jis neturės reikšmės, nes naudojama mažai duomenų.
Atlikę šiuos pakeitimus, vartotojai elemente ComboBox1 gali išvalyti kontakto pasirinkimą, jei tas asmuo nėra rezervavęs produkto. Kontaktai, kurie nėra rezervavę produkto, rodomi elemente Gallery2_1, kuriame vartotojai gali kiekvienam kontaktui priskirti produktą.
Daugelis su daugeliu
Ryšio „daugelis su daugeliu“ sukūrimas
Duomenų pavyzdyje nėra ryšio "daugelis su daugeliu", tačiau ryšį sukursite tarp produktų lentelės ir kontaktų lentelės. Vartotojai kiekvieną produktą gali susieti su daugiau nei vienu kontaktu, o kiekvieną kontaktą – su daugiau nei vienu produktu.
Šiame puslapyje kairėje naršymo juostoje pažymėkite Duomenys, tada pažymėkite Lentelės.
Pakeiskite lentelės filtrą, kad būtų įtrauktos visos lentelės.
Pagal numatytuosius nustatymus lentelių pavyzdžiai nerodomi.
Slinkite žemyn, atidarykite produktų lentelę ir pažymėkite Ryšiai.
Pasirinkite Įtraukti ryšį>Daugelis su daugeliu.
Pažymėkite ryšio kontaktų lentelę.
Rinktis Atlikta>Įrašyti lentelę.
Kontaktų susiejimas su vienu arba keliais produktais ir atsiejimas nuo jų
Sukursite kitą programą, panašią į sukurtą anksčiau šioje temoje, tačiau naujoji programa naudos ryšį „daugelis su daugeliu“. Kiekvienas kontaktas galės rezervuoti kelis produktus, o ne tik vieną.
Tuščioje programoje, skirtoje planšetiniams kompiuteriams, sukurkite Gallery1, kaip aprašyta pirmoje šios temos procedūroje.
Įtraukite dar vieną tuščią vertikalųjį galerijos valdiklį, įsitikinkite, kad jis pavadintas Gallery2, tada jį perkelkite į viršutinį dešinįjį ekrano kampą.
Vėliau šioje temoje Gallery2 dalyje įtrauksite pasirinktinio įvedimo lauko valdiklį.
Formulės juostoje Gallery2 ypatybę Items nustatykite kaip Gallery1.Selected.Contacts.
Skirtuke Ypatybės maketą nustatykite kaip Vaizdas ir pavadinimas.
Įsitikinkite, kad Gallery2 žymos valdiklis pavadintas Title2, tada jo ypatybę Text nustatykite kaip ThisItem.'Full Name'.
Kol nebaigsite šios procedūros ir produktui nepriskirsite kontakto, šiame valdiklyje nebus rodomas joks tekstas.
Panaikinkite NextArrow2, įterpkite atšaukimo piktogramą ir įsitikinkite, kad ji pavadinta icon1.
Atšaukimo piktogramos ypatybę OnSelect nustatykite kaip šią formulę:
Unrelate( Gallery1.Selected.Contacts, ThisItem )
Skirtuke Rodinys pasirinkite Duomenų šaltiniai.
Srityje Duomenys pasirinkite Įtraukti duomenų šaltinį>„Microsoft Dataverse“>Kontaktai>Prijungti.
Gallery2 dalyje įtraukite pasirinktinio įvedimo lauko valdiklį, įsitikinkite, kad jis pavadintas ComboBox1, tada jo ypatybę Items nustatykite kaip Kontaktai.
Skirtuke Ypatybės elementą Leisti pasirinkti kelis elementus nustatykite kaip Išjungta.
Įterpkite įtraukimo piktogramą ir jos ypatybę OnSelect nustatykite kaip šią formulę:
Relate( Gallery1.Selected.Contacts, ComboBox1.Selected )
Naudodami šią programą, vartotojai dabar gali kontaktų rinkinį laisvai susieti su kiekvienu produktu ir nuo jo atsieti.
Norėdami į produktą įtraukti kontaktą, ekrano apačioje esančiame pasirinktinio įvedimo lauke pasirinkite kontaktą, tada pasirinkite įtraukimo piktogramą.
Jei norite kontaktą pašalinti iš produkto, pasirinkite to kontakto atšaukimo piktogramą.
Kitaip nei „vienas su daugeliu“, ryšys „daugelis su daugeliu“ vartotojams leidžia tą patį kontaktą susieti su keliais produktais.
Atvirkščiai: produktų susiejimas su keliais kontaktais ir atsiejimas nuo jų
Ryšiai „daugelis su daugeliu“ yra simetriški. Pavyzdį galite išplėsti ir į kontaktą įtraukti produktų, o tada pereiti tarp dviejų ekranų, kad matytumėte, kaip ryšys rodomas bet kuria kryptimi.
Screen1 ypatybę OnVisible nustatykite kaip Refresh( Products ).
Kai atnaujinate ryšį "vienas su daugeliu" arba "daugelis su daugeliu", atnaujinami tik pirmos skambučio Susieti arba Nerealinti argumentų lentelės duomenys. Jei norite pereiti tarp programos ekranų, pirmąjį objektą reikia atnaujinti rankiniu būdu.
Sukurkite Screen1 dublikatą.
Dublikatas bus pavadintas Screen1_1 ir bus pagrindu į ryšius pažvelgti iš kontaktų pusės.
Norėdami sukurti atvirkštinį rodinį, šias formules pakeiskite Screen1_1 valdikliuose:
- 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 )
Rezultatas atrodys labai panašus į ankstesnį ekraną, tačiau į ryšį žvelgiama iš kontaktų pusės.
- Screen1_1.OnVisible =
Įterpkite rodyklių aukštyn žemyn piktogramą ir jos ypatybę OnSelect nustatykite kaip Navigate( Screen1, None ). Tą patį atlikite ekrane Screen1, naudodami formulę Navigate( Screen1_1, None ).
Naudodami šį naują ekraną, vartotojai gali į produktą įtraukti kontaktą ir tada pereiti į kontaktų rodinį bei peržiūrėti susietąjį produktą. Ryšiai yra simetriški ir bendrai naudojami tarp dviejų ekranų.
Atsiliepimai
https://aka.ms/ContentUserFeedback.
Jau greitai: 2024 m. palaipsniui atsisakysime „GitHub“ problemų, kaip turiniui taikomo atsiliepimų mechanizmo, ir pakeisime jį nauja atsiliepimų sistema. Daugiau informacijos žr.Pateikti ir peržiūrėti atsiliepimą, skirtą