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 Textdeclare 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.