当前位置: 代码迷 >> PB >> 打印大写金额
  详细解决方案

打印大写金额

热度:25   发布时间:2016-04-29 06:41:07.0
求助:打印大写金额
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)
  相关解决方案