Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Mudahnya Menyembunyikan Tombol Master/Detail Edit di PHPMaker 2024
Mengelola Data Hirarki Melalui TreeView dengan PHPMaker 2024
Copy Permissions, Menyalin Permissions dari Satu User Level ke User Level Lain

Mudahnya Menyembunyikan Tombol Master/Detail Edit di PHPMaker 2024

Jum, 10 Mei 2024 oleh Masino Sinaga Tinggalkan Komentar

Sudah terlalu banyak kemudahan yang disediakan oleh PHPMaker sebagai development tools untuk membuat aplikasi web. Termasuk yang satu ini, bagaimana cara menyembunyikan tombol Master/Detail Edit di aplikasi web yang dihasilkan oleh PHPMaker 2024.

Untuk menggunakan tombol Master/Detail Edit, maka pastikan sudah mengaktifkan opsi Master/Detail Edit (as Detail) terlebih dulu dari level Table milik table Detail di proyek PHPMaker 2024 kita.

Sebagai contoh, dari project demo2024, kita menggunakan table orders sebagai table Master, dan orderdetails sebagai table Detail. Nah, opsi Master/Detail Edit (as Detail) di atas harus kita aktifkan dari table Detail-nya, yaitu orderdetails.

Setelah opsi tersebut diaktifkan, maka selanjutnya kita ingin menambahkan business-logic yang akan menyembunyikan tombol Master/Detail Edit khusus data di table orders dengan OrderID = 11076. Bagaimana caranya?

Ternyata sangatlah mudah dan cepat. Kita cukup menambahkan sedikit kode PHP saja ke dalam server event ListOptions_Rendering milik table Master, dalam contoh di atas adalah table orders.

Sebelum kita menambahkan kode PHP ke dalam server event tersebut, mari kita lihat contoh kode yang sudah tercantum di server event ListOptions_Rendering pada project PHPMaker 2024 sebagai berikut:

//Container("DetailTableGrid")->DetailAdd = (...condition...); // Set to true or false conditionally
//Container("DetailTableGrid")->DetailEdit = (...condition...); // Set to true or false conditionally
//Container("DetailTableGrid")->DetailView = (...condition...); // Set to true or false conditionally

Mari kita akan bahas terlebih dulu contoh kode di atas.

PHPMaker 2024 sudah menyediakan contoh kerangka kode yang akan memandu kita untuk menampilkan atau menyembunyikan masing-masing tombol Master/Detail Add, Master/Detail Edit, dan Master/Detail View.

Seperti yang sudah dijelaskan dari setiap kode di atas, kita harus mengeset nilai true jika ingin menampilkannya, dan sebaliknya nilai false jika ingin menyembunyikannya.

Selanjutnya, mari perhatikan nama container di atas. Jangan langsung menggunakan nama container di atas, yang dalam hal ini DetailTableGrid.

Untuk mendapatkan nama container ini, maka kita harus melihat class dari table Detail, dalam hal ini adalah orderdetails, yang sudah dibangkitkan oleh PHPMaker. Caranya bagaimana?

Gampang sekali. Cukup buka file models/OrderdetailsGrid.php, lalu di sekitar baris ke-16 sampai ke-19, lihat kode berikut:

/**
 * Page class
 */
class OrderdetailsGrid extends Orderdetails

Perhatikan nama class yang tercantum di atas, yaitu OrderdetailsGrid. Nah, nama class inilah yang kita gunakan sebagai nama container dari contoh kode di atas, sehingga kodenya menjadi seperti ini:

if ($this->OrderID->CurrentValue == "11076")
    Container("OrderdetailsGrid")->DetailEdit = false;
else 
    Container("OrderdetailsGrid")->DetailEdit = true;

Sampai di sini, kita sudah berhasil menambahkan hanya 4 baris kode PHP ke dalam server event ListOptions_Rendering milik table Master, yaitu orders, yang fungsinya untuk menyembunyikan tombol Master/Detail Edit untuk kondisi data OrderID = 11076.

Perhatikan sekali lagi kode tersebut. Kita harus menangani kondisi untuk menampilkan maupun menyembunyikan tombol Master/Detail Edit tersebut. Jika tidak maka tombol Master/Detail Edit akan tetap disembunyikan di bawah data orders yang memiliki OrderID = 11076.

Untuk itu, pastikan selalu menambahkan kondisi else yang mengembalikan nilai true. Jika tidak, maka setelah data orders yang memiliki OrderID = 11076, maka tombol Master/Detail Edit akan ikut disembunyikan.

