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.
Cipta aplikasi tablet dari mula.
Pada tab Pandangan, pilih Sumber data.
Dalam anak tetingkap Data, pilih Tambah data> pilih Produk.
Jadual Produk adalah sebahagian daripada data sampel yang dimuatkan di atas.Pada tab Sisipkan, tambah kawalan Galeri menegak yang kosong.
Pastikan kawalan yang anda baru tambah dinamakan sebagai Gallery1, dan kemudian gerakkan dan ubah saiz untuk memenuhi skrin di sebelah kiri.
Pada tab Sifat, tetapkan sifat Item' Gallery1 ke Produk dan tataletak ke Imej dan tajuk.
Pada Gallery1, pastikan kawalan Label dinamakan Title1, dan kemudian tetapkan sifat Teks ke ThisItem.Name.
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.
Gerakkan dan ubahkan saiz Gallery2 bagi memenuhi sukuan sebelah kanan atas skrin .
(pilihan) Tambah kawalan Label biru di atas Gallery2, sebagai pertunjukan grafik yang seterusnya.
Dalam bar formula, tetapkan sifat Item Gallery2 ke Gallery1.Selected.Reservations.
Dalam anak tetingkap sifat, tetapkan Tataletak Gallery2 ke Tajuk.
Dalam Gallery2, tambah kawalan Combo box, pastikan ia dinamakan sebagai ComboBox1, dan kemudian gerakkan dan ubahkan saiznya untuk mengelak penyekatan kawalan lain dalam Gallery2.
Pada tab Sifat, tetapkan sifat Item ComboBox1 ke Produk.
Tatal ke bawah dalam tab Sifat dan tetapkan sifat ComboBox1' Benarkan berbilang pilihan ke Mati.
Dalam bar formula, tetapkan sifat ComboBox1 DefaultSelectedItems ke ThisItem.'Product Reservation'.
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.
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.
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.
Pada tab Pandangan, pilih Sumber data.
Pada anak tetingkap Data, pilih Tambah sumber data>Microsoft Dataverse>Tempahan>Connect.
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 )
Salin Gallery2 ke Papan Klip dengan memilihnya dan kemudian menekan Ctrl-C.
Tampal pendua Gallery2 ke skrin yang sama dengan menekan Ctrl-V, dan kemudian menggerakkannya ke sukuan sebelah kanan bawah skrin.
(pilihan) Jika anda menambah label di atas Gallery2, ulangi dua langkah terdahulu untuk label itu.
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.
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.
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.
Daripada halaman ini, pilih Data dalam bar navigasi kiri dan kemudian pilih Jadual.
Tukar penapis jadual untuk memasukkan semua jadual.
Secara lalai, jadual sampel tidak muncul.
Tatal ke bawah, buka jadual Produk dan pilih Perhubungan.
Pilih Tambah perhubungan>Banyak ke banyak.
Pilih jadual Kenalan untuk perhubungan.
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.
Dalam aplikasi kosong untuk tablet, cipta Gallery1 sebagai prosedur pertama dalam penerangan topik ini.
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.
Dalam bar formula, tetapkan sifat Gallery2' Items ke Gallery1.Selected.Contacts.
Pada tab Sifat, tetapkan Tataletak ke Imej dan tajuk.
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.
Padam NextArrow2, sisipkan ikon Batal, dan pastikan ia dinamakan icon1.
Tetapkan ikon Batal sifat OnSelect ke formula ini:
Unrelate( Gallery1.Selected.Contacts, ThisItem )
Pada tab Pandangan, pilih Sumber data.
Pada anak tetingkap Data, pilih Tambah sumber data>Microsoft Dataverse>Kenalan>Connect.
Di bawah Gallery2, tambah kawalan Kotak kombo, pastikan ia dinamakan ComboBox1, dan kemudian tetapkan sifat Item ke Kenalan.
Pada tab Sifat, tetapkan Benarkan pemilihan berbilang ke Mati.
Sisipkan ikon Tambah, dan tetapkan sifat OnSelect ke formula ini:
Relate( Gallery1.Selected.Contacts, ComboBox1.Selected )
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.
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.
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.
Pendua Screen1.
Pendua akan dinamakan Screen1_1 dan membentuk asas untuk mencari perhubungan daripada sebelah kenalan.
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.
- Screen1_1.OnVisible =
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 ).
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.