Kongsi melalui


Fungsi berkaitan dan tidak berkaitan

Digunakan pada: Aplikasi kanvas Apl berpandukan model

Kaitkan dan nyahkait rekod dua jadual melalui perhubungan satu kepada banyak atau banyak kepada banyak.

Penerangan

Fungsi Relate memautkan dua rekod melalui perhubungan satu ke banyak atau banyak ke banyak dalam Microsoft Dataverse. Fungsi Unrelate menterbalikkan proses dan mengeluarkan pautan.

Untuk perhubungan satu kepada banyak, Kebanyakan jadual mempunyai medan kekunci asing yang menunjuk kepada rekod jadual Satu. Relate menetapkan medan ini untuk menunjuk kepada rekod khusus jadual Satu, manakala Unrelate menetapkan medan ini kepada kosong. Jika medan telah ditetapkan apabila Berkaitan dipanggil, pautan sedia ada hilang mengambil kira pautan yang baharu. Anda juga boleh menetapkan medan dengan menggunakan fungsi Patch atau kawalan Edit form; anda tidak perlu menggunakan fungsi Relate.

Untuk perhubungan banyak ke banyak, sistem yang memaut rekod mengekalkan jadual cantuman tersembunyi. Anda tidak boleh mengakses jadual cantuman secara terus; ia hanya boleh dibaca melalui unjuran satu ke banyak melalui fungsi Relate dan Unrelate. Jadual berkenaan tidak mempunyai kekunci asing.

Data untuk jadual yang anda tentukan dalam argumen pertama akan disegar semula untuk menunjukkan perubahan, tetapi bukan data untuk jadual yang anda tentukan dalam argumen kedua. Data mesti disegar semula secara manual dengan fungsi Refresh untuk menunjukkan hasil operasi.

Fungsi ini tidak akan mencipta atau memadam rekod. Ia hanya akan mengaitkan atau tidak mengaitkan dua rekod yang telah wujud.

Anda boleh menggunakan fungsi ini hanya dalam formula tingkah laku.

Nota

Fungsi ini adalah sebahagian ciri pratonton, dan tingkah lakunya tersedia hanya apabila ciri Data perhubungan, set pilihan, dan ciri baharu yang lain untuk CDS tersedia. Ini adalah penetapan peringkat aplikasi yang tersedia secara lalai untuk aplikasi baharu. Untuk mencari suis ciri ini, pilih Tetapan dan kemudian pilih Ciri akan datang. Maklum balas anda sangat berharga kepada kami - sila maklum kepada kami pendapat anda dalam Forum komuniti Power Apps.

Sintaks

Kaitkan( Table1RelatedTable, Table2Record )

  • Table1RelatedTable - Diperlukan. Untuk rekod Table1, jadual rekod Table2 berkaitan dengan perhubungan satu kepada banyak atau banyak kepada banyak.
  • Table2Record - Diperlukan. Rekod Table2 untuk menambah perhubungan.

Nyahkait( Table1RelatedTable, Table2Record )

  • Table1RelatedTable - Diperlukan. Untuk rekod Table1, jadual rekod Table2 berkaitan dengan perhubungan satu kepada banyak atau banyak kepada banyak.
  • Table2Record - Diperlukan. Rekod Table2 untuk mengalih keluar daripada perhubungan.

Contoh

Pertimbangkan jadual Produk dengan perhubungan berikut seperti yang dilihat dalam alat pandang jadual portal Power Apps:

Nama paparan perhubungan Jadual berkaitan Jenis hubungan
Tempahan produk Tempahan Satu-kepada-ramai
Produk ↔ Kenalan Hubungan Banyak ke banyak

Produk dan Tempahan adalah berkaitan melalui perhubungan Satu ke Banyak. Untuk mengaitkan rekod pertama Tempahan dengan rekod pertama jadual Produk:

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

Untuk mengeluarkan perhubungan antara rekod ini:

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

Kami mencipta dan mengeluarkan rekod dalam masa yang singkat, hanya perhubungan antara rekod diubah suai.

Produk dan Kenalan adalah berkaitan melalui perhubungan Banyak ke Banyak. Untuk mengaitkan rekod pertama jadual Kenalan dengan rekod pertama jadual Produk:

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

