zoukankan      html  css  js  c++  java
  • 水晶报表中人民币大写的转换函数



    水晶报表中人民币大写的转换函数
    Function RMB (ls as currency) as string
        dim dx_sz as string
        dim dx_dw as string
        dim str_int as string
        dim str_dec as string
        dim dx_str as string
        dim fu as string
        dim a as string
        dim b as string
        dim c as string
        dim d as string
        dim b2 as string
        dim num_int as number
        dim num_dec as currency
        dim len_int as number
        dim i as number
        dim a_int as number
        dim pp as number

        dx_sz="零壹贰叁肆伍陆柒捌玖"
        dx_dw="万仟佰拾亿仟佰拾万仟佰拾元"
       
        if ls<0 then
            ls=abs(ls)
            fu="负"
        else
            fu=""
        end if

        dx_str=CStr (ls)
        dx_str=Replace (dx_str,"¥","")
        dx_str=replace(dx_str,",","")
        if (ls>0) and (ls<1) then dx_str="0"+dx_str
       
        pp=InStr (dx_str,".")  
        if pp>0 then
            str_int=mid(dx_str,1,instr(dx_str,".")-1)
        else
            str_int=dx_str
        end if

        num_int=ToNumber (str_int)

        if (ls>0) and (ls<1) then
            num_dec =  ls*100
        else
            num_dec=(ls-num_int)*100
        end if

        str_dec=totext(num_dec)
        str_dec=replace(str_dec,"¥","")

        len_int=len(str_int)
        dx_str=""
        for i=1 to len_int
            a=mid(str_int,i,1)
            a_int=tonumber(a)
            b=mid(dx_sz,(a_int+1),1)
            c=mid(dx_dw,(13-len_int+i),1)
            if dx_str<>"" then
                d=mid(dx_str,len(dx_str)-1,1)
            else
                d=""
            end if
            if(b="零") and ((d="零") or (b=b2) or (c="元") or (c="万") or (c="亿")) then b=""
            if(a="0") and (c<>"元") and (c<>"万") and (c<>"亿") then c=""
            if((c="元") or (c="万") or (c="亿")) and (d="零") and (a="0") then
                dx_str=mid(dx_str,1,len(dx_str)-2)
                d=mid(dx_str,len(dx_str)-1,2)
                if((c="元") and (d="万"))or((c="万") and (d="亿")) then c=""
            end if
            dx_str=dx_str+b+c
            b2=b
        next i

        '处理金额小于1的情况
        if len(dx_str)<=2 then dx_str=""
        if(num_dec<10)and(ls>0) then
            a_int=tonumber(str_dec)
            b=mid(dx_sz,(a_int+1),1)
            if num_dec=0 then dx_str=dx_str+"整"
            if num_dec>0 then dx_str=dx_str+"零"+b+"分"
        end if
        if num_dec>=10 then
            a_int=tonumber(mid(str_dec,1,1))
            a=mid(dx_sz,(a_int+1),1)
            a_int=tonumber(mid(str_dec,2,1))
            b=mid(dx_sz,(a_int+1),1)
            if a<>"零" then a=a+"角"
            if b<>"零" then b=b+"分" else b=""
            dx_str=dx_str+a+b
        end if
        if ls=0 then dx_str="零元整"
        dx_str=fu+dx_str

        dx_str=replace(dx_str,"零亿","亿")
        dx_str=replace(dx_str,"零万","万")
        dx_str=replace(dx_str,"零千","千")
        dx_str=replace(dx_str,"零元","元")


        RMB =dx_str
    End Function

  • 相关阅读:
    Markdown语法帮助文档
    react-native-vector-icons使用方法
    如何创建Pull Request,以开源项目ant design pro为例
    4.环境变量总结篇
    3.Flutter之hello_world
    构建之法 阅读笔记03
    学习进度14
    团队项目-个人博客6.5
    团队项目-个人博客6.4
    构建之法 阅读笔记02
  • 原文地址:https://www.cnblogs.com/qiao198/p/318158.html
Copyright © 2011-2022 走看看