Bendrinti naudojant


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.

  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ės Gallery1 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 bus rodomos bet kurio produkto, kurį vartotojas pasirenka valdiklyje Gallery1.

  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 Gallery2 maketą 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ės ComboBox1 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 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.

    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.

Funkcijos Relate demonstravimas programoje „vienas su daugeliu“.

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.

  1. Skirtuke Rodinys pasirinkite Duomenų šaltiniai.

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

  3. 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 )
    

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

Susiejimo ir atsiejimo funkcijas rodyti vienoje su daugeliu 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ę.

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

  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ės maketą 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.

Funkcijų Relate ir Unrelate demonstravimas programoje „daugelis su daugeliu“.

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

    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.

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

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