Oleh kerana perhubungan Banyak ke Banyak adalah simetri, kami juga boleh melakukan ini dalam yang bertentangan:

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

Untuk mengeluarkan perhubungan antara rekod ini:

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

atau:

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

Semakan seterusnya melakukan operasi ini pada jadual ini menggunakan aplikasi dengan kawalan Galeri dan Kotak kombo untuk memilih rekod yang terlibat.

Contoh ini bergantung pada data sampel yang sedang dipasang dalam persekitaran anda. Sama ada mencipta persekitaran percubaan termasuk data sampel atau menambah data sampel ke persekitaran sedia ada.

Satu-kepada-ramai

Fungsi Berkaitan

Mula sekali anda akan mencipta aplikasi mudah untuk melihat dan memperuntukkan semula tempahan yang berkaitan dengan produk.

  1. Cipta aplikasi tablet dari mula.

  2. Pada tab Pandangan, pilih Sumber data.

  3. Dalam anak tetingkap Data, pilih Tambah data> pilih Produk.
    Jadual Produk adalah sebahagian daripada data sampel yang dimuatkan di atas.

  4. Pada tab Sisipkan, tambah kawalan Galeri menegak yang kosong.

  5. Pastikan kawalan yang anda baru tambah dinamakan sebagai Gallery1, dan kemudian gerakkan dan ubah saiz untuk memenuhi skrin di sebelah kiri.

  6. Pada tab Sifat, tetapkan sifat Item' Gallery1 ke Produk dan tataletak ke Imej dan tajuk.

    Konfigurasikan ProductsGallery.

  7. Pada Gallery1, pastikan kawalan Label dinamakan Title1, dan kemudian tetapkan sifat Teks ke ThisItem.Name.

    Konfigurasikan label dalam Gallery1.

  8. Pilih skrin untuk mengelakkan daripada memasuki item seterusnya ke dalam Gallery1. Tambahkan kawalan menegak kosong yang kedua Gallery, dan pastikan ia dinamakan Gallery2.

    Gallery2 akan menunjukkan tempahan untuk mana-mana produk yang dipilih oleh pengguna dalam Gallery1.

  9. Gerakkan dan ubahkan saiz Gallery2 bagi memenuhi sukuan sebelah kanan atas skrin .

  10. (pilihan) Tambah kawalan Label biru di atas Gallery2, sebagai pertunjukan grafik yang seterusnya.

  11. Dalam bar formula, tetapkan sifat Item Gallery2 ke Gallery1.Selected.Reservations.

    Konfigurasikan Item Gallery2.

  12. Dalam anak tetingkap sifat, tetapkan Tataletak Gallery2 ke Tajuk.

    Konfigurasikan Tataletak Gallery2.

  13. Dalam Gallery2, tambah kawalan Combo box, pastikan ia dinamakan sebagai ComboBox1, dan kemudian gerakkan dan ubahkan saiznya untuk mengelak penyekatan kawalan lain dalam Gallery2.

  14. Pada tab Sifat, tetapkan sifat Item ComboBox1 ke Produk.

    Tetapkan sifat Item ke Produk.

  15. Tatal ke bawah dalam tab Sifat dan tetapkan sifat ComboBox1' Benarkan berbilang pilihan ke Mati.

    Tetapkan Benarkan pemilihan berbilang ke Mati.

  16. Dalam bar formula, tetapkan sifat ComboBox1 DefaultSelectedItems ke ThisItem.'Product Reservation'.

    Tetapkan DefaultSelectedItems untuk ReserveCombo.

  17. Pada Gallery2, tetapkan sifat NextArrow2' OnSelect ke formula ini:

    Relate( ComboBox1.Selected.Reservations, ThisItem )
    

    Apabila pengguna memilih ikon ini, tempahan semasa berubah ke produk yang pengguna pilih dalam ComboBox1.

    Konfigurasikan NextArrow2.

  18. Tekan F5 untuk menguji aplikasi dalam mod Pratonton.

