Membaca 3 Angka dengan Visual Foxpro
&& FUNCTION Baca3Digit
&& PARAMETERS _bil ; dimana _bil adalah bilangan bulat positif dari 0 s/d 999
&& Untuk membaca dalam bahasa indonesia dari suatu angka yang terdiri dari 3 digit
&& Contoh :
&& Baca3Digit(999) ===> SEMBILAN RATUS SEMBILAN PULUH SEMBILAN
&& Fungsi bantu : IdCurr(), AngkaDasar()
FUNCTION Baca3Digit
PARAMETERS _bil
IF VARTYPE(_bil)="C"
_bil=INT(VAL(_bil))
ENDIF
IF VARTYPE(_bil)<"N"
RETURN ""
ENDIF
_charbil=IdCur(_bil,3)
_Angkake1=SUBSTR(_charbil,1,1)
_Angkake2=SUBSTR(_charbil,2,1)
_Angkake3=SUBSTR(_charbil,3,1)
_Nil1=VAL(_Angkake1)
_Nil2=VAL(_Angkake2)
_Nil3=VAL(_Angkake3)
_balik=""
IF _Nil1>0
IF _Nil1=1
_balik="SERATUS"
ELSE
_balik=AngkaDasar(_Nil1)+" RATUS"
ENDIF
ENDIF
DO CASE
CASE _Nil2=1 .and. _Nil3=0
_balik=IIF(!EMPTY(_balik),_balik+" SEPULUH","SEPULUH")
CASE _Nil2=1 .and. _Nil3=1
_balik=IIF(!EMPTY(_balik),_balik+" SEBELAS","SEBELAS")
CASE _Nil2=1 .and. _Nil3>1
_balik=IIF(!EMPTY(_balik),_balik+" "+AngkaDasar(_Nil3)+;
"BELAS",AngkaDasar(_Nil3)+" BELAS")
CASE _Nil2>1 .and. _Nil3=0
_balik=IIF(!EMPTY(_balik),_balik+" "+AngkaDasar(_Nil2)+" PULUH";
CASE _Nil2>1 .and. _Nil3=0
_balik=IIF(!EMPTY(_balik),_balik+" "+AngkaDasar(_Nil2)+" PULUH";
,AngkaDasar(_Nil2)+" PULUH")
CASE _Nil2>1 .and. _Nil3>0
_balik=IIF(!EMPTY(_balik),_balik+" "+AngkaDasar(_Nil2)+;
CASE _Nil2>1 .and. _Nil3>0
_balik=IIF(!EMPTY(_balik),_balik+" "+AngkaDasar(_Nil2)+;
" PULUH "+AngkaDasar(_Nil3),AngkaDasar(_Nil2)+;
" PULUH "+AngkaDasar(_Nil3))
CASE _Nil2=0 .and. _Nil3>0
_balik=IIF(!EMPTY(_balik),_balik+" "+AngkaDasar(_Nil3),AngkaDasar(_Nil3))
CASE _Nil2=0 .and. _Nil3=0
_balik=IIF(!EMPTY(_balik),_balik,"NOL")
ENDCASE
RETURN _balik
CASE _Nil2=0 .and. _Nil3>0
_balik=IIF(!EMPTY(_balik),_balik+" "+AngkaDasar(_Nil3),AngkaDasar(_Nil3))
CASE _Nil2=0 .and. _Nil3=0
_balik=IIF(!EMPTY(_balik),_balik,"NOL")
ENDCASE
RETURN _balik
0 komentar:
Posting Komentar