把货币金额转换成大写的函数(水晶报表BASIC语言版)

水晶报表的脚本编码语言Basic Syntax 我不知道是什么类型的Basic .我用VB SCRIPT 在WEB脚本里调试得好好的放到水晶报表里确不能用.
几经摸索修改,总算调试通过了.希望对大家有所帮助.

Function Moneyc (thenumber as string)
  dim Money as string
  dim i as number
  dim String1 as string
  dim String2 as string
  dim ilength as number
  dim checkp as string '定义变量
  dim one(100) as string
  dim onestr(100) as string '定义数组
  dim thenumber2 as number

  String1 = "零壹贰叁肆伍陆柒捌玖"
  String2 = "万仟佰拾亿仟佰拾万仟佰拾元角分厘毫"

'   checkp=instr(thenumber,".")     '判断是否含有小数位
   thenumber2 = instr(thenumber,".")
   if instr(thenumber,".")<>0 then
       thenumber=replace(thenumber,".","")    '去除小数位
   end if
    ilength=len(thenumber) '取得数据长度


  for i=1 to ilength

     one(i)=mid(thenumber,i,1) '循环取得每一位的数字
     one(i)=mid(string1,ToNumber (one(i))+1,1)'循环取得数字对应的大写

              if thenumber2>i then    '不含有小数的数据其数字对应的单位
                   onestr(i)=mid(string2,14-thenumber2+i,1)
               else              '含有小数的数据其数字对应的单位
                   onestr(i)=mid(string2,14+i-thenumber2,1)
              end if
 
   one(i)=one(i)&onestr(i)'将数字与单位组合
  next

    Money=replace(join(one)," ","") '取得数组中所有的元素,并连接起来
    Money=replace(Money,"零元","元")
    Money=replace(Money,"零万","万")
    Money=replace(Money,"零亿","亿")
    Money=replace(Money,"零仟","零")
    Money=replace(Money,"零佰","零")
    Money=replace(Money,"零拾","零")

   do while not (instr(Money,"零零")=0 )
        Money=replace(Money,"零零","零")
   loop

 Moneyc=replace(Money,"零元","元")

End Function

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值