Dengan aplikasi ini, pengguna boleh menggerakkan tempahan daripada satu produk ke produk yang lain. Untuk tempahan pada satu produk, pengguna boleh memilih produk yang berbeza dalam ComboBox1 dan kemudian pilih NextArrow2 untuk mengubah tempahan itu.

Menunjukkan fungsi Berkaitan dalam aplikasi satu kepada banyak.

Fungsi Tidak Berkaitan

Pada peringkat ini, anda boleh menggerakkan perhubungan daripada satu rekod ke yang lain, tetapi anda tidak boleh mengeluarkan perhubungan sekali. Anda boleh menggunakan fungsi Unrelate untuk memutuskan sambungan tempahan rekod daripada mana-mana produk.

  1. Pada tab Pandangan, pilih Sumber data.

  2. Pada anak tetingkap Data, pilih Tambah sumber data>Microsoft Dataverse>Tempahan>Connect.

  3. Pada Gallery2, tetapkan formula OnSelect untuk NextArrow2 ke formula ini:

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

    Konfigurasikan ikon Kanan.

  4. Salin Gallery2 ke Papan Klip dengan memilihnya dan kemudian menekan Ctrl-C.

  5. Tampal pendua Gallery2 ke skrin yang sama dengan menekan Ctrl-V, dan kemudian menggerakkannya ke sukuan sebelah kanan bawah skrin.

  6. (pilihan) Jika anda menambah label di atas Gallery2, ulangi dua langkah terdahulu untuk label itu.

  7. Pastikan pendua Gallery2 dinamakan Gallery2_1, dan kemudian tetapkan sifat Item ke formula ini:

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

    Amaran perwakilan dipaparkan, tetapi ia tidak penting dengan dengan amaun data yang kecil dalam contoh ini.

    Tetapkan sifat Item Gallery2_1.

Dengan perubahan ini, pengguna boleh mengosongkan pemilihan dalam ComboBox1 untuk kenalan jika orang itu belum menempah produk. Kenalan yang belum menempah produk dipaparkan dalam Gallery2_1 di mana pengguna boleh menugaskan setiap kenalan dengan produk.

Menunjukkan fungsi Berkaitan dengan Tidak Berkaitan dalam aplikasi satu kepada banyak.

Banyak ke banyak

Cipta perhubungan banyak ke banyak

Data sampel tidak termasuk perhubungan banyak kepada banyak, tetapi anda akan mencipta satu antara jadual Produk dan jadual Kenalan. Pengguna boleh mengaitkan setiap produk ke lebih daripada satu kenalan dan setiap kenalan ke lebih daripada satu produk.

  1. Daripada halaman ini, pilih Data dalam bar navigasi kiri dan kemudian pilih Jadual.

    Buka senarai jadual.

  2. Tukar penapis jadual untuk memasukkan semua jadual.

    Secara lalai, jadual sampel tidak muncul.

    Alih keluar penapis jadual.

  3. Tatal ke bawah, buka jadual Produk dan pilih Perhubungan.

  4. Pilih Tambah perhubungan>Banyak ke banyak.

  5. Pilih jadual Kenalan untuk perhubungan.

  6. Pilih Selesai>Simpan jadual.

Kenalan berkaitan dan tidak berkaitan dengan satu atau lebih produk

