Di artikel sebelumnya kita sudah membahas mengenai betapa mudahnya menentukan pengaturan-pengaturan yang tersedia di level Global maupun level Tables untuk mengkostumais aplikasi web sebelum di-generate oleh tools PHP code generator PHPMaker. Bahkan, melalui pengaturan level Tables tersebut, kita sebagai Web Developer dapat dengan mudah menimpa pengaturan yang sudah ditentukan di level Global, khususnya pada beberapa tabel yang tidak ingin menggunakan pengaturan dari level Global.
Setelah kita membahas level Tables, maka mari kita turun ke level yang lebih detail, yaitu level Fields. PHPMaker telah menyediakan pengaturan yang sangat lengkap di level ini. Beberapa pengaturan yang bisa ditentukan dari level ini, seperti: apakah Anda ingin men-generate field-field tertentu di halaman List, Add, Copy, Delete, Edit, Multi-Update, Search. Anda juga bisa menentukan, apakah field-field tertentu akan disertakan ke dalam Audit Trail, di mana pengaturan Audit Trail ini bisa ditentukan dari level Tables. Bahkan, PHPMaker pun sudah menyediakan fitur yang memungkinkan Anda untuk menentukan nilai yang akan otomatis memperbarui suatu field jika Pengguna aplikasi web nantinya tidak mengisi data saat menambah atau mengubah record.
Salah satu fitur di level Fields yang saya rasakan sangat membantu Web Developer dalam mempercepat pengembangan sebuah aplikasi berbasis web adalah fitur Lookup. Anda sebagai Web Developer dapat menentukan dan mengatur dengan mudah pada field-field mana saja yang bertindak sebagai Lookup Field; ke tabel mana field-field tersebut melakukan lookup, field-field apa saja yang berperan sebagai Link field dari Lookup Table, dan field-field mana saja yang berperan sebagai Display Fields. Bahkan, PHPMaker sudah menyediakan sampai empat buah field yang bisa ditentukan sebagai Display Fields. Hal ini sangat berguna jika Anda ingin menampilkan lebih dari satu field pada elemen Combobox di antar-muka aplikasi web yang akan Anda bangun nantinya.
Tidak hanya berhenti di situ saja, PHPMaker juga menyediakan kemudahan bagi Web Developer untuk menentukan field-field Lookup mana saja yang akan dihubungkan untuk menampilkan data yang saling terkait antara satu dengan lainnya. Fitur ini terkenal di PHPMaker dengan istilah Dynamic Selection List. Contoh yang paling sering kita temui di suatu aplikasi adalah, seperti ketika Pengguna memilih data suatu wilayah tertentu, maka harus dimulai dengan memilih data dari level tertinggi sampai ke level terendah. Pengguna harus memulai memilih dari level Propinsi, Kabupaten/Kota, Kecamatan, sampai dengan level terendah: Keluarahan/Desa. Data Keluarahan/Desa tidak bisa dipilih sebelum Pengguna memilih data Kecamatan, dan data Kecamatan tidak bisa dipilih sebelum Pengguna memilih data Kabupaten/Kota, dan data Kabupaten/Kota tidak bisa dipilih sebelum Pengguna memilih data Propinsinya. Semuanya itu bisa dilakukan dengan sangat mudah cukup dengan hanya mengatur beberapa property milik field-field terkait.
Masih banyak pengaturan-pengaturan level Fields lainnya yang tidak bisa diuraikan di sini sampai Anda mencobanya sendiri. Dan yang pasti, semua pengaturan di level Fields yang sudah kita tentukan tadi, akan disimpan ke dalam file project PHPMaker. Anda dapat memuat file project ini kembali di waktu yang akan datang, tanpa harus mengingat-ingat kembali di file skrip mana Anda sudah menulis kode yang terkait dengan pengaturan di level Fields untuk tabel-tabel tertentu. Serahkan semuanya urusan ini kepada PHPMaker. Biarkan PHPMaker yang menyimpan dan memuatnya kembali ketika Anda ingin bekerja dengan file project tersebut di waktu mendatang.
Wouw! Sungguh, betapa nikmatnya bekerja dengan PHPMaker. 🙂
hendra mengatakan
bagaimana mensetting saat Add master/detil, secara default detilnya menjadi 1 ?
Masino Sinaga mengatakan
Sudah pernah dibahas melalui artikel ini: Mudahnya Membatasi Jumlah Record yang Diinput di Aplikasi Web dari PHPMaker.
Jadi, prinsipnya sama seperti kode di artikel tersebut, dan pastikan kode tersebut ditempatkan di sisi table detail (bukan master).
hendra mengatakan
saya sudah buka link nya.
Maksud saya , di defauld web saya muncul 5 record kosong.
Saya mau mensetting 1 record saja.
Jika user ingin nambah, khan tombok ADD detil masih bisa diklik.
Masino Sinaga mengatakan
Oh, begitu toh maksudnya. Kalau begitu saya kasih clue-nya saja dulu ya.
Pertama, Anda harus mengeset property GridAddRowCount milik object Page atau Table dengan nilai 1.
Kedua, Anda harus menyembunyikan tombol Add Blank Row dengan menggunakan kode jQuery, dan taruh di bagian Startup Script.
hendra mengatakan
maaf pak utk clue GridAddRowCount, saya cari setting property, cari di help, kok masih belum menemukan ya yg dimaksud.
Masino Sinaga mengatakan
Sudah coba trik di artikel ini? –> Mencegah Pengguna Menambah Baris Baru di Tabel Detail Aplikasi Web dari PHPMaker
hendra mengatakan
terima kasih paklink nya
Utk sintak GridAddRowCount sdh OK, namun utk getCurrentMasterTable kok terjadi error nya.
Link error ke [NAMATABLEDETIL]gridcls.php.
Jika sintak getCurrentMasterTable saya tutup, hasil OK.
Apa penyebabnya ya? Setting relasi Master/Detil sdh sy gunakan.
hendra mengatakan
Sorry pak, sdh menemukan.
Trm ksh
Masino Sinaga mengatakan
Oh, jadi sudah solved ya? Hehe… oke. 🙂
yayan mengatakan
yang contoh provinsi , kabupaten, kecamatan dan desa. masing masing kan saya buat tabel yang berelasi. jadi saat input pilih dari prov, kab, kec, desa pakai sampai 4 combo box parent child. simpan sudah benar. tapi kenapa saat tampil di list view kok tidak berelasi ya antara provinsi mana dengan kab mana dengan kec dan desa mana. kira kira saya salah di mana mas ? terimakasih
Masino Sinaga mengatakan
Kemungkinan salahnya karena pengaturan yang belum tepat dari dalam project PHPMakernya.
yayan mengatakan
kalo waktu edit dan insert sudah benar tampil sesuai relasi tabelnya misal DKI Jakarta – Jakarta Selatan – Pasar minggu – Kebagusan. Tapi saat list view baru ngaco. Apakah untuk list view dengan lookup tabel sebanyak parent/filter yang sampai 4 ada perlakuan khusus ? atau bisa tampil begitu saja spt saat kita pakai lookup tabel tanpa parent/ filter ?
Masino Sinaga mengatakan
Sudah ikuti seperti pada video ini? –> https://youtu.be/fitESsLsiPg
yayan mengatakan
sudah sama bang. seperti di videonya. Sepertinya kita beda struktur tabelnya;
tabel provinsi: 11 | ACEH
tabel kabupaten: 1 | SIMEULUE | 11
tabel kecamatan: 10 | TEUPAH SELATAN | 11 | 1
yang di video spt berikut
kabupaten 11 | 11.01 | SIMEULUE
kecamatan 11.01.01 | TEUPAH SELATAN
harus spt itu kah struktur tabelnya parent/filter ?
padahal select boxnya sudah benar keluar spt seharusnya waktu edit dan insert. Hanya list view aja kacau.
Masino Sinaga mengatakan
Struktur table yang berbeda tentu saja akan menghasilkan output yang berbeda. Oleh karena itu, review kembali strukur table yang Anda gunakan.