Kadang-kadang, tanpa disadari, kita pernah menggunakan nama field yang sebenarnya merupakan salah satu dari reserved words di PHPMaker. Contoh, kita menggunakan nama field RecordCount di salah satu table pada database yang digunakan oleh project PHPMaker 2024.
Ternyata, dampak dari nama field ini akan menimbulkan error src/DbTableBase.php(317): Call to a member function resetAttributes() on int saat kita akan melakukan operasi CRUD di table yang bertalian pada aplikasi web yang sudah dihasilkan oleh PHPMaker 2024. Nah lho, lantas bagaimana solusinya?
Jika kalian sudah terlanjur memiliki nama field RecordCount di salah satu table pada database yang digunakan oleh project PHPMaker 2024, dan mengalami error resetAttributes() saat ingin melakukan operasi CRUD untuk table tersebut, maka ada dua opsi solusi yang harus kalian ketahui.
Solusi Pertama, cukup dengan me-rename (ubah nama) field RecordCount tadi ke nama lain. Setelah itu, pastikan sudah melakukan sinkronisasi perubahan database tersebut dengan project PHPMaker kalian, dengan mengklik menu Tools -> Synchronize, lalu generate ulang semua file script seperti biasa dari aplikasi PHPMaker.
Jika kalian tidak memungkinkan untuk mengubah nama field RecordCount di database tersebut, maka opsi Solusi Kedua berikut yang harus kalian lakukan.
Solusi Kedua, cukup kalian tambahkan kata kunci RecordCount ke dalam file keyword.xml yang lokasinya terdapat di folder berikut: C : > Users >{user} > AppData > Roaming > phpmaker2024 > src .
Setelah itu, pastikan sudah menyimpan perubahan pada file .xml tadi, kemudian pastikan kalian sudah menutup project/aplikasi PHPMaker 2024 kalian (jika saat itu masih terbuka):
Setelah kata kunci RecordCount tadi ditambahkan ke dalam file keyword.xml di atas, maka kira-kira seperti ini hasilnya:
...
<keyword lang="PHPMaker" value="privacy"/>
<keyword lang="PHPMaker" value="Profile"/>
<keyword lang="PHPMaker" value="ProjectID"/>
<keyword lang="PHPMaker" value="Purifier"/>
<keyword lang="PHPMaker" value="Raw"/>
<keyword lang="PHPMaker" value="RecordCount"/>
<keyword lang="PHPMaker" value="RecordsPerPage"/>
<keyword lang="PHPMaker" value="register"/>
<keyword lang="PHPMaker" value="RenderListRow"/>
<keyword lang="PHPMaker" value="Request"/>
<keyword lang="PHPMaker" value="Response"/>
...
Kode di atas hanya cuplikan saja. Tanda titik tiga di atas dan di bawah itu artinya konten yang dipotong dan tidak ditampilkan masing-masing di bagian atas dan bawah kode tersebut. Lalu perhatikan kata kunci RecordCount sudah ditambahkan di atas baris RecordsPerPage.
Kemudian jalankan kembali PHPMaker 2024, untuk memuat ulang perubahan pada file .xml tadi, dan terakhir, generate ulang semua file script seperti biasa. Pastikan sekali lagi, bahwa kalian sudah melakukan generate ulang semua file script dari PHPMaker 2024.
Apabila semua file sudah berhasil di-generate, maka kita bisa melihat kode yang terkait dengan kata kunci tadi pada file PHP yang dihasilkan oleh PHPMaker 2024, akan berubah menjadi _RecordCount. Ya, diawali dengan karakter garis bawah (underscore).
Perubahan ini juga dapat kalian cek dengan mengklik kanan table terkait dari panel Database di project PHPMaker 2024 kalian, lalu pilih menu Object Properties. Kalian akan melihat di kolom Variable Name, untuk field RecordCount akan menggunakan nama variable _RecordCount.
Hendrayana mengatakan
Selamat Siang pak, apa bisa minta kontaknya..tks.
Masino Sinaga mengatakan
Selamat siang. Bisa. Kontak via email: masino[dot]sinaga[at]gmail[dot]com.
Anto mengatakan
Mohon maaf kalau pertanyaannya agak menyimpang
Biso tolong diinfo dimana letak Report Setting
menurut manual ada begini
Report Settings
There are some more settings for report fields under the Edit Tag panel:
Grouping Interval If the field is Column Heading field in a Crosstab report and is of date/time type, this property sets the interval for the field values, possible value are:
Year
Quarter
Month
Date
Date/Time
tapi kok saya gak nemu-nemu ya
Mohon bantuannya
Masino Sinaga mengatakan
Pastikan tipe field-nya adalah Date atau DateTime, supaya setting tersebut muncul di panel Edit Tag
Anto mengatakan
tipe field sudah Date tetapi masih belum muncul
coba bikin field baru lagi dengan tipe Date baru muncul settingnya
sementara sudah aman mnggunakan filed baru walaupun bukan pratek yang baik menggunakan 2 field yang sama dalam 1 table
Terimakasih responnya
nanti coba utak-atik lagi
Masino Sinaga mengatakan
Sama-sama.
Coba field yang lama tadi yang tidak bisa, dihapus terlebih dulu dari database, sedangkan field yang baru dipertahankan, lalu sinkronkan ulang antara project ke database. Lalu, generate ulang lagi semua file script seperti biasa.
Jika setelah itu masih berfungsi, kemudian coba rename field yang baru menjadi nama field yang lama, kemudian sinkronkan ulang project ke database, lalu generate ulang semua file script seperti biasa.
Widodo mengatakan
Sore Pak Masino, salam sehat selalu.
Mohon maaf sebelumnya Pak, mau nanya,
Maaf bila pertanyaan saya out of topic dari materi judul artikel ini.
Gini Pak,
Saya berniat membuat aplikasi sejenis aplikasi kasir nah di jendela “transaksi baru” itu kan umumnya aplikasi kasir melakukan pencarian barang dari master barang, begitu ketemu klik oke dan dia akan muncul rincian mana barang harga satuan dll.
Lalu saya akan melakukan pencarian barang kedua, ketiga, dst.
Pertanyaan saya cara agar hasil pencarian itu muncul sebagai list hasil pencarian, seperti umumnya aplikasi kasir, kalau di PHPMaker itu menggunakan fitur apa ya Pak?
Mohon solusinya, terimakasih sebelumnya 🙏🏻.
Masino Sinaga mengatakan
Selamat sore. Salam sehat selalu juga. 🙂
Kalau di PHPMaker, itu menggunakan fitur Lookup Table.
Tinggal aktifkan saja opsi Select dari panel Edit Tag, lalu akfifkan juga opsi Use modal dialog for lookup.
Selanjutnya di panel Lookup Table, tinggal tentukan Table name dari table lookup-nya, lalu tentukan Link field dan Display field #1-nya.
Widodo mengatakan
iya Pak, sudah kok.
Lalu supaya menampilkan hasil pencarian menjadi banyak baris hasil, dengan 1 form pencarian gimana ya Pak?
Masino Sinaga mengatakan
Maksudnya hasil pencarian menjadi banyak baris itu bagaimana ya?
Bukankah kalau sudah mengaktifkan opsi Use modal dialog for lookup., maka hasil pencarian di Modal Dialog tersebut akan menampilkan hasil dalam banyak baris (beberapa record)?
Widodo mengatakan
hehhehehe, saya juga bingung jelasinnya Pak,
seperti ini misal Pak:
cari “sabun mandi….” (enter) hasil pencarian itu ter-list sebagai grid 1
cari lagi “pasta gigi…” (enter) ter-list sebagai grid 2
dst..
dan ter-list nya masih dalam 1 jendela, mirip add grid pada master-detail Pak.
Masino Sinaga mengatakan
Coba pakai fitur Dashboard Report, dimana dalam satu halaman dapat terdiri dari beberapa List, dan masing-masing List bisa memiliki fitur pencarian.
Anto mengatakan
Selamat siang pak Masino,
mau bertanya lagi pak, sudah googling belum nemu
di crosstab report untuk tab column heading kan ada opsi “Year filter”
di web selalu defaultnya tahun paling awal (misal data mulai 2022, default yearnya 2022)
apakah bisa dibuat begitu buka langsung ditampilkan tahun sekarang(2024) atau tahun lain yang kita inginkan
Masino Sinaga mengatakan
Selamat malam.
Saya masih belum paham maksudnya.
Bisa nggak menggunakan project demo2024, di sana ada salah satu Crosstab Report yang bernama Quarterly Orders By Product.
Anto mengatakan
Selamat siang pak Masino,
Maaf mau bertanya lagi
sanya menggunakan phpmaker versi 2024.13
saya coba menggunakan project demo2024 pada crosstab report Quarterly Orders By Product
saya tambahkan multi series line 2d chart
yang saya tanyakan saat mouse di hover di linenya tooltip yang muncul hanya nilai x dan y, sedangkan label seriesnya tidak muncul
kemungkinan ada kesalahan di mana ya?
atau ada opsi di advance chart setting yang terlewat
Masino Sinaga mengatakan
Yang dimaksud dengan label series itu seperti apa ya contohnya?
Saya barusan test, saat mouse hover, di tooltip muncul contohnya: Baverages dan di bawahnya: $126,901.52.
Anto mengatakan
iya betul inginnya seperti itu,
yang saya buat hanya muncul tooltip 2016 dan di bawahnya $126,901.52
ada juga hal yang janggal di PHPMaker saya untuk semua jenis chart walaupun opsi legend tidak dicentang, legend selalu muncul di chart.
apa mungkin ada bug?
saya perhatikan sejak awal saya gunakan versi 2024.11 sampe 13 seperti itu hasilnya
PHPMaker saya berlisensi dan installernya saya download dari registered user site
Masino Sinaga mengatakan
Saran saya, coba kirim file .pmp dan .sql ke Support supaya dicek sekaligus mendapatkan solusinya dari mereka.
Anto mengatakan
ok makasih advicenya pak Masino,
lupa saya kalau ada support
selama ini cari di forum aja
Masino Sinaga mengatakan
Sama-sama.
Iya, kalau ada yang aneh-aneh, misalnya di demo project bisa, tapi di project kita tidak bisa, langsung saja kirim ke Support, biasanya mereka langsung bantu solusinya.
firman mengatakan
Bang masino, izin japri an lewat email/wa yaa
Sy sebelumnya sdh pernah komunikasi, hanya lupa melalui media apa
jadi mudah2an pesan ini bisa dibalas u bisa komunikasi lanjut via wa
Masino Sinaga mengatakan
Oke, silahkan kirim email ke masino[dot]sinaga[at]gmail[dot]com