Fungsi Relate dan Unrelate
Berlaku untuk: Aplikasi
kanvas Aplikasi berdasarkan model
Relate dan unrelate mencatat dua tabel melalui relasi satu ke banyak atau banyak ke banyak.
KETERANGAN
Fungsi Relate menghubungkan dua rekaman melalui hubungan satu ke banyak atau banyak ke banyak di Microsoft Dataverse. Fungsi Unrelate akan membalikkan proses dan menghapus tautan.
Untuk Relasi satu ke banyak, tabel Banyak memiliki bidang kunci luar yang menunjuk ke rekaman tabel Satu. Relate akan mengatur bidang ini untuk mengarahkan ke rekaman tertentu dari tabel Satu, sedangkan Unrelate menetapkan bidang ini ke kosong. Jika bidang telah diatur saat Relate dipanggil, tautan yang ada akan hilang karena tautan baru. Anda juga dapat mengatur bidang ini menggunakan fungsi Patch atau kontrol Edit formulir; Anda tidak perlu menggunakan fungsi Relate.
Untuk hubungan banyak ke banyak, sistem yang menautkan rekaman mempertahankan tabel gabung tersembunyi. Anda tidak dapat mengakses tabel gabung ini secara langsung; tabel hanya dapat dibaca melalui proyeksi satu ke banyak dan diatur melalui fungsi Relate dan Unrelate. Tabel terkait tidak memiliki kunci luar.
Data untuk tabel yang Anda tentukan di argumen pertama akan di-refresh untuk mencerminkan perubahan, namun data untuk tabel yang Anda tentukan di argumen kedua tidak. Data tersebut harus di-refresh secara manual dengan fungsi Refresh untuk menampilkan hasil pengoperasian.
Fungsi ini tidak pernah membuat atau menghapus rekaman. Fungsi ini hanya menghubungkan atau tidak menghubungkan dua rekaman yang sudah ada.
Anda hanya dapat menggunakan fungsi ini dalam rumus perilaku.
Catatan
Fungsi ini adalah bagian dari fitur pratinjau, dan perilakunya tersedia hanya bila fitur Data relasional, rangkaian opsi, dan fitur baru lainnya untuk CDS diaktifkan. Ini adalah pengaturan tingkat aplikasi yang diaktifkan secara default untuk aplikasi baru. Untuk menemukan tombol fitur ini, pilih Pengaturan, lalu pilih fitur mendatang. Tanggapan Anda sangat berharga bagi kami-beri tahukan kami apa yang Anda pikirkan di Forum komunitas Power Apps.
Sintaks
Relate( Table1RelatedTable, Table2Record )
- Table1RelatedTable - Diperlukan. Untuk rekaman Table1, tabel dari rekaman Table2 terkait melalui relasi satu ke banyak atau banyak ke banyak.
- Table2Record - Diperlukan. Rekaman Table2 untuk ditambahkan ke relasi.
Unrelate( Table1RelatedTable, Table2Record )
- Table1RelatedTable - Diperlukan. Untuk rekaman Table1, tabel dari rekaman Table2 terkait melalui relasi satu ke banyak atau banyak ke banyak.
- Table2Record - Diperlukan. Rekaman Table2 untuk dihapus dari relasi.
Contoh
Pertimbangkan tabel Produk dengan Relasi berikut seperti yang terlihat pada penampil tabel portal Power Apps:
Nama tampilan hubungan | Tabel terkait | Jenis hubungan |
---|---|---|
Reservasi Produk | Reservasi | Satu ke Banyak |
Produk ↔ Kontak | Kontak | Banyak ke banyak |
Produk dan Reservasi terkait melalui relasi Satu ke Banyak. Untuk menghubungkan rekaman pertama tabel Reservasi dengan rekaman pertama tabel Produk:
Relate( First( Products ).Reservations, First( Reservations ) )
Untuk menghapus hubungan di antara rekaman ini:
Unrelate( First( Products ).Reservations, First( Reservations ) )
Dalam waktu singkat, kami membuat atau menghapus atau merekam, hanya hubungan antara rekaman yang dimodifikasi.
Produk dan Kontak terkait melalui hubungan Banyak ke Banyak. Untuk menghubungkan rekaman pertama tabel Kontak dengan rekaman pertama tabel Produk:
Relate( First( Products ).Contacts, First( Contacts ) )
Karena hubungan Banyak ke Banyak bersifat simetris, kita juga bisa melakukannya dalam arah yang berlawanan:
Relate( First( Contacts ).Products, First( Products ) )
Untuk menghapus hubungan di antara rekaman ini:
Unrelate( First( Products ).Contacts, First( Contacts ) )
atau:
Unrelate( First( Contacts ).Products, First( Products ) )
Langkah selanjutnya yang berikut melakukan persis operasi ini pada tabel ini menggunakan aplikasi dengan kontrol Galeri dan kotak Combo untuk memilih rekaman yang terlibat.
Contoh ini tergantung pada data sampel yang diinstal di lingkungan Anda. Buat lingkungan uji coba termasuk data sampel atau tambahkan data sampel ke lingkungan yang ada.
Satu ke Banyak
Fungsi Relate
Pertama, Anda akan membuat aplikasi sederhana untuk melihat dan menetapkan ulang reservasi yang terkait dengan produk.
Membuat aplikasi tablet dari kosong.
Pada tab Tampilkan, pilih Sumber data.
Di panel Data, pilih Tambah data> pilih Produk.
Tabel Produk adalah bagian dari data sampel yang dimuat di atas.Pada tab Sisipkan, tambahkan kontrol Galeri vertikal kosong.
Pastikan bahwa kontrol yang baru saja ditambahkan diberi nama Gallery1, lalu pindahkan dan ubah ukurannya untuk mengisi sisi kiri layar.
Pada tab Properti, atur properti Item Gallery1 untuk Produk dan Tata Letak untuk Gambar dan judul.
Di Gallery1, pastikan kontrol Label diberi nama Title1, lalu atur properti Teks ke ThisItem.Name.
Pilih layar untuk menghindari penyisipan item berikutnya ke Gallery1. Tambahkan kontrol Galeri vertikal kosong kedua, dan pastikan bernama Gallery2.
Gallery2 akan menampilkan reservasi untuk produk apa pun yang dipilih pengguna di Gallery1.
Pindahkan dan ubah ukuran Gallery2 untuk mengisi kuadran kanan atas layar.
(opsional) Tambahkan kontrol Label biru di atas Gallery2, seperti yang ditunjukkan grafik.
Di bilah rumus, atur properti Item pada Gallery2 ke Gallery1.Selected.Reservations.
Di panel properti, atur Tata Letak Gallery2 ke Title.
Di Gallery2, tambahkan kontrol Kotak kombo, pastikan diberi nama ComboBox1, lalu pindahkan dan ubah ukurannya agar tidak menghalangi kontrol lainnya di Gallery2.
Pada tab Properti, atur properti Item ComboBox1 ke Produk.
Gulir ke bawah di tab Properti dan atur properti Izinkan beberapa pilihan di ComboBox1 ke Nonaktif.
Di bilah rumus, atur properti DefaultSelectedItems ComboBox1 ke ThisItem.'Product Reservation'.
Di Gallery2, atur properti OnSelect NextArrow2 ke rumus ini:
Relate( ComboBox1.Selected.Reservations, ThisItem )
Bila pengguna memilih ikon ini, reservasi saat ini berubah ke produk yang dipilih pengguna di ComboBox1.
Tekan F5 untuk menguji aplikasi dalam mode Pratinjau.
Dengan aplikasi ini, pengguna dapat memindahkan reservasi dari satu produk ke produk lainnya. Untuk pemesanan satu produk, pengguna dapat memilih produk yang berbeda di ComboBox1, lalu memilih NextArrow2 untuk mengubah reservasi tersebut.
Fungsi Unrelate
Pada titik ini, Anda dapat memindahkan relasi dari satu rekaman ke rekaman lain, namun Anda tidak dapat menghapus relasi sama sekali. Anda dapat menggunakan fungsi Unrelate untuk memutuskan sambungan rekaman reservasi dari produk apa pun.
Pada tab Tampilkan, pilih Sumber data.
Pada panel Data, pilih Tambahkan sumber data>Microsoft Dataverse>Reservasi>Hubungkan.
Di Gallery2, atur rumus OnSelect untuk NextArrow2 ke rumus ini:
If( IsBlank( ComboBox1.Selected ), Unrelate( Gallery1.Selected.Reservations, ThisItem ), Relate( ComboBox1.Selected.Reservations, ThisItem ) ); Refresh( Reservations )
Salin Gallery2 ke Clipboard dengan memilihnya dan kemudian menekan CTRL-C.
Tempelkan duplikat Gallery2 ke layar yang sama dengan menekan Ctrl-V, lalu pindahkan ke kuadran kanan bawah layar.
(opsional) Jika Anda menambahkan label di atas Gallery2, ulangi dua langkah sebelumnya untuk label tersebut.
Pastikan bahwa duplikat Gallery2 diberi nama Gallery2_1, lalu atur properti Item ke rumus ini:
Filter( Reservations, IsBlank( 'Product Reservation' ) )
Peringatan delegasi muncul, namun tidak akan menjadi masalah dalam jumlah kecil data dalam contoh ini.
Dengan perubahan ini, pengguna dapat menghapus pilihan di ComboBox1 untuk kontak jika orang tersebut belum memesan produk. Kontak yang belum memesan produk muncul di Gallery2_1 tempat pengguna dapat menetapkan setiap kontak ke produk.
Banyak ke banyak
Membuat hubungan banyak ke banyak
Data sampel tidak mencakup relasi banyak ke banyak, namun Anda akan membuatnya antara tabel Produk dan tabel Kontak. Pengguna dapat mengaitkan setiap produk ke lebih dari satu kontak dan setiap kontak ke lebih dari satu produk.
Dari halaman ini, pilih Data di bilah navigasi kiri, lalu pilih Tabel.
Ubah filter tabel untuk mencakup semua tabel.
Secara default, tabel sampel tidak muncul.
Gulir ke bawah, buka tabel Produk, lalu pilih Relasi.
Pilih Tambahkan hubungan>Banyak ke banyak.
Pilih tabel Kontak untuk relasi.
Pilih selesai>Simpan tabel.
Menghubungkan dan menghapus hubungan kontak dengan satu atau beberapa produk
Anda akan membuat aplikasi lain yang mirip dengan yang Anda buat sebelumnya dalam topik ini, namun aplikasi baru akan menawarkan hubungan banyak ke banyak. Setiap kontak akan dapat memesan beberapa produk, bukan hanya satu.
Di aplikasi kosong untuk tablet, buat Gallery1 seperti yang dijelaskan prosedur pertama dalam topik ini.
Tambahkan kontrol Galeri vertikal kosong lainnya, pastikan bernama Gallery2, lalu pindahkan ke sudut kanan atas layar.
Selanjutnya di topik ini, anda akan menambahkan kontrol Combo box pada Gallery2.
Di bilah rumus, atur properti Item Gallery2 ke Gallery1.Selected.Contacts.
Pada tab Properti, atur Tata Letak ke Gambar dan judul.
Di Gallery2, pastikan kontrol Label diberi nama Title2, lalu atur properti Teks ke ThisItem.'Full Name'.
Teks tidak akan muncul dalam kontrol tersebut hingga Anda menyelesaikan prosedur ini dan menetapkan kontak ke produk.
Hapus NextArrow2, masukkan ikon Batalkan, dan pastikan diberi nama icon1.
Atur properti OnSelect ikon Batalkan ke rumus ini:
Unrelate( Gallery1.Selected.Contacts, ThisItem )
Pada tab Tampilkan, pilih Sumber data.
Pada panel Data, pilih Tambahkan sumber data>Microsoft Dataverse>Kontak>Hubungkan.
Pada Gallery2, tambahkan kontrol Kotak kombo, pastikan diberi nama ComboBox1, lalu atur properti Item ke Kontak.
Pada tab Properti, atur Izinkan beberapa pilihan ke Nonaktif.
Sisipkan ikon Tambah, dan atur properti OnSelect ke rumus ini:
Relate( Gallery1.Selected.Contacts, ComboBox1.Selected )
Dengan aplikasi ini, pengguna sekarang dapat dengan bebas menghubungkan dan membatalkan hubungan satu set kontak ke setiap produk.
Untuk menambahkan kontak ke produk, pilih kontak di kotak kombo di bagian bawah layar, lalu pilih ikon Tambah.
Untuk menghapus kontak dari produk, pilih ikon Batalkan untuk kontak tersebut.
Tidak seperti hubungan satu ke banyak, hubungan banyak ke banyak memungkinkan pengguna mengaitkan kontak yang sama dengan beberapa produk.
Secara terbalik: mengaitkan dan menghapus kaitan produk dengan beberapa kontak
Hubungan banyak ke banyak bersifat simetris. Anda dapat memperluas contoh untuk menambahkan produk ke kontak, lalu membalik di antara dua layar untuk menampilkan tampilan hubungan dari kedua arah.
Atur properti OnVisible pada Screen1 ke Refresh( Products ).
Bila Anda memperbarui relasi satu ke banyak atau banyak ke banyak, hanya data tabel argumen pertama pada panggilan Relate atau Unrelate yang di-refresh. Kedua harus di-refresh secara manual jika Anda ingin membalik di antara layar aplikasi ini.
Duplikasikan Screen1.
Duplikat akan dinamai Screen1_1 dan membentuk dasar untuk melihat hubungan dari sisi kontak.
Untuk membuat tampilan terbalik, ubah rumus ini pada kontrol 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 )
Hasilnya akan terlihat sangat mirip dengan layar sebelumnya tetapi berasal pada hubungan dari sisi Kontak.
- Screen1_1.OnVisible =
Masukkan ikon Panah atas bawah dan atur properti OnSelect ke Navigate( Screen1, None ). Lakukan hal yang sama pada Screen1 dengan rumus Navigate( Screen1_1, None ).
Dengan layar baru ini, pengguna dapat menambahkan kontak ke produk, lalu membalik tampilan kontak dan melihat produk terkait. Hubungan bersifat simetris dan dibagi di antara dua layar.