Bagikan melalui


Membuat rincian galeri pesanan di aplikasi kanvas

Ikuti petunjuk langkah demi langkah untuk membuat rincian galeri pesanan di aplikasi kanvas untuk mengelola data fiktif di database Northwind Traders. Topik ini adalah bagian dari rangkaian yang menjelaskan cara membuat aplikasi bisnis pada data relasional di Microsoft Dataverse. Untuk hasil terbaik, jelajahi topik berikut ini dalam urutan ini:

  1. Buat galeri pesanan.
  2. Membuat formulir ringkasan.
  3. Buat galeri detail (topik ini).

Definisi area layar.

Prasyarat

Sebelum Anda memulai topik ini, anda harus menginstal database sebagaimana dijelaskan sebelumnya di topik ini. Anda kemudian harus membuat galeri pesanan dan formulir ringkasan atau membuka aplikasi Northwind Orders (Canvas) - Begin Part 3 , yang sudah berisi galeri dan formulir tersebut.

Buat bilah judul lain

  1. Di bagian atas layar, pilih kontrol Label yang berfungsi sebagai bilah judul, salin dengan menekan Ctrl-C, lalu tempel dengan menekan Ctrl-V:

    Salin dan tempel bilah judul.

  2. Ubah ukuran dan pindahkan salinannya sehingga muncul tepat di bawah formulir ringkasan.

  3. Hapus teks dari salinan dengan salah satu cara berikut:

    • Klik dua kali pada teks untuk memilihnya, lalu tekan Delete.
    • Tetapkan properti Teks label ke string kosong ("").

    Hapus teks dari salinan bilah judul.

  1. Masukkan kontrol Galeri dengan tata letak vertikal Kosong:

    Tambahkan galeri vertikal kosong.

    Galeri baru, yang akan menampilkan rincian pesanan, muncul di sudut kiri atas.

  2. Tutup dialog sumber data, lalu ubah ukuran dan pindahkan galeri rincian ke sudut kanan bawah, di bawah bilah judul baru:

    Lokasi akhir galeri rincian pesanan.

  3. Tetapkan properti Item dari galeri detail ke rumus ini:

    Gallery1.Selected.'Order Details'
    

    Tetapkan properti Item pada galeri detail.

    Jika kesalahan muncul, konfirmasikan bahwa galeri pesanan diberi nama Galeri1 (di panel Tampilan Pohon di dekat tepi kiri). Jika galeri tersebut memiliki nama yang berbeda, gantilah namanya menjadi Galeri1.

    Anda baru saja menghubungkan dua galeri. Saat pengguna memilih pesanan di galeri pesanan, pilihan tersebut mengidentifikasi rekaman di tabel Pesanan . Jika pesanan tersebut berisi satu atau beberapa item baris, rekaman dalam tabel Pesanan ditautkan ke satu atau beberapa rekaman dalam tabel Rincian pesanan , dan data dari rekaman tersebut muncul di galeri detail. Perilaku ini mencerminkan hubungan satu ke banyak yang dibuat untuk Anda antara tabel Pesanan dan Rincian Pesanan . Rumus yang Anda tentukan "menjalankan" relasi tersebut dengan menggunakan notasi titik:

    Relasi satu ke banyak antara tabel Pesanan dan tabel Rincian Pesanan.

