當您需要做乙個諸如出入庫單的報表時,經常會用到人民幣總金額的彙總,並希望列印出來的時候有人民幣的大寫,所以您需要插入乙個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...