Қатысты және байланыссыз функциялары

Қолданылады: Canvas қолданбалары Үлгіге негізделген қолданбалар

Екі кестенің жазбаларын "біреуі көпке" немесе "көбісі көпке" қатынасы арқылы байланыстырыңыз және ажыратыңыз.

Сипаттамасы

Relate функциясы Microsoft Dataverse ішіндегі бір-көпке немесе көп-көпке қатынасы арқылы екі жазбаны байланыстырады. Unrelate функциясы бұл процесті кері жүргізеді және байланысты жояды.

Біреуі көпке қатынастары үшін көп кестесінде бір кестенің жазбасын көрсететін сыртқы кілт өрісі бар. Байланыстыру функциясы бұл өрісті бір кестенің белгілі бір жазбасын көрсететіндей етіп орнатады, ал Ажырату функциясы осы өрісті бос күйіне орнатады. Relate шақырылғанда бұл өріс орнатылып қойылған болса, жаңа байланыс үшін бар байланыс жоғалады. Сондай-ақ бұл өрісті Patch функциясын немесе Edit form басқару элементін пайдалана отырып орнатуға болады; Relate функциясын пайдалану керек емес.

Көп-көпке қатынастары үшін жазбаларды байланыстыратын жүйе жасырын біріктіру кестесін сақтайды. Бұл біріктіру кестесіне тікелей қатынасу мүмкін емес, оны тек бір-көпке проекциясы арқылы оқуға әрі Relate және Unrelate функциялары арқылы орнатуға болады. Байланыстырылған кестенің ешқайсысында сыртқы кілт жоқ.

Бірінші аргументте көрсетілген кестенің деректері өзгерісті көрсету үшін жаңартылады, бірақ екінші аргументте көрсетілген кестенің деректері жаңартылмайды. Бұл деректерді әрекет нәтижесін көрсету үшін Refresh функциясы арқылы қолмен жаңарту керек.

Бұл функциялар ешқашан жазбаны жасамайды немесе жоймайды. Олар тек бұрыннан бар екі жазбаны қатысты етеді немесе қатысты емес етеді.

Бұл функцияларды тек мінез-құлық формулаларында пайдалануға болады.

Ескертпе

Бұл функциялар алдын ала қарау мүмкіндігінің бір бөлігі болып табылады және олардың мінез-құлқы тек Реляциялық деректер, опциялар жинақтары және CDS үшін басқа жаңа мүмкіндіктер мүмкіндігі қосулы кезде қолжетімді. Бұл — жаңа бағдарламалар үшін әдепкі бойынша қосулы болатын бағдарлама деңгейіндегі параметр. Бұл функция ауыстырып‑қосқышын табу үшін, Параметрлер бөлімін таңдаңыз, содан кейін Алдағы мүмкіндіктер параметрін таңдаңыз. Пікіріңіз біз үшін өте құнды - Power Apps қауымдастық форумдарында не ойлайтыныңызды айтыңыз.

Синтаксис

Байланыстыру( Table1RelatedTable, Table2Record )

  • Table1RelatedTable - міндетті. Table1 жазбасы үшін Table2 жазбаларының кестесі біреуі көпке немесе көбісі көпке қатынасы арқылы байланыстырылады.
  • Table2Record - міндетті. Қатынасқа қосу керек Table2 жазбасы.

Ажырату( Table1RelatedTable, Table2Record )

  • Table1RelatedTable - міндетті. Table1 жазбасы үшін Table2 жазбаларының кестесі біреуі көпке немесе көбісі көпке қатынасы арқылы байланыстырылады.
  • Table2Record - міндетті. Қатынастан алып тастау керек Table2 жазбасы.

Мысалдар

Өнімдер кестесін Power Apps порталының кесте қарау құралында көрсетілгендей келесі қатынастармен қарастырайық:

Қатынастың көрсетілетін атауы Қатысты кесте Қатынас түрі
Өнімді резервтеу Резервтеу Біреу көпке
Өнім ↔ Контакт Контакт Көп-көпке

Өнімдер және Резервтеулер бір-көпке қатынасы арқылы қатысты. Резервтеулер кестесінің бірінші жазбасын Өнімдер кестесіндегі бірінші жазбамен байланыстыру үшін:

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

Осы жазбалар арасындағы қатынасты алу үшін:

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

Біз ешбір уақытта жазбаны жасамадық немесе жоймадық, тек жазбалар арасындағы қатынас өзгертілді.

Өнімдер және Контактілер көп-көпке қатынасы арқылы қатысты. Контактілер кестесінің бірінші жазбасын Өнімдер кестесіндегі бірінші жазбамен байланыстыру үшін:

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