Tampilkan nama produk

  1. Di galeri detail, pilih Tambahkan item dari tab Sisipkan untuk memilih templat galeri:

    Pilih templat untuk galeri detail.

    Pastikan Anda telah memilih templat galeri dan bukan galeri itu sendiri. Kotak pembatas harus berada sedikit di dalam batas galeri dan mungkin lebih pendek dari tinggi galeri. Saat Anda memasukkan kontrol ke templat ini, mereka diulang untuk setiap item di galeri.

  2. Pada tab Sisipkan , masukkan label ke galeri detail.

    Label akan muncul di dalam galeri; jika tidak, coba lagi, namun pastikan untuk memilih templat galeri sebelum memasukkan label.

    Tambahkan label ke galeri detail.

  3. Tetapkan properti Teks label baru ke rumus ini:

    ThisItem.Product.'Product Name'
    

    Jika tidak ada teks yang muncul, pilih tanda panah untuk Pesanan 0901 di dekat bagian bawah galeri pesanan.

  4. Ubah ukuran label sehingga teks lengkap ditampilkan:

    Tampilkan nama produk dalam detail pesanan.

    Ekspresi ini berjalan dari rekaman dalam tabel Rincian Pesanan . Catatan disimpan dalam ThisItem ke tabel Order Products melalui hubungan banyak ke satu:

    Relasi banyak ke satu antara tabel rincian Pesanan dan tabel produk Pesanan.

    Kolom Nama Produk (dan kolom lain yang akan Anda gunakan) diekstraksi:

    Kolom dalam tabel Produk Pesanan.

Tampilkan gambar produk

  1. Pada tab Sisipkan , masukkan kontrol Gambar ke dalam galeri detail:

    Masukkan kontrol gambar pada kanvas.

  2. Ubah ukuran dan pindahkan gambar dan label menjadi berdampingan.

    Tip

    Untuk kontrol yang halus atas ukuran dan posisi kontrol, mulai mengubah ukuran atau memindahkannya tanpa menekan tombol Alt, lalu terus mengubah ukuran atau memindahkan kontrol saat Anda menahan tombol Alt:

    Kontrol gerakan gambar.

  3. Tetapkan properti Gambar ke rumus ini:

    ThisItem.Product.Picture
    

    Sekali lagi, ekspresi tersebut merujuk pada produk yang dikaitkan dengan detail pesanan ini dan mengekstrak bidang Gambar untuk ditampilkan.

    Tampilkan gambar produk.

  4. Kurangi tinggi templat galeri sehingga lebih dari satu catatan Detail Pesanan muncul pada satu waktu:

    Persingkat templat galeri.

Tampilkan kuantitas produk dan biaya

  1. Pada tab Sisipkan , masukkan label lain ke dalam galeri detail, lalu ubah ukuran dan pindahkan label baru ke sebelah kanan informasi produk.

  2. Tetapkan properti Teks label baru ke ekspresi ini:

    ThisItem.Quantity
    

    Rumus ini menarik informasi langsung dari tabel Rincian Pesanan (tidak ada hubungan yang diperlukan).

    Tampilkan jumlah produk.

  3. Pada tab Beranda , ubah perataan kontrol ini ke Kanan:

    Ubah perataan ke kanan.

  4. Pada tab Sisipkan , masukkan label lain ke dalam galeri detail, lalu ubah ukuran dan pindahkan label ke sebelah kanan label kuantitas.

  5. Tetapkan properti Teks label baru ke rumus ini:

    Text( ThisItem.'Unit Price', "[$-en-US]$ #,###.00" )
    

    Jika Anda tidak menyertakan tag bahasa ([$-en-US]), tag tersebut akan ditambahkan untuk Anda berdasarkan bahasa dan wilayah Anda. Jika Anda menggunakan tag bahasa yang berbeda, Anda sebaiknya menghapus $ tepat setelah tanda kurung siku tutup (]), lalu tambahkan simbol mata uang Anda sendiri di posisi tersebut.

    Tampilkan harga satuan.

  6. Pada tab Beranda , ubah perataan kontrol ini ke Kanan:

    Ubah perataan ke kanan.

  7. Pada tab Sisipkan , masukkan kontrol label lain ke dalam galeri detail, lalu ubah ukuran dan pindahkan label baru ke sebelah kanan harga satuan.

  8. Tetapkan properti Teks label baru ke rumus ini:

    Text( ThisItem.Quantity * ThisItem.'Unit Price', "[$-en-US]$ #,###.00" )
    

    Sekali lagi, jika Anda tidak menyertakan tag bahasa ([$-en-US]), tag tersebut akan ditambahkan untuk Anda berdasarkan bahasa dan wilayah Anda. Jika tagnya berbeda, Anda sebaiknya menggunakan simbol mata uang Anda sendiri, bukan $ yang tepat setelah tanda kurung siku penutup (]).

    Tampilkan harga yang diperluas.

  9. Pada tab Beranda , ubah perataan kontrol ini ke Kanan:

    Ubah perataan ke kanan.

    Anda telah selesai menambahkan kontrol ke galeri rincian untuk saat ini.

  10. Di panel Tampilan pohon , pilih Layar1 untuk memastikan bahwa galeri detail tidak lagi dipilih.

