Seperti yang kita ketahui, PHPMaker memiliki kemampuan untuk menampilkan data dari table Master dan data dari table Detail dalam satu halaman. Hal ini dikenal dengan istilah Master/Detail List di PHPMaker.
Ketika data Master dan Detail ditampilkan dalam satu halaman, sebenarnya yang ditampilkan saat itu adalah halaman List milik table Detail. Hanya saja, di bagian atas dari halaman List milik table Detail tadi, ditampilkan juga record dari table Master. Di sinilah cerdiknya PHPMaker mengoptimalkan object Master di halaman List milik table Detail.
Biasanya, field yang memiliki relasi antara table Master dan Detail sama-sama diikutsertakan di kedua bagian tersebut. Supaya lebih mudah dipahami, mari ambil contoh table Master orders, dan table Detail orderdetails. Baik di bagian Master maupun Detail, sama-sama menampilkan field OrderID.
Karena field OrderID ini sudah pasti nilainya sama di kedua bagian tadi, maka alangkah baiknya jika field tersebut disembunyikan pada halaman Master/Detail List tadi. Tapi, jika halaman orderdetailslist.php tadi ditampilkan tanpa menyertakan record Master-nya, maka field OrderID tersebut harus tetap ditampilkan.
Ingin tahu caranya? Cukup tambahkan kode PHP berikut ke dalam server event Page_Load yang terdapat di bawah Server Events -> Table-Specific -> List Page milik table orderdetails, sehingga kode selengkapnya menjadi seperti ini:
// Page Load event function Page_Load() { //echo "Page Load"; if (isset($_GET[EW_TABLE_SHOW_MASTER]) == "orders") { $this->OrderID->Visible = FALSE; } }
Sampai di sini kita sudah berhasil menghilangkan field OrderID di bagian table Detail.
Pertanyaan selanjutnya, bagaimana seandainya kita juga ingin menghilangkan field OrderID ini dari bagian table Master?
Cukup tambahkan kode PHP dan jQuery berikut ke dalam Startup Script yang terdapat di lokasi Client Scripts -> Table-Specific -> List Page milik table orderdetails:
<?php if (isset($_GET[EW_TABLE_SHOW_MASTER]) == "orders") { ?> $(document).ready(function() { $("#r_OrderID").hide(); }); <?php } ?>
Perhatikanlah bahwa kita dapat meng-embed kode PHP ke dalam kode jQuery pada bagian Startup Script tadi. Demikian fleksibelnya PHPMaker menyediakan kerangka kerja yang dapat dioptimalkan oleh Web Developer untuk membangun Aplikasi Web dengan cepat, mudah, dan menyenangkan.
Fendi Oviyanto mengatakan
Salam Pak Masino,
Mau menannyakan untuk tips yang bapak sertakan diatas berlaku Juga ya, jika dalam kasus
Tabel Barang terdiri atas field
id (int)
nama_barang (varchar)-20
harga_beli (double)
harga_jual (double)
jika dalam tabel barang yang saya sertakan ini, rencana ingin saya hilangkan (harga_beli) dari tabel jika pengguna atau user ingin melihat, namun tetap tampil jika sisi admin yang melihat tabel ini.
terimakasih sebelumnya
Masino Sinaga mengatakan
Silahkan langsung dicoba saja dulu, daripada Anda bertanya, hehehe… 🙂
Adhi mengatakan
Siang Pak Masino, mau bertanya,
Bagaimana cara menyembunyikan field jika nilai totalnya bernilai nol?
Saya belum tahu cara memanggil nilai totalnya..
Terima kasih banyak pak..
Masino Sinaga mengatakan
Cara memanggil nilai Total-nya tinggal di-query aja ke Database menggunakan global function yang bernama ew_ExecuteScalar().
Contoh:
Adhi mengatakan
Terima kasih Pak Masino. Sangat membantu.
Masino Sinaga mengatakan
Sama-sama.
Rijal mengatakan
Maaf Pak, saya pake Versi 2018
di bagian ini :
Sampai kode diatas tidak berpengaruh apapun.
Sedangkan kode SartUp dibawah ini :
kode diatas berhasil menghilangkan Field dari Tabel Master di halaman List detail, akan tetapi di halaman Search Field yg di Hidden tersebut masih tetap muncul.
ket :
Search=> StartUp sudah ada kode yang sama seperti diatas.
intinya saya akan menghilangkan semua Field (dalam bentuk Tabel di halaman List dan Search nya juga)
Masino Sinaga mengatakan
Pada prinsipnya sama dengan cara di bagian Startup Script tersebut. Anda hanya perlu mencari tahu id elemen atau selector css-nya, lalu sembunyikan elemen tersebut seperti kode di artikel atas.
temunitu mengatakan
Bagaimana jika ditambahkan validasi misal jika field dengan nama klien di table master bernama Jampang, bagaimana contoh skripnya?
Masino Sinaga mengatakan
Anda bisa menggunakan kode seperti ini untuk mengecek nilai di bagian table Master:
I Kadek Jaya Wiguna mengatakan
sore pak, saya mau bertanya pak
gimana caranya menyembunyikan dan menampilkan suatu file yang ada di tabel pak, saya punya 3 tabel anggep aja tabel 1 2 3 yang isinya sama, trus bagaimana caranya menyembunyikan file yang ada di tabel 3 saja pak, tabel 1 dan 2 biar tidak sembunyi ikut pak
terimakasih pak
Masino Sinaga mengatakan
Anda bisa menyembunyikan suatu field dengan mengeset property Visible milik field tersebut dengan nilai FALSE. Gunakan server event Page_Load atau Page_Render, atau Row_Rendered sesuai kebutuhan Anda.
Putri nur aisyah mengatakan
assalamualaikum pak,
saya ingin menyembunyikan seluruh table, akan tetapi ketika melakukan pencarian data, data nya muncul , tetapi hanya data yang di cari saja yang muncul. itu gimana ya pak mengeksekusinya?
Masino Sinaga mengatakan
Walaikum salam.
Tinggal aktifkan Requires search dari Table setup -> Table Options -> List Page, lalu generate ulang lagi semua file script seperti biasa.
Rachman mengatakan
Izin bertanya pak Masino,
Saya membuat add custom field total, pada halaman detail untuk penjumlahan pak, saya ikuti cara ini field inputan total pada list detail tidak bisa di hide ya pak, saya ingin detail total saat input tidak ditampilkan,
Terima kasih
Masino Sinaga mengatakan
Ini artikel juga sudah lama, 7 tahun yang lalu.
Ganti di bagian EW_TABLE_SHOW_MASTER menjadi TABLE_SHOW_MASTER, lalu coba lagi.