Көп-көпке қатынастары симметриялық болғандықтан, мұны қарама-қарсы бағытта да жасауға болады:

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

Осы жазбалар арасындағы қатынасты алу үшін:

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

немесе:

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

Келесі шолуда бұл операциялар осы кестелерде қамтылған жазбаларды таңдауға арналған Галерея және Аралас тізім басқару элементтері бар бағдарлама көмегімен орындалады.

Бұл ысалдар ортаңызда орнатылып жатқан үлгі деректерге байланысты. Не үлгі деректерін қамтитын сынақ ортасын жасаңыз немесе үлгі деректерін бар ортаға қосыңыз.

Біреу көпке

Relate функциясы

Алдымен сіз өніммен байланысты резервтеулерді көру және қайта белгілеу үшін қарапайым бағдарлама жасайсыз.

  1. Планшет бағдарламасын бос үлгіден жасаңыз.

  2. Көрініс қойыншасында Деректер көздері опциясын таңдаңыз.

  3. Деректер тақтасында Деректер қосу>Өнімдер тармағын таңдаңыз.
    Өнімдер кестесі жоғарыда жүктелген үлгі деректерінің бір бөлігі болып табылады.

  4. Кірістіру қойыншасында бос тік Gallery басқару элементін қосыңыз.

  5. Сіз жаңа ғана қосқан басқару элементінің атауы Gallery1 екеніне көз жеткізіңіз, осдан кейін экранның сол жақ шетін толтыруы үшін оны жылжытыңыз және өлшемін өзгертіңіз.

  6. Сипаттар қойыншасында Gallery1 басқару элементінің Элементтер сипатын Өнімдер деп және Орналасу опциясын Кескін және атау деп орнатыңыз.

    ProductsGallery конфигурациялаңыз.

  7. Gallery1 ішінде Белгі басқару элементінің атауы Title1 екеніне көз жеткізіңіз, содан кейін оның Мәтін сипатын ThisItem.Name деп орнатыңыз.

    Gallery1 ішіндегі галереяны конфигурациялаңыз.

  8. Gallery1 ішіне келесі элементті кірістірмеу үшін экранды таңдаңыз. Екінші тік Галерея басқару элементін қосыңыз және оның аты Gallery2 екеніне көз жеткізіңіз.

    Gallery2 басқару элементі пайдаланушы Gallery1 ішінде таңдаған өнім үшін резервтеулерді көрсетеді.

  9. Экранның жоғарғы оң жақ квадрантын толтыру үшін Gallery2 басқару элементін жылжытыңыз және өлшемін өзгертіңіз.

  10. (міндетті емес) Келесі суретте көрсетілгендей Gallery2 үстіне көк Белгі басқару элементін қосыңыз.

  11. Формула жолағында, Gallery2 басқару элементінің Элементтер сипатын Gallery1.Selected.Reservations деп орнатыңыз.

    Gallery2 элементтерін конфигурациялаңыз.

  12. Сипаттар тақтасында Gallery2 басқару элементінің Орналасу опциясын Атау мәніне орнатыңыз.

    Gallery2 орналасуын конфигурациялаңыз.

  13. Gallery2 ішінде Ашық тізім басқару элементін қосыңыз, оның аты ComboBox1 екеніне көз жеткізіңіз, содан кейін Gallery2 ішіндегі басқа басқару элементтерін бұғаттамау үшін оны жылжытыңыз және өлшемін өзгертіңіз.

  14. Сипаттар қойыншасында ComboBox1 басқару элементінің Элементтер сипатын Өнімдер деп орнатыңыз.

  15. Сипаттар қойыншасында төмен қарай айналдырыңыз және ComboBox1 басқару элементінің Бірнеше таңдауға рұқсат ету сипатын Өшірулі күйіне орнатыңыз.

  16. Формула жолағында, ComboBox1 басқару элементінің DefaultSelectedItems сипатын ThisItem.'Product Reservation' деп орнатыңыз.

    ReserveCombo үшін DefaultSelectedItems орнатыңыз.

  17. Gallery2 ішінде NextArrow2 басқару элементінің OnSelect сипатын мына формулаға орнатыңыз:

    Relate( ComboBox1.Selected.Reservations, ThisItem )
    

    Пайдаланушы осы белгішені таңдағанда, ағымдағы резервтеу пайдаланушы ComboBox1 ішінде таңдаған өнімге өзгереді.

    NextArrow2 конфигурациялаңыз.

  18. Бағдарламаны алдын ала қарау режимінде сынау үшін F5 пернесін басыңыз.