Tambahkan teks ke bilah judul baru

  1. Pada tab Sisipkan , masukkan label lain ke layar:

    Tangkapan layar sisipan label.

  2. Ubah ukuran dan pindahkan label baru di atas gambar produk di bilah judul kedua, lalu ubah warna teks menjadi putih pada tab Beranda .

  3. Klik dua kali teks label, lalu ketik Produk:

    Ubah teks label menjadi Produk.

  4. Salin dan tempel label produk, lalu ubah ukuran dan pindahkan salinan di atas kolom kuantitas.

  5. Klik dua kali teks label baru, lalu ketik Jumlah:

    Ubah teks label menjadi Kuantitas.

  6. Salin dan tempel label produk, lalu ubah ukuran dan pindahkan salinan di atas kolom harga unit.

  7. Klik dua kali teks label baru, lalu ketik Harga Satuan:

    Ubah teks label menjadi Harga Satuan.

  8. Salin dan tempel label harga satuan, lalu ubah ukuran dan pindahkan salinan di atas kolom total harga.

  9. Klik dua kali teks label baru, lalu ketik Extended:

    Ubah teks label menjadi Diperpanjang.

Tampilkan total pesanan

  1. Kurangi tinggi galeri rincian untuk membuat ruang untuk total pesanan di bagian bawah layar:

    Persingkat galeri rincian pesanan.

  2. Salin dan tempel bilah judul di tengah layar, lalu pindahkan salinan ke bagian bawah layar:

    Salin bilah judul, dan pindahkan salinan ke tepi bawah.

  3. Salin dan tempel label produk dari bilah judul tengah, lalu pindahkan salinan ke bilah judul bawah, tepat di sebelah kiri kolom Kuantitas .

  4. Klik dua kali pada teks label baru, lalu ketik teks berikut:
    Jumlah Pesanan:

    Tambahkan label untuk total pesanan.

  5. Salin dan tempel label total pesanan, lalu ubah ukuran dan pindahkan salinan ke kanan label total pesanan.

  6. Tetapkan properti Teks label baru ke rumus ini:

    Sum( Gallery1.Selected.'Order Details', Quantity )
    

    Rumus ini menunjukkan peringatan delegasi, namun Anda dapat mengabaikannya karena tidak ada satu pesanan yang akan berisi lebih dari 500 produk.

  7. Pada tab Beranda , atur perataan teks label baru ke Kanan:

    Ubah perataan.

  8. Salin dan tempel kontrol label ini, lalu ubah ukuran dan pindahkan salinannya di bawah kolom Diperluas .

  9. Tetapkan properti Teks salinan ke rumus ini:

    Text( Sum( Gallery1.Selected.'Order Details', Quantity * 'Unit Price' ), "[$-en-US]$ #,###.00" )
    

    Rumus ini menunjukkan peringatan delegasi, namun Anda dapat mengabaikannya karena tidak ada satu pesanan yang akan berisi lebih dari 500 produk.

    Tampilkan total biaya pesanan.

Tambah ruang untuk rincian baru