Anda akan mencipta aplikasi lain yang menyerupai yang anda cipta terdahulu dalam topik ini, tetapi aplikasi baharu akan menawarkan perhubungan banyak ke banyak. Setiap kenalan akan boleh menempah berbilang produk berbanding hanya satu.

  1. Dalam aplikasi kosong untuk tablet, cipta Gallery1 sebagai prosedur pertama dalam penerangan topik ini.

  2. Tambahkan kawalan Gallery menegak kosong yang lain, pastikan ia dinamakan Gallery2, dan kemudian gerakkannya ke dalam sudut kanan atas skrin.

    Kemudian dalam topik ini, anda akan menambah kawalan Kotak Kombo di bawah Gallery2.

  3. Dalam bar formula, tetapkan sifat Gallery2' Items ke Gallery1.Selected.Contacts.

    Konfigurasikan ContactsGallery - Sifat item.

  4. Pada tab Sifat, tetapkan Tataletak ke Imej dan tajuk.

    Konfigurasikan ContactsGallery - Tataletak.

  5. Pada Gallery2, pastikan kawalan Label dinamakan Title2, dan kemudian tetapkan sifat Teks ke ThisItem.'Full Name'.

    Tiada teks akan dipaparkan dalam kawalan hingga anda menyelesaikan prosedur ini dan menugaskan kenalan ke produk.

    Tunjukkan nama kenalan.

  6. Padam NextArrow2, sisipkan ikon Batal, dan pastikan ia dinamakan icon1.

  7. Tetapkan ikon Batal sifat OnSelect ke formula ini:

    Unrelate( Gallery1.Selected.Contacts, ThisItem )
    

    Konfigurasikan ikon Batal.

  8. Pada tab Pandangan, pilih Sumber data.

  9. Pada anak tetingkap Data, pilih Tambah sumber data>Microsoft Dataverse>Kenalan>Connect.

  10. Di bawah Gallery2, tambah kawalan Kotak kombo, pastikan ia dinamakan ComboBox1, dan kemudian tetapkan sifat Item ke Kenalan.

    Konfigurasikan sifat item kotak kombo.

  11. Pada tab Sifat, tetapkan Benarkan pemilihan berbilang ke Mati.

    Konfigurasikan sifat Tataletak kotak kombo.

  12. Sisipkan ikon Tambah, dan tetapkan sifat OnSelect ke formula ini:

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

    Konfigurasikan ikon Tambah.

Dengan aplikasi ini, pengguna boleh dengan bebas mengaitkan dan tidak mengaitkan set kenalan ke setiap produk.

  • Untuk menambah kenalan ke produk, pilih kenalan dalam kotak kombo pada bahagian bawah skrin, dan kemudian pilih ikon Tambah.

  • Untuk mengeluarkan kenalan daripada produk, pilih ikon Batal untuk kenalan itu.

    Tidak seperti perhubungan satu ke banyak, perhubungan banyak ke banyak membenarkan pengguna untuk mengaitkan kenalan yang sama dengan berbilang produk.

Menunjukkan fungsi Berkaitan dan Tidak Berkaitan dalam aplikasi banyak kepada banyak.

Sebaliknya: produk berkaitan dan tidak berkaitan dengan berbilang kenalan

Perhubungan banyak ke banyak adalah simetri. Anda boleh memperluaskan contoh untuk menambah produk ke kenalan dan kemudian menukar antara dua skrin untuk menunjukkan bagaimana perhubungan dipaparkan daripada kedua-dua arah.

  1. Tetapkan sifat OnVisible untuk Screen1 ke Segar Semula( Produk ).

    Apabila anda mengemas kini perhubungan satu kepada banyak atau banyak kepada banyak, hanya data jadual argumen pertama panggilan Relate atau Unrelate akan disegar semula. Kedua mesti disegar semula secara manual jika anda mahu menukar antara skrin aplikasi ini.

    Tetapkan sifat OnVisible ke fungsi Segar Semula.

  2. Pendua Screen1.

    Pendua akan dinamakan Screen1_1 dan membentuk asas untuk mencari perhubungan daripada sebelah kenalan.

    Duplikasikan skrin.

  3. Untuk mencipta pandangan terbalik, ubah formula ini pada kawalan 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 )

    Hasil akan kelihatan serupa dengan skrin sebelumnya tetapi datang daripada belah Kenalan.

    Tunjukkan perhubungan banyak kepada banyak bermula dengan kenalan.

  4. Masukkan ikon Anak panah atas bawah dan tetapkan sifat OnSelect ke Navigasi( Screen1, Tiada ). Lakukan perkara yang sama pada Screen1 dengan formula Navigasi( Screen1_1, Tiada ).

    Tambah navigasi antara skrin.

Dengan skrin baharu ini, pengguna boleh menambah kenalan ke produk dan kemudian tukarkannya ke pandangan kenalan untuk melihat produk berkaitan. Perhubungan adalah simetri dan dikongsi antara dua skrin.

Tunjukkan perhubungan banyak ke banyak daripada sebelah kiri atau kanan.