水晶報表 人民幣大寫轉換函式

2021-04-22 16:32:38 字數 2985 閱讀 8539

當您需要做乙個諸如出入庫單的報表時,經常會用到人民幣總金額的彙總,並希望列印出來的時候有人民幣的大寫,所以您需要插入乙個sum函式來進行合計,那麼合計出來的阿拉伯數字的人民幣如何轉換成中文大寫呢?

以下**將幫你完**民幣大寫的轉換,您必須新增乙個字串型別的未邦定字段到您的水晶報表,然後將上面您已經sum好的阿拉伯數字作為乙個引數傳遞到下面**中的函式。即得到了人民幣的大寫。

function convertrmb (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,"零元","元")

convertrmb =dx_str

end function

該文章**自網路大本營:http://www.xrss.cn/dev/dotnet/2007102817215.html

水晶報表人民幣

stringvar x stringvar xx numbervar z numbervar i x totext x replace x,x replace x,x replace x,x replace x,z length x for i z to 1 step 1 do stringvar ...

人民幣大寫轉換

人民幣大寫轉換 param numbervalue 人民幣小寫 return rmbcapital function numbervalue var chinesevalue 轉換後的漢字金額 var string1 零壹貳叄肆伍陸柒捌玖 漢字數字 var string2 萬仟佰拾億仟佰拾萬仟佰拾元...

pascal 人民幣大寫轉換

我們在程式設計的過程中,特別是開發和財務相關的應用程式的時候,幾乎都會遇到要將阿拉伯數字 一般是貨幣金額 轉換為中文大寫的要求。也有一些轉換程式,但大都不符合財務實際要求,比如最簡單的 function xd xx currency string var dx,ws string i,cd inte...