Contoh : angka 1000000 ketika memakai format mask 999G999G999G999G999G999G990 ketika di render akan menjadi 1.000.000.
Masalah akan muncul jika kita melakukan sebuah validasi, biasanya akan terjadi error. untuk mengatasi hal ini kita bisa lakukan.
1. Buat sebuah function di Post Calculation Computation di item tersebut.
2. Buatlah fuction tersendiri di database lalu gunakan dalam validasi.
Cara pertama punya kelemahan jika kita masukkan sebuah angka dengan format mask yang salah muncul error yg tidak bisa di handle contoh kita masukkan 1.00.000.
Dengan cara kedua kita bisa handle dalam proses validasi nantinya. oke bagai mana logicnya.
1. Sebelumnya harus dicek apakah item tersebut sudah ter format apa belum
2. Function tersebut akan melakukan konversi Number Field dengan format mask dari char ke number.
3. Gunakan function ter sebut dalam validasi, plus buatlah exception untuk handle format yang salah.
contoh function
CREATE OR REPLACE FUNCTION FORMAT_ANGKA1(P_NUM VARCHAR2 ) RETURN number IS v_jumlah NUMBER; begin if instr(P_NUM,'.')=0 then v_jumlah:=to_number(nvl(P_NUM,0)); else v_jumlah:=to_number(nvl(P_NUM,0),'999G999G999G999G999G999G990'); end if; RETURN v_jumlah; END FORMAT_ANGKA1; /Contoh pemakaian dalam validation dengan tipe :Function Returning Error Text
declare v_jumlah number; begin v_jumlah:=FORMAT_ANGKA1(:P28_JUMLAH); if v_jumlah=0 then return '#LABEL# tidak boleh null atau 0'; else if v_jumlah>:P28_SIMPANAN then return '#LABEL# tidak boleh melebihi jumlah Simpanan'; else return null; end if; end if; exception when others then return '#LABEL#Format mask tidak valid contoh valid : 999.999.999.999.999.999.990 , atau sama sekali tanpa format mask'; end;
Catatan : pemakaian instr tergantung format mask dan Globalization Apps yang kita pakai.
Tidak ada komentar :
Posting Komentar