Relate ir Unrelate funkcijos

Taikoma: Drobės programėlės Modeliu pagrįstos programėlės

Relate ir atsiekite dviejų lentelių įrašus naudodami ryšį "vienas su daugeliu" arba "daugelis su daugeliu".

Aprašymas

Funkcija Relate susieja du įrašus per "Microsoft Dataverse" ryšį "vienas su daugeliu" arba "daugelis su daugeliu". Funkcija Unrelate apšauks procesą ir pašalins saitą.

"vienas su daugeliu" ryšių atveju "Daugelis" lentelėje yra užsiėmęs rakto laukas, kuris nurodo lentelės "Vienas" įrašą. Relate nustato, kad šis laukas nukreiptų į konkretų lentelės "One" įrašą, o Unrelate šis laukas nustatomas kaip tuščias. Jei laukas jau nustatytas, kai Relate iškviečiamas, naujas saitas prarandamas. Šį lauką taip pat galite nustatyti naudodami funkciją Pataisa arba Redaguoti formos valdiklį; funkcijos naudoti Relate nereikia.

Ryšių „daugelis su daugeliu“ atveju įrašus siejanti sistema tvarko paslėptą sujungimo lentelę. Negalite tiesiogiai pasiekti šios sujungimo lentelės; ją galima skaityti tik per projekciją "vienas su daugeliu" ir nustatyti naudojant Relate ir Unrelate funkcijas. 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ė

Relate( Lentelė1RelatedTable, Lentelė2Įrašas )

  • Table1RelatedTable - būtina. Įrašui Table1, lenelės Table2 įrašai susiję naudojant ryšį "vienas su daugeliu" arba "daugelis su daugeliu".
  • Table2Record - būtina. 2 lentelės įrašas, kurį reikia įtraukti į ryšį.

Unrelate( Lentelė1RelatedTable, Lentelė2Įrašas )

  • Table1RelatedTable - būtina. Įrašui Table1, lenelės Table2 įrašai susiję naudojant ryšį "vienas su daugeliu" arba "daugelis su daugeliu".
  • Table2Record - būtina. 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
Produkto ↔ kontaktas Susisiekite Daugelis su daugeliu

Produktai ir rezervacijos yra susiję ryšiu 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 yra susiję per 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 duomenų pavyzdžius į 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.

  1. Nuo nulio sukurkite planšetinių kompiuterių programą.

  2. Skirtuke Rodinys pasirinkite Duomenų šaltiniai.

  3. Duomenų juostoje rinkitės Įtraukti duomenis> rinkitės Produktai.
    Produktų lentelė yra aukščiau įkeltų duomenų pavyzdžio dalis.

  4. Skirtuke Įterpti įtraukite tuščią vertikalųjį galerijos valdiklį.

  5. Į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ė.

  6. Skirtuke YpatybėsGallery1 ypatybę Items nustatykite kaip Produktai, o maketą – kaip Vaizdas ir pavadinimas.

    ProductsGallery konfigūravimas.

  7. Įsitikinkite, kad Gallery1žymos valdiklis pavadintas Title1, tada jo ypatybę Text nustatykite kaip ThisItem.Name.

    Gallery1 žymos konfigūravimas.

  8. Pasirinkite ekraną, kad kitas elementas nebūtų įterptas į Gallery1. Įtraukite antrą tuščią vertikalųjį galerijos valdiklį ir įsitikinkite, kad jis pavadintas Gallery2.

    "Gallery2 " parodys bet kurio produkto, kurį vartotojas pasirinks galerijoje1, rezervacijas.

  9. Gallery2 perkelkite ir keiskite jo dydį, kad būtų užpildytas viršutinis dešinysis ekrano kvadrantas.

  10. (nebūtina) Virš Gallery2 įtraukite mėlyną žymos valdiklį, kaip parodyta tolesniame grafiniame elemente.

  11. Formulės juostoje Gallery2 ypatybę Items nustatykite kaip Gallery1.Selected.Reservations.

    Gallery2 elementų konfigūravimas.

  12. Ypatybių srityje Gallery2maketą nustatykite kaip Pavadinimas.

    Gallery2 maketo konfigūravimas.

  13. 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.

  14. Skirtuke YpatybėsComboBox1 ypatybę Items nustatykite kaip Produktai.

    Elementų ypatybę nustatykite kaip „Produktai“.

  15. Slinkite žemyn į skirtuką Ypatybės ir ComboBox1 ypatybę Leisti pasirinkti kelis elementus nustatykite kaip Išjungta.

    Išjunkite funkciją „Leisti rinktis kelis“.

  16. Formulės juostoje ComboBox1 ypatybę DefaultSelectedItems nustatykite kaip ThisItem.'Product Reservation'.

    „DefaultSelectedItems“ nustatykite kaip „ReserveCombo“.

  17. Valdiklyje Gallery2NextArrow2 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.

    NextArrow2 konfigūravimas.

  18. 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.

Demonstruokite Relate funkciją programoje

Unrelate funkcija