Di galeri apa pun, Anda dapat menampilkan data, namun Anda tidak dapat memperbaruinya atau menambahkan catatan. Di bawah galeri detail, Anda akan menambahkan area tempat pengguna dapat mengonfigurasi rekaman dalam tabel Rincian Pesanan dan memasukkan rekaman tersebut ke dalam pesanan.

  1. Kurangi tinggi rincian galeri cukup untuk ruang pengeditan satu item di bawah galeri tersebut.

    Di ruang ini, Anda akan menambahkan kontrol sehingga pengguna dapat menambahkan rincian pesanan:

    Persingkat galeri detail.

  2. Pada tab Sisipkan , masukkan label, lalu ubah ukuran dan pindahkan di bawah galeri detail.

    Masukkan label.

  3. Klik dua kali pada teks label, lalu tekan Hapus:

  4. Pada tab Beranda , atur warna Isi label baru ke BiruTerang:

    Ubah isi label menjadi biru muda.

Pilih Produk

  1. Pada tab Sisipkan , pilih Kontrol>Kotak kombo:

    Sisipkan kotak kombo.

    Kontrol Kotak kombo muncul di sudut kiri atas.

  2. Pada dialog fly out, pilih sumber data Pesan Produk .

  3. Pada tab Properties untuk kotak kombo, pilih Edit (di samping Fields) untuk membuka panel Data . Pastikan bahwa Teks utama dan SearchField diatur ke nwind_productname.

    Anda menentukan nama logis karena panel Data belum mendukung nama tampilan dalam kasus ini:

    Tetapkan teks Utama untuk kotak kombo.

  4. Tutup panel Data .

  5. Pada tab Properties di dekat tepi kanan, gulir ke bawah, nonaktifkan Allow multiple choice, dan pastikan Allow searching diaktifkan:

    Nonaktifkan pilihan ganda dan aktifkan pencarian.

  6. Ubah ukuran dan pindahkan kotak kombo ke area biru muda, tepat di bawah kolom nama produk di galeri rincian:

    Pindahkan kotak kombo.

    Dalam kotak kombo ini, pengguna akan menentukan catatan dalam tabel Produk untuk catatan Rincian Pesanan yang akan dibuat oleh aplikasi.

  7. Sambil menekan terus tombol Alt, pilih panah bawah kotak kombo.

    Tip

    Dengan menekan tombol Alt, Anda dapat berinteraksi dengan kontrol di Power Apps Studio tanpa membuka mode Pratinjau.

  8. Dalam daftar produk yang muncul, pilih produk:

    Pilih produk di kotak kombo.

Tambahkan gambar produk

  1. Pada tab Sisipkan , pilih Media>Gambar:

    Masukkan kontrol gambar.

    Kontrol Gambar muncul di sudut kiri atas:

    Lokasi default kontrol gambar.

  2. Ubah ukuran dan pindahkan gambar ke area biru muda di bawah gambar produk lainnya dan di sebelah kotak kombo.

  3. Tetapkan properti Gambar ke:

    ComboBox1.Selected.Picture
    

    Tetapkan properti Gambar dari gambar.

    Anda menggunakan trik yang sama seperti yang Anda gunakan untuk menampilkan gambar karyawan dalam formulir ringkasan. Properti Selected pada kotak kombo mengembalikan keseluruhan rekaman produk apa pun yang dipilih pengguna, termasuk bidang Picture .

Tambahkan kotak kuantitas

  1. Pada tab Sisipkan , pilih Teks>Masukan teks:

    Tambahkan kotak masukan teks.

    Kontrol Input teks muncul di sudut kiri atas:

    Lokasi default kotak masukan teks.

  2. Ubah ukuran dan pindahkan kotak input teks ke sebelah kanan kotak kombp, tepat di bawah kolom kuantitas di galeri rincian:

    Ubah ukuran dan pindahkan kotak masukan teks.

    Dengan menggunakan kotak masukan teks ini, pengguna akan menentukan bidang Kuantitas pada catatan Rincian Pesanan .

  3. Tetapkan properti Default dari kontrol ini ke "":

    Tetapkan properti Default pada kotak masukan teks.

  4. Pada tab Beranda , atur perataan teks kontrol ini ke Kanan:

    Ubah perataan kontrol ke kanan.

