Hai All hari ini kita akan belajar Fitur On Value Change.
Apa itu On Value Change?
On Value Change adalah config yang menjadikan field sebagai trigger sesuatu terjadi ketika ada perubahan pada field tersebut.
Contoh field “harga_satuan” diaktifkan config On Value Change nya, dan diberi setup script, maka ketika ada perubahan pada field “harga_satuan” dalam background ada proses yang berjalan untuk mengeksekusi script yang disetup. Apapun yang ada didalam script akan terproses ketika field “harga_satuan” diubah (diketik).
Script apa yang paling sering digunakan?
Pertama adalah script untuk mengubah value pada field lain (custom value), Kedua script untuk mengubah properties pada field lain (custom properties).
Berikut ini adalah contoh penulisan script dari kasus yang paling sering terjadi :
Custom Value
Script untuk mengubah value pada field lain dalam kasus perhitungan
1. Mengubah value pada field diluar tipe Group
Format : _field.field_ui_key_target = _field.field_ui_key_trigger1 + _field.field_ui_key_trigger2
_field.total_harga = _field.harga_barang * _field.quantity
Keterangan :
- _field → internal variable untuk membaca value dari field yang ditentukan setelahnya.
- total_harga → key dari field yang dijadikan sebagai target value yang akan diubah.
- harga_barang → key dari field yang dijadikan sebagai trigger pertama.
- quantity → key dari field yang dijadikan sebagai trigger kedua.
Ketentuan :
- config on value change harus diaktifkan pada field harga_barang dan quantity.
- script harus di setup pada field harga_barang dan quantity.
- setup config dan script harus dilakukan pada field yang sama baik di Create View maupun Detail View.
2. Mengubah value pada field didalam tipe Group
Format: _field.field_ui_key_group[index].field_ui_key_target = _field.field_ui_key_group[index].field_ui_key_trigger1 + _field.field_ui_key_group[index].field_ui_key_trigger2
_field.group_number.forEach(function(item,index) {
_field.group_number[index].number_6 = parseInt(_field.group_number[index].number_3) + parseInt(_field.group_number[index].number_4);
}
)
Keterangan :
- _field → internal variable untuk membaca value dari field yang ditentukan setelahnya.
- group_number → key dari field dengan tipe group.
- number_6→ key dari field dalam group yang dijadikan sebagai target value yang akan diubah.
- number_3 → key dari field dalam group yang dijadikan sebagai trigger pertama.
- number_4 → key dari field dalam group yang dijadikan sebagai trigger kedua.
Ketentuan :
- Penggunaan dalam tipe group harus menggunakan pengulangan (contoh: foreach) karena dalam tipe group disetiap field bisa memiliki record lebih dari satu. Jika hanya akan digunakan pada record tertentu bisa langsung ditentukan pada [index] jadi tanpa pengulangan.
- config on value change harus diaktifkan pada field number_3 dan number_4 yang ada dalam tipe group.
- script harus di setup pada field number_3 dan number_4 yang ada dalam tipe group.
- setup config dan script harus dilakukan pada field yang sama baik di Create View maupun Detail View.
Berikut ini list dari tipe field yang sudah support config on value change custom value :
- Text
- Number
- Decimal
- Currency
- Date
- Time
Video Tutorial :
- case1 : setup custom value non group
- case2 : setup custom value group
- case2a : custom value group disetiap record
- case2b : custom value group direcord tertentu
- case2c : custom value group diantar record
- case3 : setup custom value mix group and non group (hasil di luar group atas penjumlahan field dalam group)
........
Custom Properties
Selanjutnya adalah script untuk mengubah properties, properties yang dimaksud adalah bagian hidden, dimana perubahan pada field tertentu dapat dijadikan trigger untuk menampilkan atau menyembunyikan field lain.
Sama seperti custom value, custom properties juga dapat dimanfaatkan untuk trigger perubahan properties pada field di luar group maupun di dalam group.
1. Mengubah value pada field diluar tipe Group.
if (_field.status === "Tetap") {
_fieldProperties.end_date_contract.is_hidden = true;
} else {
_fieldProperties.end_date_contract.is_hidden = false;
}
Keterangan :
- _field → internal variable untuk membaca value dari field yang ditentukan setelahnya.
- _fieldProperties → internal variable untuk membaca properties dari field yang ditentukan setelahnya.
- end_date_contract → key dari field yang dijadikan sebagai target properties yang akan diubah.
- status → key dari field yang dijadikan sebagai trigger.
- is_hidden = true → field akan disembunyikan.
- is_hidden = false → field akan ditampilkan.
Ketentuan :
- config on value change harus ON / aktif di field yang akan dijadikan trigger.
- setup config dan script harus dilakukan pada field yang sama baik di Create View maupun Detail View.
2. Mengubah properties pada field didalam tipe Group.
_field.pegawai.forEach(function(item,index) {
if (_field.pegawai[index].status === "Tetap") {
_fieldProperties.pegawai[index].end_date_contract.is_hidden = true;
} else {
_fieldProperties.pegawai[index].end_date_contract.is_hidden = false;
}
}
)
Keterangan :
- _field → internal variable untuk membaca value dari field yang ditentukan setelahnya.
- _fieldProperties → internal variable untuk membaca properties dari field yang ditentukan setelahnya.
- pegawai → key dari field dengan tipe group.
- end_date_contract → key dari field yang dijadikan sebagai target properties yang akan diubah.
- status → key dari field yang dijadikan sebagai trigger.
- is_hidden = true → field akan disembunyikan.
- is_hidden = false → field akan ditampilkan.
Ketentuan :
- config on value change harus ON / aktif di field yang akan dijadikan trigger.
- setup config dan script harus dilakukan pada field yang sama baik di Create View maupun Detail View.
Berikut ini list dari tipe field yang sudah support config on value change custom properties (Field trigger):
Video Tutorial :
- case1 : setup custom properties non group
- case2 : setup custom properties group
- case2a : custom properties group disetiap record
- case2b : custom properties group direcord tertentu
- case2c : custom properties group diantar record