首先看张效果图:注意底色部分
实现函数代码:
FUNCTION F_CONV_GB(pf_money)
DEFINE pf_money DECIMAL(14,2)
DEFINE ll_money INTEGER
DEFINE i SMALLINT
DEFINE li_bit SMALLINT
DEFINE li_length SMALLINT
DEFINE li_len SMALLINT
DEFINE ls_money CHAR(20)
DEFINE ls_result CHAR(64)
DEFINE ls_arr_num ARRAY[10] OF CHAR(2)
DEFINE ls_arr_unit ARRAY[14] OF CHAR(2)
DEFINE ls_arr_unit0 ARRAY[14] OF CHAR(2)
LET ls_arr_num[1]='壹'
LET ls_arr_num[2]='贰'
LET ls_arr_num[3]='叁'
LET ls_arr_num[4]='肆'
LET ls_arr_num[5]='伍'
LET ls_arr_num[6]='陆'
LET ls_arr_num[7]='柒'
LET ls_arr_num[8]='捌'
LET ls_arr_num[9]='玖'
LET ls_arr_num[10]='零'
LET ls_arr_unit[1]='分'
LET ls_arr_unit[2]='角'
LET ls_arr_unit[3]='元'
LET ls_arr_unit[4]='拾'
LET ls_arr_unit[5]='佰'
LET ls_arr_unit[6]='仟'
LET ls_arr_unit[7]='万'
LET ls_arr_unit[8]='拾'
LET ls_arr_unit[9]='佰'
LET ls_arr_unit[10]='仟'
LET ls_arr_unit[11]='亿'
LET ls_arr_unit[12]='拾'
LET ls_arr_unit[13]='佰'
LET ls_arr_unit[14]='仟'
LET ls_arr_unit0[1]='整'
LET ls_arr_unit0[2]='零'
LET ls_arr_unit0[3]='元'
LET ls_arr_unit0[4]='零'
LET ls_arr_unit0[5]='零'
LET ls_arr_unit0[6]='零'
LET ls_arr_unit0[7]='万'
LET ls_arr_unit0[8]='零'
LET ls_arr_unit0[9]='零'
LET ls_arr_unit0[10]='零'
LET ls_arr_unit0[11]='亿'
LET ls_arr_unit0[12]='零'
LET ls_arr_unit0[13]='零'
LET ls_arr_unit0[14]='零'
##如果参数为0
IF pf_money=0 THEN RETURN '零元整' END IF
##参数小于零,则为负值
IF pf_money<0 THEN
LET pf_money=0-pf_money
LET ls_result='负'
ELSE
LET ls_result=''
END IF
##判断是否超出范围
IF pf_money>999999999999.99 THEN
RETURN ls_result='数值超出范围'
END IF
##循环每一个数字
LET ls_money=pf_money*100 USING"<<<<<<<<<<<<<<"
LET li_length=length(ls_money CLIPPED)
FOR i=1 to li_length
LET li_bit=ls_money[i]
IF li_bit=0 then
LET li_len=length(ls_result CLIPPED)
IF ls_result[li_len-1,li_len]<>'零'then
LET ls_result=ls_result CLIPPED,ls_arr_unit0[li_length-i+1]
ELSE
LET ls_result=ls_result[1,li_len-2],ls_arr_unit0[li_length-i+1]
END IF
ELSE
LET ls_result=ls_result CLIPPED,ls_arr_num[li_bit],ls_arr_unit[li_length-i+1]
END IF
END FOR
return ls_result CLIPPED ##返回大写
END
FUNCTION