Pasti ada begitu banyak business-logic yang bisa terjadi dalam sebuah Aplikasi Web yang terkait dengan data Tanggal. Salah satunya adalah memastikan data Bulan dan Tahun pada dua buah Tanggal harus sama di form Pencarian pada halaman List. Jika tidak, maka sistem tidak dapat melanjutkan proses.
Katakanlah di sebuah table, ada sebuah field bernama Tanggal dengan tipe date (bukan datetime). Sebagai Web Developer, kita ingin ketika Pengguna mencari berdasarkan data Tanggal tadi, nilai Bulan dan Tahun pada range tanggal awal harus sama dengan nilai Bulan dan Tahun pada range tanggal akhir di field tadi.
Untuk itu, ada beberapa langkah yang harus kita lakukan dari dalam project PHPMaker.
Pertama, pastikan kita sudah mengaktifkan extension JSCalendar dari menu/lokasi berikut: Tools -> Extensions -> Type: Popup Calendar, dengan memberikan tanda centang pada kolom Enabled, lalu klik OK.
Kedua, pastikan kita sudah memberi tanda centang pada kolom Ext. Search dari lokasi tab Fields -> kolom List Page untuk field Tanggal tadi. Kemudian, masih pada lokasi yang sama tersebut, pastikan kita sudah memilih BETWEEN dari kolom Advanced Search Page -> Search Opr 1.
Ketiga, masih pada Fields setup tadi, dari panel Edit Tag, pastikan pilih DateTime (yyyy/mm/dd) di bawah lokasi ini: Validation -> Validate, dan beri tanda centang pada Use date/time picker. Lalu dari panel View Tag, pilih DateTime pada item Format, dan pilih yyyy/mm/dd pada bagian Date/Time name format.
Inti dari ketiga pengaturan tadi, supaya kita menampilkan field Tanggal ini pada form Pencarian yang terdapat di halaman List, dan meskipun hanya satu field Tanggal yang kita gunakan, maka PHPMaker nantinya akan men-generate dua textbox yang dilengkapi dengan icon kalender, sehingga ketika Pengguna memilih data tanggal, maka formatnya menjadi yyyy/mm/dd.
Keempat, saat yang ditunggu-ditunggu akhirnya tiba. Kita hanya perlu menambahkan sedikit kode jQuery berikut ke bawah lokasi: Client Scripts -> Table-Specific -> List Page -> Form_CustomValidate, sehingga kode selengkapnya menjadi seperti ini:
function(fobj) { // DO NOT CHANGE THIS LINE! // Your custom validation code here, return false if invalid. elmTanggal = this.GetElements("y_Tanggal"); var Bulan_Tahun_Awal = $("#x_Tanggal").val(); Bulan_Tahun_Awal = Bulan_Tahun_Awal.substr(0, 7); var Bulan_Tahun_Akhir = $("#y_Tanggal").val(); Bulan_Tahun_Akhir = Bulan_Tahun_Akhir.substr(0, 7); if (Bulan_Tahun_Awal != Bulan_Tahun_Akhir) { return this.OnError(elmTanggal, "Bulan dan Tahun di Tanggal awal harus sama dengan Tanggal akhir."); } return true; }
Perhatikan kode di atas. Karena format Tanggal sudah kita sepakati yyyy/mm/dd, maka kita cukup mengambil 7 karakter pertama dari nilai Tanggal, yaitu dalam hal ini: yyyy/mm. Jika nilai Bulan dan Tahun di Tanggal range awal tidak sama dengan Bulan dan Tahun di Tanggal range akhir, maka tampilkan pesan error kepada Pengguna.
Setelah Anda men-generate semua file script dengan PHPMaker seperti biasa, saatnya menjalankan Aplikasi Web dari browser. Di halaman List, pastikan panel Pencarian sudah terbuka (expanded). Sekarang cobalah memilih data Tanggal yang nilai Bulan dan Tahun di range Tanggal awal tidak sama dengan nilai Bulan dan Tahun di range Tanggal akhir, lalu klik tombol Search atau Cari.
Sistem akan menampilkan pesan error kepada Pengguna tanpa melakukan HTTP Request. Setelah Pengguna mengklik tombol OK pada pesan tersebut, maka kursor akan fokus ke textbox Tanggal pada range akhir, sehingga Pengguna disarankan untuk memperbaiki data Tanggal pada range akhir.
Betapa mudah, cepat, dan menyenangkan sekali, bukan? 🙂
ahmed mengatakan
Pagi Pak Masino,
Saya ada tabel seperti dibawah ini sebagai latihan saja seperti:
ID
Nama
Tempat lahir
tanggal lahir
foto
Untuk input data dan print ke pdf/excel sampai sejauh ini berhasil.
sebenarnya saya ingin menampilkan print out dari hasil entri tadi seperti format laporan seperti dibawah ini:
Data personal(header)
ID :
Nama :
Tempat lahir:
Tanggal lahir:
foto:
dengan ini benar anggota member futsal
Nah kalau seperti itu cara membuat print out nya dengan php maker gimana pak?
Terimakasih atas jawabannya
Masino Sinaga mengatakan
Anda bisa menggunakan fitur Custom Files supaya posisi elemen ke file pdf bisa diatur sesuai keinginan. Gunakan library fpdf untuk hal ini, silahkan Google.
Ahmed mengatakan
Pak Masino,
saya sudah coba tapi ada error
Parse error: syntax error, unexpected ‘$pdf’ (T_VARIABLE), expecting ‘)’ in….
di situ klo saya lihat adalah menunjukkan ke $pdf = new FPDF();
Bingung saya pak
Masino Sinaga mengatakan
Pastikan file-file library fpdf nya sudah di-upload ke web server Anda.
Ahmed mengatakan
Pak Masino,
Sekarang masalahnya adalah..
FPDF error: Some data has already been output, can’t send PDF file
Itu kenapa pak ya..
terimakasih
Masino Sinaga mengatakan
Saat membuat Custom File baru, pastikan setting Include common files tidak dicentang.
Jika Anda ingin menggunakan setting koneksi database, gunakan Database Helper Class. Lihat file home.php dari project demo yang disediakan oleh PHPMaker untuk contoh penerapannya.
Ahmed mengatakan
Masih bingung pak.
Ga di centang setting include common files nya malah fatal error:
Saya nyerah.. kasih tahu la pak
Masino Sinaga mengatakan
Kenapa harus bingung? Kenapa harus cepat menyerah? Anda harus bisa, karena tidak ada yang sulit. Sengaja tidak saya kasih tau supaya Anda mencoba sendiri sampai bisa. Kuncinya, baca dokumentasi fpdf tersebut, lalu ikuti contoh-contoh yang ada di dalamnya.
Ahmed mengatakan
Ya sudah pak, gapapa kalau tak kasih tahu. makasih ya.
Masino Sinaga mengatakan
Sama-sama.