Бұл бағдарлама арқылы пайдаланушы резервтеуді бір өнімнен басқасына жылжыта алады. Бір өнімдегі резервтеу үшін пайдаланушы ComboBox1 ішінде басқа өнімді пайдалана алады, содан кейін резервтеуді өзгерту үшінNextArrow2 басқару элементін таңдай алады.

Бір-көпке бағдарламасында Relate функциясын көрсетіңіз.

Unrelate функциясы

Бұл кезде қатынасты бір жазбадан басқасына жылжытуға болады, бірақ қатынасты мүлде жою мүмкін емес. Unrelate функциясын резервтеу жазбасын кез келген өнімнен ажырату үшін пайдалануға болады.

  1. Көрініс қойындысында Деректер көздері опциясын таңдаңыз.

  2. Деректер тақтасында Деректер көзін қосу>Microsoft Dataverse>Резервтеулер>Қосылу тармағын таңдаңыз.

  3. Gallery2 ішінде NextArrow2 басқару элементінің OnSelect сипатын мына формулаға орнатыңыз:

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

    Оң жақ белгішені конфигурациялаңыз.

  4. Таңдау, содан кейін Ctrl-C пернелер тіркесімін басу арқылы Gallery2 басқару элементін аралық сақтағышқа көшіріңіз.

  5. Ctrl-V пернелер тіркесімін басу арқылы Gallery2 көшірмесін дәл сол экранға қойыңыз, содан кейін оны экранның төменгі оң жақ квадрантына жылжытыңыз.

  6. (міндетті емес) Gallery2 үстіне белгі қосқан болсаңыз, сол белгі үшін алдыңғы екі қадамды қайталаңыз.

  7. Gallery2 көшірмесінің аты Gallery2_1 екеніне көз жеткізіңіз, содан кейін оның Элементтер сипатын мына формулаға орнатыңыз:

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

    Өкілеттеу туралы ескерту көрінеді, бірақ бұл мысалдағы шағын деректер мөлшерінде ол маңызды емес.

    Gallery2_1 басқару элементінің

Бұл өзгертулер арқылы, пайдаланушылар адам өнімді резервтемеген болса, сол контакт үшін ComboBox1 ішіндегі таңдауды тазалай алады. Өнімді резервтемеген контактілер Gallery2_1 ішінде көрінеді, мұнда пайдаланушылар әр контактіні өнімге белгілей алады.

Бір-көпке бағдарламасында Relate және Unrelate функцияларын көрсетіңіз.

Көп-көпке

Көп-көпке қатынасын жасау

Үлгі деректері көбісі көпке қатынасын қамтымайды, бірақ сіз өнімдер кестесі мен контактілер кестесі арасында қатынас жасайсыз. Пайдаланушылар әр өнімді бірнеше контактіге және әр контактіні бірнеше өнімге қатысты ете алады.

  1. Осы беттен сол жақ навигация тақтасынан Деректер қойыншасын таңдаңыз, содан кейін Кестелер бөлімін таңдаңыз.

    Кестелер тізімін ашыңыз.

  2. Барлық кестелерді қамту үшін кесте сүзгісін өзгертіңіз.

    Әдепкі бойынша үлгі кестелер пайда болмайды.

    Кесте сүзгісін жойыңыз.

  3. Төмен айналдырыңыз, Өнім кестесін ашыңыз және Қатынастар параметрін таңдаңыз.

  4. Қатынас қосу>Көп-көпке тармағын таңдаңыз.

  5. Қатынас үшін Контакт кестесін таңдаңыз.

  6. Дайын>Кестені сақтау тармағын таңдаңыз.

Контактілерді бір немесе көбірек өніммен қатысты ету және қатысты емес ету

