Делите путем


Повезане и неповезане функције

Важи за: Цанвас апликације Модел-дривен апликације

Повезује записе две табеле кроз релацију један-према-више или више-према-више или раскида релацију између њих.

Опис

Функција Relate повезује записе два ентитета кроз релацију „један према више“ или „више према више“ у Microsoft Dataverse. Функција Unrelate преокреће процес и уклања везу.

За релације један-према-више, табела „Више“ има поље страног кључа које упућује на запис табеле „Један“. Relate поставља ово поље тако да показује на одређени запис табеле „Један“, док Unrelate поставља ово поље на празно. Ако је поље већ постављено када се позива Relate, постојећа веза се губи у корист нове везе. Ово поље такође можете подесити користећи функцију Patch или контролу Уређивање обрасца; не морате да користите функцију Relate.

За релације „више према више“, систем који повезује записе одржава скривену табелу придруживања. Не можете директно да приступите овој табели придруживања; она може се читати само кроз пројекцију „један према више“ и поставити путем функције Relate и Unrelate. Ниједна повезана табела нема страни кључ.

Подаци за табелу коју наведете у првом аргументу биће освежени да одражавају промену, али подаци за табелу коју наведете у другом аргументу неће. Ти подаци се морају ручно освежити помоћу функције Refresh да би се приказали резултати операције.

Ове функције никада не стварају нити бришу запис. Они само повезују два записа која већ постоје или раскидају везу између њих.

Ове функције можете користити само у оквиру формула понашања.

Белешка

Ове функције су део функције прегледа, а њихово понашање је доступно само када је омогућена функција Релациони подаци, скупови опција и друге нове функције за CDS. Ово је поставка на нивоу апликације која је подразумевано омогућена за нове апликације. Да бисте пронашли овај прекидач функција, изаберите опцију Поставке, а затим изаберите Предстојеће функције. Ваше повратне информације су нам веома корисне – јавите нам шта мислите у Power Apps форумима заједнице.

Синтакса

Relate( Table1RelatedTable, Table2Record )

  • Table1RelatedTable – Обавезно. За запис из Table1, табела записа Table2 повезана кроз релацију један-према-више или више-према-више.
  • Table2Record – Обавезно. Запис Table2 за додавање у релацију.

