Saat data yang bertipe angka sedang diketik oleh Pengguna di sebuah Aplikasi Web, sudah seharusnya data tersebut otomatis terformat dengan menambahkan karakter pemisah ribuan dan atau desimal. Sama halnya juga dengan data uang, biasanya sistem akan menambahkan simbol mata uang sesuai dengan bahasa yang terpilih di Aplikasi Web tersebut. Ini merupakan kebutuhan utama yang seharusnya tersedia di dalam sebuah Aplikasi Web.
Aplikasi Web yang dihasilkan oleh PHPMaker untungnya sudah menyediakan kerangka kerja yang bagus sehingga Anda sebagai Web Developer dapat menambahkan fitur ini dengan sangat mudah ke dalamnya. Dalam hal ini kita akan menggunakan salah satu plugin yang disediakan oleh jQuery bernama autoNumeric. Informasi dan demo lebih detail mengenai kemampuan plugin yang satu ini dapat Anda lihat di sini.
Untuk mengimplementasikan fitur autoNumeric ke Aplikasi Web yang dihasilkan oleh PHPMaker, saya akan menunjukkan langkah demi langkah kepada Anda bagaimana caranya. Katakanlah kita akan menambahkan format uang untuk Field UnitPrice pada halaman Add dan Edit dari tabel orderdetails. Kita akan menambahkan simbol mata uang, karakter pemisah ribuan, dan karakter pemisah desimal.
- Pastikan Anda sudah mengunduh file plugin jQuery autoNumeric tersebut dari link yang terdapat di atas.
- Copy-kan file autonumeric.js ke dalam sub-folder phpjs di Aplikasi Web Anda. Tentu saja Anda bisa mengemas file ini dalam sebuah Extension, tapi saya tidak akan membahasnya di sini.
- Tambahkan kode berikut ke dalam Page_Head yang terdapat di bawah Server Events -> Global -> All Pages:
ew_AddClientScript("phpjs/autonumeric.js"); // Add JavaScript
- Klik table orderdetails dari panel Database, lalu tambahkan kode jQuery berikut ke dalam Startup Script yang terdapat di bawah: Client Scripts -> Table-Specific -> Add/Copy Page dan juga Edit Page:
$(document).ready(function() { $('#x_UnitPrice').autoNumeric('init', {aSign:'<?php echo $DEFAULT_CURRENCY_SYMBOL; ?>'}); });
Kode barusan untuk mendefinisikan format pada field UnitPrice menggunakan simbol mata uang dari variabel $DEFAULT_CURRENCY_SYMBOL yang sudah didefinisikan di dalam file ewcfg*.php.
- Selanjutnya tambahkan kode jQuery berikut ke dalam Form_CustomValidate yang terdapat di bawah lokasi pada langkah sebelumnya:
$('#x_UnitPrice').val($('#x_UnitPrice').autoNumeric('get'));
sebelum baris kode berikut:
return true;
Fungsi dari kode ini untuk membersihkan karakter simbol mata uang, pemisah ribuan, dan pemisah desimal sebelum data tersebut disimpan ke Database.
Secara standar, plugin ini menggunakan pemisah ribuan berupa karakter koma (,) dan karakter pemisah desimal berupa karakter titik (.). Saya sangat menyarankan agar Anda tidak mengubah pengaturan ini. Yang perlu Anda ubah dalam hal ini hanyalah simbol mata uangnya saja. Jika tidak, maka data angka yang disimpan menjadi tidak sesuai dengan yang diharapkan.
Baca juga artikel saya yang berjudul Mengapa Sebaiknya Aplikasi Web Selalu Menggunakan Karakter Pemisah Internasional berisi penjelasan mengapa sebaiknya Anda tidak mengubah karakter pemisah ribuan dan desimal saat data sedang diketik di sebuah Aplikasi Web.
Wow, betapa simpel dan mudahnya, bukan? 😀
Radian mengatakan
Haloo Bang Masino…
Bagaimana caranya di PHP Maker 1 Field dibuat 2 Textbox.
Contohnya field Amount dibuat 1 textbox Debet dan 1 textbox Credit.
Mohon bantuan solusinya
Thanks
Radian
Masino Sinaga mengatakan
Di PHPMaker tidak bisa seperti itu. Satu Field harus mewakili satu Control atau Element di sebuah Form Add atau Edit.
Kecuali jika Anda menggunakan fitur pencarian yang Search Operator-nya diset sebagai USER SELECT, maka ketika dipilih nilai BETWEEN atau di antara, maka akan muncul dua TextBox, dan biasanya ini sering digunakan untuk pencarian data tanggal.
Gunawan mengatakan
Maaf saya sudah mencoba sampai langkah ke 5 dan berhasil, namun ketika di Add/ (Simpan) muncul incorect integer.. Apa yang salah ya?
Masino Sinaga mengatakan
Validation Integer-nya tidak perlu Anda pilih/aktifkan dari Fields setup.
irwan mengatakan
oke bang, saya mau tanya gimana cara implemantasi autonumeric jquery di tabel master dan detail yang udah terhubung…..
dimana event java scriptx harus diletakkan…
makasih
Masino Sinaga mengatakan
Baca ulang artikel di atas.
irwan mengatakan
udah bang…saya punya 2 tabel….
1 master dan 1 detail….
relasi adalah 1 to many……..
di master udah berhasil….yang di detail blm berhasil………
interface yang saya buat mirip program cashier di minimarket….
dimana : jika kita input field (qty) atau (price) pada detail table …maka langsung akan
mengupdate total price…….contah interfacenya seperti dibawah ini :
(field tabel detil)
============================
qty price
============================
1 10000
2 30000
. .
. .
n n
============================ +
Total 40000 (field tabel master)
teima kasih…
Masino Sinaga mengatakan
Ada satu PHPMaker project yang saya buat berjudul Stock Inventory Management.
Lihat demonya di: http://phpstock.ilovephpmaker.com/login.php.
Anda bisa mendownload project PHPMaker tersebut (termasuk Masino Extensions yang saya bikin untuk project itu), setelah menjadi member di situs http://www.ilovephpmaker.com.
Semoga dapat membantu.
irwan irawan mengatakan
makasih atas sarannya tp tidak bisakah di kasih contoh sederhana cara coding akumulasi dari detail ke master spt yang saya tanyakan…maaf saya baru belajar dan blm ada dana buat register member…makasih…
Masino Sinaga mengatakan
Sayangnya itu bukan contoh yang sederhana.
irwan irawan mengatakan
oooo gitu ya pak…..terima kasih….
Masino Sinaga mengatakan
Sama-sama.
tedi mengatakan
memasukkan rumus pembagian bagaimana ya bang ??
misalnya :
field 1 = rencana belanja
field 2 = realisasi belanja
field 3 = realisasi belanja / rencana belanja
makasih ya bang
Masino Sinaga mengatakan
Masukkan di Form_CustomValidate seperti yang di atas, contoh:
tedi himawan mengatakan
Waah. Makasih banyak bang, berfungsi ..
tedi mengatakan
Tks bang, .. Its work 😀
Masino Sinaga mengatakan
Sama-sama.
angga mengatakan
pak kalau di table list cara formatnya bagaimana yah, saya coba script diatas di list event ga berhasil. terima kasih
angga mengatakan
udah solved pak 🙂
Masino Sinaga mengatakan
Baiklah kalau begitu.
alfa mengatakan
Selamat malam pak…..
Dari pembahasan diaatas sy udah coba satu2 ewcfg.php knpa bila di input data tidak bisa melebihi 500 ya…..maksud saya yg akan sy terapkan input angka sampai 10.000.000,00 dan bisa disimpan…..mohon bantuanya pak….trimakasih
Masino Sinaga mengatakan
Pastikan tipe field yang Anda gunakan bisa menampung nilai sampai 10 Juta.
alfa mengatakan
Sy pakai field dengan data type double…yang sy gunakan format $default_thousands_sep….itu kenapa ya pak sy terapkan kode di atas di addgird jg nggk ada komanya….mohon bantuanya pak.trimakasih
Masino Sinaga mengatakan
Pastikan pemisah ribuan menggunakan karakter koma (,) dan pemisah desimal menggunakan karakter titik (.)
ribut s mengatakan
sore pak….
jquery sya terapkan di master/detil kenapa tidak ada koma dan titik ya… sya ingin menggunaka inputan data angka ribuan bukan qurrency simbol pak. mohon bantuanya pak
….trimakasih
Masino Sinaga mengatakan
Saya hanya bisa membantu Anda dengan cara menyediakan contoh file project yang bernama Stock Inventory Management dan bisa Anda download dari website I Love PHPMaker.
lman mengatakan
Selamat malam pak….
Dimanakah menempatkan kode jquery untuk gridadd….contoh nya saya akan menampilkan jquery autonumeric untuk gridadd….mohn bantuanya pak trims…bila kode diatas sy terapkan di gridadd tidak berpengaruh apa2
Masino Sinaga mengatakan
Di halaman List.
ribut s mengatakan
pagi pak. itu diterapkan di gridd add nggak bisa ya pak….saya sudah masukkan kodenya di list page startup script tapi tidak bisa saat diketik… apa harus ada kode tambahan. tolong bantuanya pak… terima kasih
Masino Sinaga mengatakan
ID elemen atau Field di halaman Grid-Add tidak sama dengan ID di halaman Add. Lihat source code halaman tersebut dengan View Source, cek ID elemennya, lalu sesuaikan contoh kode di atas.
ribut s mengatakan
saya belum paham pak…tolong contoh kodenya pak…trima kasih
ribut s mengatakan
udah bisa pak….trimakasih banyak masukanya
Masino Sinaga mengatakan
Sama-sama.
devit setyono mengatakan
minta hasil jadinya bagaimana?
Masino Sinaga mengatakan
Minta? Silahkan dicoba sendiri aja mas, biar puas. 😉
bagus mengatakan
pakai phpmaker 2019 kok gak jalan dan tidak error juga. sudah diganti ew_AddClientScript(“phpjs/autonumeric.js”); menjadi AddClientScript(“phpjs/autonumeric.js”);
apa ada saran pak ? terimakasih
Masino Sinaga mengatakan
Tekan tombol [F12] dari browser Anda, lalu cek apakah ada pesan error dari Javascript-nya?
Eka Dalas Pangestu mengatakan
hallo pak masino
kalo ingin menerapkan perhitungan % bagaimana ya
contoh 1 jt + 1 %
Terima Kasih
Masino Sinaga mengatakan
Tidak menudukung seperti itu.
Eka Dalas Pangestu mengatakan
Hallo pak masino
Pak saya sudah berhasil terapkan sesuai dengan petunjuk pak masino
Tapi ada kendala yang saya dapatkan
Terkadang automumericnya suka gak aktif pak, dan harus di refresh berulang ulang baru aktif kembali
Kira kira bagaimana cara mengatasinya ya pak ?
Terima Kasih
Masino Sinaga mengatakan
Solusinya pakai Masino Extensions.
adji mengatakan
pak, saya belum berhasil. padahal semua sudah sama seperti yang pak masino instruksikan. namun tidak ada hasil. kemungkinan salah nya dimana yah pak?? tidak ada warning apa pun
Masino Sinaga mengatakan
Ini artikel sudah sangat lama, tahun 2014. Sembilan tahun yang lalu. Tidak akan bisa digunakan di PHPMaker versi 2023.