Tampilkan harga satuan dan total

  1. Pada tab Sisipkan , masukkan kontrol Label .

    Labelnya muncul di sudut kiri atas layar:

    Sisipkan label.

  2. Ubah ukuran dan pindahkan label ke sebelah kanan kontrol input teks, dan atur properti Teks label ke rumus ini:

    Text( ComboBox1.Selected.'List Price', "[$-en-US]$ #,###.00" )
    

    Tetapkan properti Teks label.

    Kontrol ini menampilkan Daftar Harga dari tabel Pesanan Produk . Nilai ini akan menentukan bidang Harga Satuan dalam catatan Rincian Pesanan .

    Catatan

    Untuk skenario ini, nilai hanya dapat dibaca, namun skenario lain mungkin dapat memanggil pengguna aplikasi untuk memodifikasinya. Dalam kasus tersebut, gunakan kontrol Input teks dan atur properti Default ke Harga Daftar.

  3. Pada tab Beranda , atur perataan teks label harga daftar ke Kanan:

    Ubah perataan kontrol ke sisi kanan.

  4. Salin dan tempel label daftarkan harga, lalu ubah ukuran dan pindahkan salinan ke kanan label daftarkan harga.

  5. Tetapkan properti Teks label baru ke rumus ini:

    Text( Value(TextInput1.Text) * ComboBox1.Selected.'List Price', "[$-en-US]$ #,###.00" )
    

    Tetapkan properti Teks label baru.

    Kontrol ini menampilkan total harga berdasarkan kuantitas yang ditentukan pengguna aplikasi dan harga daftar produk yang dipilih pengguna aplikasi. Ini murni informasi untuk pengguna aplikasi.

  6. Klik dua kali pada kontrol input teks untuk kuantitas, lalu masukkan angka.

    Label harga yang Diperpanjang dihitung ulang untuk menunjukkan nilai baru:

    Tentukan jumlah, dan tampilkan harga yang diperluas.

Tambahkan ikon Tambah

  1. Pada tab Sisipkan , pilih Ikon>Tambahkan:

    Sisipkan ikon Tambahkan.

    ikonnya muncul di sudut kiri atas layar.

    Lokasi default ikon Tambah.

  2. Ubah ukuran dan pindahkan ikon ini ke tepi kanan area biru muda, lalu atur properti OnSelect ikon ke rumus ini:

    Patch( 'Order Details',
        Defaults('Order Details'),
        {
            Order: Gallery1.Selected,
            Product: ComboBox1.Selected,
            Quantity: Value(TextInput1.Text),
            'Unit Price': ComboBox1.Selected.'List Price'
        }
    );
    Refresh( Orders );
    Reset( ComboBox1 );
    Reset( TextInput1 )
    

    Tetapkan properti ikon OnSelect.

    Secara umum, fungsi Patch memperbarui dan membuat rekaman, dan argumen spesifik dalam rumus ini menentukan perubahan tepat yang akan dibuat oleh fungsi tersebut.

    • Argumen pertama menentukan sumber data (dalam hal ini, tabel Rincian Pesanan ) di mana fungsi akan memperbarui atau membuat rekaman.

    • Argumen kedua menetapkan bahwa fungsi tersebut akan membuat rekaman dengan nilai default untuk tabel Rincian Pesanan kecuali dinyatakan lain dalam argumen ketiga.

    • Argumen ketiga menentukan bahwa empat kolom dalam catatan baru akan berisi nilai dari pengguna.

      • Kolom Pesanan akan berisi nomor pesanan yang dipilih pengguna di galeri pesanan.
      • Kolom Produk akan berisi nama produk yang dipilih pengguna dalam kotak kombo yang menampilkan produk.
      • Kolom Kuantitas akan berisi nilai yang ditentukan pengguna dalam kotak masukan teks.
      • Kolom Harga Satuan akan berisi harga daftar produk yang dipilih pengguna untuk detail pesanan ini.

    Catatan

    Anda dapat membuat rumus yang menggunakan data dari kolom mana saja (dalam tabel Pesan Produk ) untuk produk apa pun yang dipilih pengguna aplikasi dalam kotak kombo yang menampilkan produk. Saat pengguna memilih catatan dalam tabel Pesan Produk , tidak hanya nama produk yang muncul dalam kotak kombo tersebut tetapi harga satuan produk juga muncul dalam label. Setiap nilai pencarian di aplikasi kanvas mereferensi seluruh catatan, bukan hanya kunci uta,a.

    Fungsi Refresh memastikan bahwa tabel Pesanan mencerminkan catatan yang baru saja Anda tambahkan ke tabel Rincian Pesanan . Fungsi Reset menghapus data produk, kuantitas, dan harga satuan sehingga pengguna dapat lebih mudah membuat detail pesanan lain untuk pesanan yang sama.

  3. Tekan F5, lalu pilih ikon Tambah .

    Urutan mencerminkan informasi yang Anda tentukan:

    Animasi penambahan detail pesanan.

  4. (opsional) Tambahkan item lain ke pesanan.

  5. Tekan Esc untuk menutup mode Pratinjau.