Šiuo metu galite perkelti ryšį iš vieno įrašo į kitą, tačiau negalite panaikinti pačio ryšio. Funkciją galite naudoti Unrelate norėdami atjungti rezervavimo įrašą nuo bet kurio produkto.

  1. Skirtuke Rodinys pasirinkite Duomenų šaltiniai.

  2. Srityje Duomenys pasirinkite Įtraukti duomenų šaltinį>„Microsoft Dataverse“>Rezervacijos>Prijungti.

  3. Valdiklyje Gallery2NextArrow2 ypatybę OnSelect nustatykite kaip šią formulę:

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

    Piktogramos Dešinėn konfigūravimas.

  4. Gallery2 nukopijuokite į mainų sritį, jį pasirinkdami ir paspausdami „Ctrl“-C.

  5. Paspausdami „Ctrl“-V, Gallery2 dublikatą įklijuokite į tą patį ekraną, tada jį perkelkite į apatinį dešinįjį ekrano kvadrantą.

  6. (nebūtina) Jei įtraukėte žymą virš Gallery2, su ta žyma atlikite ankstesnius du veiksmus.

  7. Į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ų.

    Elementų ypatybę nustatykite kaip „Gallery2_1“.

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ą.

Demonstruokite Relate ir Unrelate funkcijuokite programoje

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.

  1. Šiame puslapyje kairėje naršymo juostoje pažymėkite Duomenys, tada pažymėkite Lentelės.

    Atidaryti lentelės sąrašą.

  2. Pakeiskite lentelės filtrą, kad būtų įtrauktos visos lentelės.

    Pagal numatytuosius nustatymus lentelių pavyzdžiai nerodomi.

    Šalinti lentelės filtrą.

  3. Slinkite žemyn, atidarykite produktų lentelę ir pažymėkite Ryšiai.

  4. Pasirinkite Įtraukti ryšį>Daugelis su daugeliu.

  5. Pažymėkite ryšio kontaktų lentelę.

  6. Rinktis Atlikta>Įrašyti lentelę.

Relate ir nebesiekite kontaktų su vienu ar keliais produktais

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ą.

  1. Tuščioje programoje, skirtoje planšetiniams kompiuteriams, sukurkite Gallery1, kaip aprašyta pirmoje šios temos procedūroje.

  2. Į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į.

  3. Formulės juostoje Gallery2 ypatybę Items nustatykite kaip Gallery1.Selected.Contacts.

    Kontaktų galerijos konfigūravimas – elementų ypatybė.

  4. Skirtuke Ypatybėsmaketą nustatykite kaip Vaizdas ir pavadinimas.

    Kontaktų galerijos konfigūravimas – maketas.

  5. Į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.

    Rodyti kontakto pavadinimą.

  6. Panaikinkite NextArrow2, įterpkite atšaukimo piktogramą ir įsitikinkite, kad ji pavadinta icon1.

  7. Atšaukimo piktogramos ypatybę OnSelect nustatykite kaip šią formulę:

    Unrelate( Gallery1.Selected.Contacts, ThisItem )
    

    Konfigūruokite atšaukimo piktogramą.

  8. Skirtuke Rodinys pasirinkite Duomenų šaltiniai.

  9. Srityje Duomenys pasirinkite Įtraukti duomenų šaltinį>„Microsoft Dataverse“>Kontaktai>Prijungti.

  10. Gallery2 dalyje įtraukite pasirinktinio įvedimo lauko valdiklį, įsitikinkite, kad jis pavadintas ComboBox1, tada jo ypatybę Items nustatykite kaip Kontaktai.

    Konfigūruokite „Combo“ langelio elementų ypatybę.

  11. Skirtuke Ypatybės elementą Leisti pasirinkti kelis elementus nustatykite kaip Išjungta.

    Konfigūruokite „Combo“ langelio išdėstymo ypatybę.

  12. Įterpkite įtraukimo piktogramą ir jos ypatybę OnSelect nustatykite kaip šią formulę:

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

    Įtraukimo piktogramos konfigūravimas.

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.

Demonstruokite Relate ir Unrelate funkcijuokite programoje

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.

  1. Screen1 ypatybę OnVisible nustatykite kaip Refresh( Products ).

    Atnaujinant ryšį "vienas su daugeliu" arba "daugelis su daugeliu", atnaujinami tik pirmojo argumentų lentelės arba Unrelate skambučio Relate duomenys. Jei norite pereiti tarp programos ekranų, pirmąjį objektą reikia atnaujinti rankiniu būdu.

    Ypatybė OnVisible nustatoma kaip funkcija Refresh.

  2. Sukurkite Screen1 dublikatą.

    Dublikatas bus pavadintas Screen1_1 ir bus pagrindu į ryšius pažvelgti iš kontaktų pusės.

    Ekrano dubliavimas.

  3. Norėdami sukurti atvirkštinį rodinį, šias formules pakeiskite Screen1_1 valdikliuose:

    • Screen1_1.OnVisible = Refresh( Contacts )
    • Gallery1_1.Items = Contacts
    • Title1_1.Tekstas = ThisItem.'Full Name'
    • Label1_1.Tekstas = "Selected Contact Products"
    • Gallery2_1.Elementai = Gallery1_1.Selected.Products
    • Title2_1.Text = ThisItem.Name
    • Icon1_1.OnSelect = Unrelate( Gallery1_1.Selected.Products, ThisItem )
    • ComboBox1_1.Elementai = 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.

    Ryšio „daugelis su daugeliu“ rodymas, pradedant nuo kontaktų.

  4. Į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 ).

    Naršymo tarp ekranų įtraukimas.

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ų.

Ryšio „daugelis su daugeliu“ demonstravimas iš abiejų pusių.