Setelah itu, silahkan generate ulang semua file script seperti biasa menggunakan PHPMaker 2024. Selanjutnya dari aplikasi web yang dihasilkan, perhatikanlah bahwa hanya data orders dengan OrderID = 11076 saja yang tombol Master/Detail Edit-nya disembunyikan.

Tapi jangan puas dulu, karena kita baru sebatas hanya menyembunyikan tombol Master/Detail Edit saja. Dalam hal ini, Pengguna Akhir aplikasi web masih tetap bisa mengakses halaman Master/Detail Edit untuk OrderID = 11076 dengan mengetikkan alamat ini di URL browser:

http://localhost/demo2024/ordersedit/11076?showdetail=orderdetails

Lalu bagaimana cara untuk mencegah Pengguna Akhir mengakses halaman Master/Detail Edit tersebut? Lagi-lagi sangat gampang sekali, kita cukup menambahkan 4 baris kode PHP berikut ke dalam server event Row_Selected milik table Master, yaitu orders:

if (CurrentPageID() == "edit" && Get("showdetail") == "orderdetails" && Route("OrderID") == "11076") {
    $this->setFailureMessage("Akses Master/Detail Edit untuk OrderID = 11076 ditolak!");
    $this->terminate("orderslist");
}

Nah, arti dari kode di server event Row_Selected tersebut adalah, jika halaman yang aktif adalah Edit, dan di URL ada parameter showdetail yang bernilai orderdetails, dan parameter route OrderID bernilai 11076, maka tampilkan pesan kesalahan dengan pesan tersebut di atas. Setelah itu, langsung redirect ke halaman orderslist.

Gimana? Sangat mudah dan cepat sekali, bukan? Bukan! PHPMaker gitu lho, hohoho… 😀

Ditempatkan di bawah: PHPMaker

Masino Sinaga

Web Developer pengguna PHPMaker untuk membangun Aplikasi Web sejak tahun 2004. Sampai sekarang masih aktif dan rajin membagikan pengalamannya menggunakan PHPMaker melalui situs masinosinaga.com, ilovephpmaker.com, dan phpmakerprojects.com.

Mengelola Data Hirarki Melalui TreeView dengan PHPMaker 2024
Copy Permissions, Menyalin Permissions dari Satu User Level ke User Level Lain

Tinggalkan Balasan Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses

Pos-pos Terbaru

  • Masino Extensions for PHPMaker 2025 Now Changed!
  • Begini Mudahnya Mengurangi Lebar Combobox pada PHPMaker 2025
  • Mudahnya Mengubah Nilai Delay Auto Hide Success Message di PHPMaker 2025
  • Mudahnya Berpindah Layout dari Table ke Cards di Halaman List lewat PHPMaker 2025
  • Jangan Lupa Pakai AdjustSql Saat Insert atau Update Data Lewat ExecuteStatement

Menu

  • Siapa Saya?
  • Web Development
  • PHPMaker
  • Umum
  • Syarat dan Ketentuan
  • Sitemap (Peta Situs)
  • Komentar

Komentar Terbaru

  • Charly pada PHPMaker: PHP Code Generator + PHP Framework
  • Masino Sinaga pada PHPMaker: PHP Code Generator + PHP Framework
  • Masino Sinaga pada PHPMaker: PHP Code Generator + PHP Framework
  • Charly pada PHPMaker: PHP Code Generator + PHP Framework
  • Charly pada PHPMaker: PHP Code Generator + PHP Framework

Situs Terkait

  1. I Love PHPMaker
  2. Situs Resmi PHPMaker
  3. Forum Diskusi PHPMaker
  4. PHPMaker di IlmuKomputer.com
  5. PHPMaker Projects
  6. PHPMaker Learning

Baru di PHPMaker?

Baca ini terlebih dulu ...

  1. Ayo Menjadi Web Developer yang Cerdas!
  2. PHPMaker: PHP Code Generator + PHP Framework
  3. Pertanyaan-Pertanyaan yang Paling Sering Diajukan Seputar PHPMaker
  4. Tips buat Anda Pemula yang Baru Mengenal dan Menggunakan PHPMaker
  5. Bacalah Help, Bacalah Help, dan Bacalah Help di PHPMaker!

(c) Masino Sinaga 2009 - 2025 | WordPress | Catat masuk | Kembali ke atas