Hapus rincian pesanan

  1. Di bagian tengah layar, pilih templat galeri rincian:

    Pilih templat galeri.

  2. Pada tab Sisipkan , pilih Ikon>Sampah:

    Masukkan ikon Sampah.

    Ikon Sampah muncul di sudut kiri atas templat galeri.

    Lokasi default ikon.

  3. Ubah ukuran dan pindahkan ikon Sampah ke sisi kanan templat galeri detail, dan atur properti OnSelect ikon ke rumus ini:

    Remove( 'Order Details', ThisItem ); Refresh( Orders )
    

    Tetapkan properti OnSelect ikon.

    Saat tulisan ini dibuat, Anda tidak dapat menghapus rekaman secara langsung dari suatu hubungan, jadi fungsi Hapus menghapus rekaman secara langsung dari tabel terkait. ThisItem menentukan rekaman yang akan dihapus, diambil dari rekaman yang sama di galeri detail tempat ikon Sampah muncul.

    Sekali lagi, operasi tersebut menggunakan data yang di-cache, sehingga fungsi Refresh memberi tahu tabel Orders bahwa aplikasi telah mengubah salah satu tabel terkaitnya.

  4. Tekan F5 untuk membuka mode Pratinjau, lalu pilih ikon Sampah di samping setiap catatan Rincian Pesanan yang ingin Anda hapus dari pesanan.

  5. Coba tambahkan dan hapus berbagai rincian pesanan dari pesanan Anda:

    Animasi penambahan dan penghapusan rincian pesanan.

Kesimpulan

Untuk rekap, Anda menambahkan galeri lain untuk menampilkan rincian pesanan dan mengontrol penambahan dan penghapusan rincian pesanan di aplikasi. Anda menggunakan elemen berikut:

  • Kontrol galeri kedua, terhubung ke galeri pesanan melalui hubungan satu ke banyak: Gallery2.Items = Gallery1.Selected.'Order Details'
  • Hubungan banyak ke satu dari tabel Rincian Pesanan ke tabel Produk Pesanan : ThisItem.Product.'Product Name' dan ThisItem.Product.Picture
  • Fungsi Pilihan untuk mendapatkan daftar produk: Choices( 'Order Details'.Product' )
  • Properti Terpilih dari kotak kombo sebagai rekaman terkait banyak-ke-satu yang lengkap: ComboBox1.Selected.Picture dan ComboBox1.Selected.'List Price'
  • Fungsi Patch untuk membuat catatan Rincian Pesanan : Patch( 'Order Details', Defaults( 'Order Details' ), ... )
  • Fungsi Hapus untuk menghapus catatan Rincian Pesanan:Remove( 'Order Details', ThisItem )

Rangkaian topik ini telah menjadi panduan singkat penggunaan Relasi Dataverse dan pilihan dalam aplikasi kanvas untuk tujuan edukatif. Sebelum Anda merilis aplikasi apa pun ke produksi, Anda harus mempertimbangkan validasi lapangan, penanganan kesalahan, dan banyak faktor lainnya.