首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

打印大写金额

2013-08-10 
求助:打印大写金额1、目前有一张已经印好格的纸张.里面有一个大写金额,可打印最大金额为100万.2、已有格式: 

求助:打印大写金额
1、目前有一张已经印好格的纸张.里面有一个大写金额,可打印最大金额为100万.

2、已有格式: _拾_万_仟_佰_拾_元_角_分

3、如何将一个数据分拆并打印到以上格式中。求简明的代码或函数。


[解决办法]
套打的话直接右对齐加空格不就行了 1 5 4 6 3 2 5 5
[解决办法]
有个笨方法
你做一函数 比如 get_dx(数字,位数)
然后在数据窗口中,建几个text 分别对应 个 十 百 千 等
然后 千.text=get_dx(1234.23,千位)
代表取金额的千位数字

这样可以实现。

[解决办法]
建一个函数返回类型为字符串,参数为数值,然后挨个截取每一个值,对应为大写的壹贰叁肆伍陆柒捌玖。。。
[解决办法]
 string i_number[],i_z,i_salb,i_a,i_b
  int i_len,i
  string i_rmb
  int i_bz = 0  ,i_bz1 = 0//零检测
  dec alb
  alb=dec(sle_1.text)
  i_salb=string(alb,"0.00")
  i_len=len(i_salb) 
  i_a = '零壹贰叁肆伍陆柒捌玖'
  i_b = '零分角元拾佰千万拾百千亿拾百千'
  ////////////////////////////////////////////////////////小数整理
if  dec(mid(i_salb,i_len,1))=0 and dec(mid(i_salb,i_len - 1,1))  = 0 then 
 i_z= "整"
 i_number[1] = ""
 i_number[2] = ""
else 
i_z =""
i_number[1]=  mid(i_salb,i_len,1)  //分
i_number[2] = mid(i_salb,i_len - 1,1)//角
if  integer(i_number[1]) > 0 then
i_number[1] = mid(i_a,integer( i_number[1])+1,1)+mid(i_b,2,1) 
else
i_number[1]  = ""
end if 
if  integer(i_number[2]) > 0 then 
i_number[2] = mid(i_a,integer( i_number[2])+1,1)+mid(i_b,3,1) 
else
    i_number[2]  = mid(i_b,1,1) 
end if
end if
i_rmb = i_z +i_number[2]+i_number[1]

///////////////////////////////////////////////////////////////////整数部分
for i=3 to i_len - 1
i_number[i] = mid(i_salb,i_len - i,1)


if integer(i_number[i]) = 0 then
            if i = 3 then
i_number[i] ="元"
i_bz1 =1
        else
i_number[i]  ="零" 
i_bz=i_bz +  1
            end if
else
i_bz = 0
i_bz1 = 0
i_number[i] = mid(i_a,integer( i_number[i])+1,1)+mid(i_b,i+1,1) 
    end if
 
if i= 7  and i_number[i] = "零" then   //解决10万问题
i_number[i] = "万"
     i_bz1=0
i_bz=1
end if 

 if i= 11  and i_number[i] = "零" then   //解决10亿问题
i_number[i] = "亿"
i_bz1=0
i_bz=1
end if 

 ////////////////////////////////////////零处理: 元后没零,没有多零
 if ( i_bz1 = 1 and i_bz > 0) or i_bz > 1 then 
i_number[i] = ""
 end if 
 if  i_number[i] <> "" then

if i = 11  then             /////////////////////// 解决亿万问题
if i_number[10] = "" and i_number[9] = "" and i_number[8] = "" and i_number[7] = "万" then
i_rmb = right(i_rmb ,len(i_rmb) - 1)
end if
end if 

i_rmb= i_number[i]  + i_rmb

     end if 
next
messagebox('',i_rmb)

热点排行