Posted on August 13, 2007 by ghafi
Function is told is a logistic where numeral mengkonvert as sentence. Logistic example to be told aught in day-to-day life is: invoice, slip setor is savings, and other as it.
Function is told may tell simple's enough but crazily deep its algorithm. Since function was told to utilize language phrase those are utilized. to sample coding hereunder utilizes indonesian, for english language or the other language, please modif source whatever available hereunder.
Following samples coding that my for at crystal report 8.5:
stringVar array angka := ["Nol", "Satu", "Dua", "Tiga", "Empat", "Lima", "Enam", "Tujuh", "Delapan", "Sembilan", "Se"];
stringVar array satuan := ["belas", "puluh", "ratus", "ribu", "juta", "milyar", "triliun", "billiun"];
stringvar nil1;
stringvar nil2;
numbervar b;
stringvar a;
stringvar strtblg;
stringvar array matrix := ["","","","","","","","","","",""];
numbervar i;
numbervar j;
booleanvar nol;
b:=1;
a:=”";
nil2:=”";
strtblg = “”;
nil1:= “”;
for i := 2 to len(totext(Sum ({@totalall}, {ado.kode cc fad})))-3 do
(
if mid(totext(Sum ({@totalall}, {ado.kode cc fad})),i,1) = “,” then
nil1 := nil1
else
nil1 := nil1 & mid(totext(Sum({@totalall}, {ado.kode cc fad})),i,1);
);
nil2 := totext(nil1);
if len(nil2) >= 22 then
strtblg = “”
else
(
for i := len(nil1) to 1 step -1 do
(
if len(nil1) = 4 then
(
matrix[b] := right(nil2,4);
b:=b+1;
i:=i-3;
if len(nil2) – 4 >=1 then
nil2 := left(nil2, len(nil2) – 4)
else
nil2:=nil2;
)
else
(
matrix[b] := right(nil2,3);
b:=b+1;
i:=i-2;
if len(nil2) – 3 >=1 then
nil2 := left(nil2, len(nil2) – 3)
else
nil2:=nil2;
);
);
strtblg := “”;
for j := b – 1 to 1 step -1 do
(
nil2:=matrix[j];
nol:= false;
for i := 1 to len(matrix[j]) do
(
a := mid(matrix[j],i,1);
if a = “1″ then
(
if tonumber(mid(nil2,1,1))=0 then
(
if i = 1 then nol := true;
);
if mid(matrix[j],i+1,1)= “1″ and len(nil2) = 2 then
(
strtblg := strtblg & angka[11] & satuan[1] & ” “;
i := len(matrix[j]) + 1;
)
else if mid(matrix[j],i+1,1)= “0″ and len(nil2) = 2 then
(
strtblg := strtblg & angka[11] & satuan[2] & ” “;
i := len(matrix[j]) + 1;
)
else if len(nil2) = 1 then
(
strtblg := strtblg & angka[tonumber(a)+1] & ” “;
0;
)
else if tonumber(mid(matrix[j],i+1,1)) > 1 and len(nil2) = 2 then
(
strtblg := strtblg & angka[tonumber(mid(matrix[j],i+1,1))+1] & ” ” & satuan[1] & ” “;
i := len(matrix[j]) +1;
)
else
(
strtblg := strtblg & angka[11] & satuan[len(nil2)] & ” “;
0;
);
)
else
(
if tonumber(mid(nil2,1,1)) = 0 then
(
if i = 1 then nol := true;
)
else if len(nil2) = 1 then
(
strtblg := strtblg & angka[tonumber(a)+1] & ” “;
nol := false;
)
else
(
strtblg := strtblg & angka[tonumber(a)+1] & ” ” & satuan[len(nil2)-1+1] & ” “;
nol := false;
);
0;
);
if i <= len(matrix[j]) then nil2 := right(nil2,len(matrix[j])-i);
);
if j >= 2 and nol = false then strtblg := strtblg & satuan[j+2] & ” “;
);
);
strtblg & “Rupiah.”;