Unrelate( 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. На картици Уметање, додајте празну вертикалну контролу Галерија.

  5. Уверите се да контрола коју сте управо додали има назив Галерија1, а затим је померите и промените јој величину да бисте испунили леву страну екрана.

  6. На картици Својства, поставите својство Галерија1Предмети на Производи и његов Распоред на Слика и наслов.

    Конфигуришите Галерија производа.

  7. У Галерија1, уверите се да контрола Ознака има назив Наслов1, а затим поставите њено својство Текст на ThisItem.Name.

    Конфигуришите ознаку у Галерији1.

  8. Изаберите екран да не бисте убацили следећу ставку у Галерија1. Додајте другу празну вертикалу контроле Галерија и осигурајте да она има назив Галерија2.

    Галерија2 ће приказати резервације за било који производ који корисник одабере у Галерија1.

  9. Преместите и промените величину за Галерија2 да бисте испунили горњи десни квадратни екрана.

  10. (опционо) Додајте плаву контролу Ознака изнад Галерија2, као што приказује следећа слика.

  11. У траци са формулама поставите својство Предмети за Галерија2 на Gallery1.Selected.Reservations.

    Конфигуришите ставке за Галерија2.

  12. У окну својстава, поставите Распоред за Галерија2 на Наслов

    Конфигуришите распоред за Галерија2.

  13. У Галерија2, додајте контролу Комбиновани оквир, осигурајте да има назив Комбиновани оквир, а затим је преместите и промените јој величину да не бисте блокирали остале контроле Галерија2.

  14. На картици Својства, поставите својство за Комбиновани оквир, Предмети на Производи.

    Поставите својство предмета на производе.

  15. Померите се надоле на картици Својства и поставите својство за Комбиновани оквир1, Дозволи вишеструки избор, на Искључено.

    Поставите Омогући искључивање вишеструког избора.

  16. У траци са формулама подесите својство Комбиновани оквир1, DefaultSelectedItems, на ThisItem.'Product Reservation'.

    Подесите DefaultSelectedItems за ReserveCombo.

  17. У Галерија2, подесите својство NextArrow2, OnSelect, према овој формули:

    Relate( ComboBox1.Selected.Reservations, ThisItem )
    

    Када корисник одабере ову икону, тренутна резервација се мења у производ који је корисник изабрао Комбиновани оквир1.

    Конфигуришите NextArrow2.

  18. Притисните F5 да бисте тестирали апликацију у режиму прегледа.

Помоћу ове апликације корисник може преместити резервацију са једног производа на други. За резервацију на једном производу, корисник може одабрати други производ у Комбиновани оквир1, а затим може изабрати NextArrow2 да промени резервацију.

Демонстрирање функције односа у апликацији „један према више“.

Функција Unrelate

У овом тренутку можете релацију преместити из једног записа у други, али је не можете у потпуности уклонити. Можете користити функцију Unrelate за искључивање записа о резервацији с било којег производа.

  1. На картици Приказ изаберите Извори података.

  2. У окну Подаци изаберите Додај извор података>Microsoft Dataverse>Резервације>Повежи.

  3. У Галерија2, подесите формулу OnSelect за NextArrow2, према овој формули:

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

    Конфигуришите икону Десно.

  4. Копирајте Галерија2 у оставу тако што ћете је одабрати, а затим притиснути Ctrl-C.

  5. Налепите дупликат Галерија2 на исти екран притиском на Ctrl-V, а затим га преместите у доњи десни квадрант на екрану.

  6. (опционално) Ако сте горе додали ознаку Галерија2, поновите претходна два корака за ту ознаку.

  7. Уверите се да се дупликат Галерија2 зове Галерија2_1, а затим поставите њено својство Предмети према овој формули:

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

    Појављује се упозорење делегације, али нема везе са малом количином података у овом примеру.

    Подешавање својства Items у Галерији2_1.

Овим изменама корисници могу обрисати избор у Комбиновани оквир1 за контакт, ако та особа није резервисала производ. Контакти који нису резервисали производ приказују се у Галерија2_1 где корисници могу доделити сваки контакт производу.

Демонстрирање функције Relate и Unrelate у апликацији „један према више“.

Више према више

Креирај релацију „више према више“

Пробни подаци не обухватају релацију више-према-више, али креираћете једну између табеле Производи и табеле Контакти. Корисници могу да повежу сваки производ са више контаката, а сваки контакт са више производа.

  1. На овој страници изаберите Подаци у левој траци за навигацију, а затим изаберите Табеле.

    Отворена листа табеле.

  2. Промените филтер табеле тако да укључује све табеле.

    Пробне табеле се не приказују подразумевано.

    Уклањање филтера табеле.

  3. Померите се надоле, отворите табелу Производ и изаберите Релације.

  4. Изаберите Додавање релације>Више према више.

  5. Изаберите табелу Контакт за релацију.

  6. Изаберите Готово>Сачувај табелу.

Повезивање контаката са једним или више производа или раскид веза између њих

Направићете другу апликацију која подсећа на ону коју сте направили раније у овој теми, али нова апликација ће понудити везу „више према више“. Сваки контакт ће моћи да резервише више производа уместо само једног.

  1. У празној апликацији за таблете креирајте Галерија1 као што описује први поступак у овој теми.

  2. Додајте још празну вертикалну контролу Галерија, осигурајте да се зове Галерија2, а затим је преместите у горњи десни угао екрана.

    Касније у овој теми, додаћете контролу Комбиновани оквир у оквиру Галерија2.

  3. У траци са формулама поставите својство Предмети за Галерија2 на Gallery1.Selected.Contacts.

    Конфигуришите ContactsGallery – својство Items.

  4. На картици Својства, подесите Распоред на Слика и наслов.

    Конфигурисање ContactsGallery – распоред.

  5. У Галерија2, уверите се да контрола Ознака има назив Наслов2, а затим поставите њено својство Текст на ThisItem.'Full Name'.

    На тој контроли се неће појавити текст док не завршите овај поступак и не доделите контакт производу.

    Прикажи име контакта.

  6. Избришите NextArrow2, уметните икону Откажи и уверите се да има назив icon1.

  7. Подесите својство OnSelect иконе Откажи на ову формулу:

    Unrelate( Gallery1.Selected.Contacts, ThisItem )
    

    Конфигуришите икону Откажи.

  8. На картици Приказ изаберите Извори података.

  9. У окну Подаци изаберите Додај извор података>Microsoft Dataverse>Контакти>Повежи.

  10. У оквир Галерија2, додајте контролу Комбиновани оквир, осигурајте да се зове Комбиновани оквир1, а затим поставите својство Предмети на Контакти.

    Конфигуришите својство Предмети комбинованог оквира.

  11. На картици Својства, поставите Дозволи вишеструки избор на Искључено.

    Конфигуришите својство Распоред комбинованог оквира.

  12. Уметните икону Додај и подесите њено својство OnSelect према овој формули:

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

    Конфигуришите икону Додај.

Помоћу ове апликације корисници сада могу слободно да повежу скуп контаката са сваким производом и да раскину везу између њих.

  • Да бисте производу додали контакт, изаберите контакт у комбинованом пољу на дну екрана, а затим изаберите икону Додај.

  • Да бисте уклонили контакт из производа, изаберите икону Откажи за тај контакт.

    За разлику од релације „један према више“, релација „више према више“ омогућава корисницима да повежу исти контакт са више производа.

Демонстрирање функције Relate и Unrelate у апликацији „више према више“.

Обрнуто: повежите и производе са више контаката и раскините везу између њих

Релације „више према више“ су симетричне. Можете проширити пример да бисте додали производе у контакт и затим прешли између два екрана да бисте показали како се релација појављује из било којег смера.

  1. Подесите својство OnVisible за Screen1 на Refresh( Products ).

    Када ажурирате релацију један-према-више или више-према-више, освежавају се само подаци табеле првог аргумента позива функције Relate или Unrelate. Други мора да се освежи ручно ако желите да прелазите између екрана ове апликације.

    Подесите својство 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 ). Урадите исто на Screen1 помоћу формуле Navigate( Screen1_1, None ).

    Додајте навигацију између екрана.

Помоћу овог новог екрана корисници могу да додају контакт производу, а затим прелазе на преглед контаката и виде повезани производ. Релације су симетричне и деле се између два екрана.

Демонстрирање релације „више према више“ на било којој страни.