Сіз осы тақырыпта бұрынырақ жасағанға ұқсайтын тағы бір бағдарламаны жасайсыз, бірақ жаңа бағдарлама көп-көпке қатынасын ұсынады. Әр контакт тек біреудің орнына бірнеше өнімді резервтей алады.

  1. Планшеттерге арналған бос бағдарламада осы тақырыптағы бірінші процедурада сипатталғандай Gallery1 басқару элементін жасаңыз.

  2. Тағы бір бос тік Галерея басқару элементін қосыңыз, оның атауы Gallery2 екеніне көз жеткізіңіз, содан кейін оны экранның жоғарғы оң жақ бұрышына жылжытыңыз.

    Осы тақырыпта кейінірек сіз Gallery2 астында Ашық тізім басқару элементін қосасыз.

  3. Формула жолағында, Gallery2 басқару элементінің Элементтер сипатын Gallery1.Selected.Contacts деп орнатыңыз.

    ContactsGallery конфигурациялау - элементтер сипаты.

  4. Сипаттар қойыншасында Орналасу опциясын Кескін және атау мәніне орнатыңыз.

    ContactsGallery конфигурациялау - орналасуы.

  5. Gallery2 ішінде Белгі басқару элементінің атауы Title2 екеніне көз жеткізіңіз, содан кейін оның Мәтін сипатын ThisItem.'Full Name' деп орнатыңыз.

    Сіз осы процедураны аяқтағанша және өнімге контактіні белгілегенше бұл басқару элементінде ешбір мәтін көрінбейді.

    Контактінің атын көрсетіңіз.

  6. NextArrow2 басқару элементін жойыңыз, Бас тарту белгішесін кірістіріңіз және оның аты icon1 екеніне көз жеткізіңіз.

  7. Бас тарту белгішесінің OnSelect сипатын мына формулаға орнатыңыз:

    Unrelate( Gallery1.Selected.Contacts, ThisItem )
    

  8. Көрініс қойыншасында Деректер көздері опциясын таңдаңыз.

  9. Деректер тақтасында Деректер көзін қосу>Microsoft Dataverse>Контактілер>Қосылу тармағын таңдаңыз.

  10. Gallery2 астында Ашық тізім басқару элементін қосыңыз, оның аты ComboBox1 екеніне көз жеткізіңіз, содан кейін оның Элементтер сипатын Контактілер деп орнатыңыз.

    Ашық тізімнің

  11. Сипаттар қойыншасында Бірнеше таңдауға рұқсат ету сипатын Өшірулі күйіне орнатыңыз.

    Ашық тізімнің

  12. Қосу белгішесін кірістіріп, оның OnSelect сипатын мына формулаға орнатыңыз:

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

Бұл бағдарлама арқылы пайдаланушылар енді контактілер жиынын әр өнімге еркін қатысты ете алады және қатысты емес ете алады.

  • Контактіні өнімге қосу үшін экранның төменгі жағындағы ашық тізімде контактіні таңдаңыз, содан кейін Қосу белгішесін таңдаңыз.

  • Контактіні өнімнен жою үшін сол контакт үшін Бас тарту белгішесін таңдаңыз.

    Бір-көпке қатынасынан ерекшелігі, көп-көпке қатынасы пайдаланушыларға бір контактіні бірнеше өніммен байланыстыруға рұқсат етеді.

Көп-көпке бағдарламасында Relate және Unrelate функцияларын көрсетіңіз.

Керісінше: өнімдерді бірнеше контактімен қатысты ету және қатысты емес ету

Көп-көпке қатынастары симметриялық болып табылады. Өнімдерді контактіге қосу, содан кейін қатынас бағыттардың біреуінен қалай көрінетінін көрсету үшін екі экран арасында ауысуға болады.

  1. Screen1 басқару элементінің OnVisible сипатын Refresh( Products ) деп орнатыңыз.

    Біреуі көпке немесе көбісі көпке қатынасын жаңартқанда, Байланыстыру немесе Ажырату қоңырауының бірінші аргументінің деректері ғана жаңартылады. Осы бағдарламаның экрандары арасында ауысқыңыз келсе, екіншісін қолмен жаңарту керек.

    OnVisible сипатын Refresh функциясына орнатыңыз.

  2. Screen1 көшірмесін жасаңыз.

    Көшірменің атауы Screen1_1 болады және контактілер жағынан қатынастарға қараудың негізін құрайды.

    Экран көшірмесін жасаңыз.

  3. Кері көріністі жасау үшін 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 )

    Нәтиже алдыңғы экранға өте ұқсас болады, бірақ Контактілер жағындағы қатынаста келеді.

    Контактілермен басталатын көп-көпке қатынасын көрсетіңіз.

  4. Жоғары төмен көрсеткілері белгішесін кірістіріңіз және оның OnSelect сипатын Navigate( Screen1, None ) деп орнатыңыз. Navigate( Screen1_1, None ) формуласы бар Screen1 басқару элементінде дәл осыны істеңіз.

    Экрандар арасында навигацияны қосыңыз.

Бұл жаңа экран арқылы пайдаланушылар өнімге контактіні қоса алады, содан кейін контактілер көрінісін ауыстырып, байланысты өнімді көре алады. Қатынастар симметриялық болады және екі экран арасында бөлісіледі.

Көп-көпке қатынасын жақтардың біреуінен көрсетіңіз.