Sekarang mari kita bermain-main dengan fitur Master/Detail di Aplikasi Web yang dihasilkan oleh PHPMaker 2021. Kali ini kita akan belajar bagaimana cara menyembunyikan table Detail pada table-table yang memiliki relasi sebagai Master/Multiple-Detail.
Relasi Master/Multiple-Detail artinya kita memiliki sebuah table Master yang memiliki relasi ke lebih dari satu table Detail. Kebetulan contohnya sudah ada di project demo2021 yang bisa kita download dan coba sendiri di localhost.
Satu table Master memiliki relasi ke dua table Detail. Table Master: orders, table Detail: orderdetails dan order details extended. Dalam hal ini, order details extended adalah Database View, sedangkan orderdetails adalah Table.
Untuk menyederhanakan istilah, kita menyebut order details extended sebagai Table Detail dari Table Master orders.
Katakanlah kita ingin menyembunyikan table Detail orderdetails hanya jika data di field CustomerID pada table Master orders kosong. Sebaliknya, jika data di field CustomerID tadi tidak kosong, maka table Detail order details extended yang disembunyikan.
Penasaran kan, bagaimana cara kita mengimplementasikannya pada Aplikasi Web yang dihasilkan oleh PHPMaker 2021 Hohoho… 😀
Solusinya sangatlah mudah dan cepat, Saudara-saudara! Cukup dengan memasukkan 7 baris kode ini saja ke dalam server event ListOptions_Rendering yang terdapat di halaman List dari table orders:
if (empty($this->CustomerID->CurrentValue)) { $this->DetailPages->Items["orderdetails"]->Visible = false; // sembunyikan orderdetails $this->DetailPages->Items["orderdetailsextended"]->Visible = true; // tampilkan order details extended } else { $this->DetailPages->Items["orderdetails"]->Visible = true; // tampilkan orderdetails $this->DetailPages->Items["orderdetailsextended"]->Visible = false; // sembunyikan order details extended }
Perhatikan kode tersebut. Untuk menyembunyikan table Detail orderdetails, kita cukup mengeset property Visible milik object DetailPages untuk Items yang bernama orderdetails dengan nilai false.
Demikian juga dengan table Detail order detail extended. Perhatikan nama item untuk table ini, di kode tadi berubah menjadi orderdetailsextended. PHPMaker 2021 akan me-rename menjadi huruf kecil semua, dan menghapus karakter seperti karakter spasi atau garis bawah atau minus.
Sebaliknya, jika kita ingin menampilkannya, maka kita harus mengeset property Visible dengan nilai true. Sesimpel dan semudah itu.
Supaya kode tersebut berfungsi sebagaimana mestinya, pastikan untuk menggunakan extension Preview bawaan PHPMaker 2021. Atau, Anda bisa menggunakan Masino Extensions untuk PHPMaker 2021, khususnya yang bernama MasinoPreview17.
Itu artinya, jika kita tidak menggunakan extension tadi, maka kode di atas tidak berfungsi sebagaimana mestinya.
Keren, kan? hanya dengan sedikit kode itu saja, kita sudah bisa mengimplementasikan business-logic yang kita tentukan di atas tadi.
Tidak sia-sia kita menggunakan PHPMaker 2021, karena dapat menghemat waktu development. Ngoding pun semakin menyenangkan. Tidak perlu lagi menulis kode sampai berpuluh-puluh, beratus-ratus, atau bahkan beribu-ribu baris, karena selebihnya sudah di-generate oleh PHPMaker 2021 secara otomatis.
Tinggalkan Balasan