Di artikel sebelumnya kita sudah membahas mengenai hal-hal penting apa saja yang perlu diperhatikan sebelum Anda menerapkan Dynamic Selection List di Aplikasi Web yang dibuat dengan PHPMaker. Sekedar untuk mengingatkan kembali, dari artikel tersebut kita dapat menyimpulkan bahwa PHPMaker tidak membatasi level kedalaman Combobox yang saling terkait, asalkan Anda harus mengikuti struktur Table Lookup, di mana di setiap Table Lookup wajib menyertakan semua Field Parent atau induk.
Karena kita sudah menyertakan semua Field induk di Table Lookup, maka kita cukup mendefinisikan field Parent dan field Filter dari bagian Parent/Filter #1 yang terdapat di panel Lookup Table. Ditambah lagi dengan uniknya Kode utama di setiap Table Lookup, maka itu artinya, Anda tidak perlu menggunakan Parent/Filter #2, #3, dan #4. Cukup hanya yang #1 saja. Di sinilah esensi dari tidak terbatasnya level kedalaman Combobox yang saling terkait tadi.
Mungkin Anda bertanya, kapan saatnya menggunakan field Parent dan field Filter di bagian Parent/Filter #2, #3, dan/atau #4? Jawabannya: tergantung kebutuhan! Parent/Filter #1 dan #2 digunakan jika Anda membutuhkan penyaringan Record dari Table Lookup berdasarkan 2 field. Sedangkan #1, #2, dan #3 digunakan jika Anda membutuhkan penyaringan Record dari Table Lookup berdasarkan 3 field sekaligus, dan seterusnya sampai kepada berdasarkan 4 field sekaligus. Artinya, PHPMaker sudah memberikan kesempatan kepada Web Developer untuk memfilter Record di Table Lookup maksimal sampai berdasarkan 4 field sekaligus.
Jika level kedalaman Dynamic Selection List yang Anda terapkan tidak terbatas, maka Anda harus merancang struktur data dan Kode di setiap Table Lookup menggunakan Kode yang menyertakan komponen Kode dari field Parent atau induknya. Contoh konkrit mengenai hal ini dapat Anda lihat dari case penggunaan Data Kode Wilayah Indonesia yang dikeluarkan oleh Depdagri (bukan oleh BPS). Seperti yang Anda ketahui, Kode Wilayah yang dikeluarkan oleh BPS berbeda dengan format Kode Wilayah yang dikeluarkan oleh Depdagri. Jadi, dalam hal ini ada dua cara.
Cara Pertama, kita menggunakan case Kode Wilayah yang dikeluarkan oleh BPS masing-masing field Kode dipisah dan tidak menyertakan komponen Kode field Parent atau induknya. Contoh, untuk field Propinsi hanya 2 karakter, field Kabupaten 2 karakter, field Kecamatan 3 karakter, dan field Kelurahan 3 karakter.
Itu artinya, di Cara Pertama ini untuk mendapatkan data Kelurahan, maka Anda harus menyaring atau mem-filter berdasarkan 3 field sekaligus, yaitu field Kode Propinsi, Kabupaten, dan Kecamatannya. Mengapa? Karena dalam hal ini pasti ada beberapa record Kelurahan yang berada di Kode Kabupaten yang sama. Untuk mengambil sebuah record Kelurahan yang unik, maka Anda wajib memfilter berdasarkan 3 Field Parent-nya tadi.
Sekarang cara yang Kedua, mari kita menggunakan Kode Wilayah yang dikeluarkan oleh Depdagri. Seperti yang kita ketahui, Pengkodean sudah menyertakan komponen Kode field Parent atau induknya. Contoh, untuk field Propinsi hanya 2 karakter, field Kabupaten 5 karakter (sudah termasuk komponen Propinsi), field Kecamatan 8 karakter (sudah termasuk komponen Propinsi dan Kabupaten/Kota), dan field Kelurahan 13 karakter (sudah termasuk dengan komponen Propinsi, Kabupaten/Kota, dan Kecamatan).
Semua Kode di cara yang Kedua ini sudah menyertakan karakter pemisah berupa titik, sehingga Kode lebih mudah dibaca. Nah, karena di setiap Field Kode sudah bersifat unik dan menyertakan komponen Kode Induk-nya, maka Anda hanya cukup menyaring atau mem-filter berdasarkan satu Field saja. Itulah kenapa kita cukup menggunakan Parent/Filter #1 saja.
Kesimpulan dari artikel ini, Anda harus merencanakan dengan matang format Kode yang akan digunakan di Table yang berperan sebagai data Lookup di Aplikasi Web yang akan Anda bangun dengan PHPMaker, kalau Anda ingin mengoptimalkan fitur Dynamic Selection List tadi.
Jika Anda memiliki level kedalaman Dynamic Selection List yang tidak terbatas, maka disarankan agar Anda mengikuti pola pengkodean seperti yang ditetapkan oleh Depdagri. Sedangkan jika level kedalamannya maksimal sampai 4 atau kurang dari 4, maka Anda boleh menggunakan pola pengkodean seperti yang digunakan oleh BPS.
ameisfine mengatakan
Saya menerapkan dynamic selection ini di Grid Add, dan ternyata di grid pertama berjalan normal, tapi ketika sy tambah grid kedua dan seterusnya, dynamic selection tidak berfungsi, menampilkan blank result, bahkan dia akan berefek juga ke grid yang pertama jadi blank result juga.
APakah ada tips n trik mengatasi masalah ini pak Masino?
Masino Sinaga mengatakan
Tolong jangan tanyakan lagi di sini kalau Anda sudah menanyakannya di forum diskusi PHPMaker.