Lotus的金额大小写转换

在群里找人要来的,原来打算改成C#,熊找腾讯的同学要了一份C#的,就省点力气了。
Dim  Session  As   New  NotesSession
    
Dim  db  As  NotesDatabase
    
Dim  doc  As  NotesDocument    
    
Set  db  =  Session.CurrentDatabase
    
Set  doc  =  Session.DocumentContext    
        
' 将数字转换在人民币在写
     Dim   strMoney ,strDec, strInt, cNum ,tmp1  As   String
    
Dim  subString  As   String
    
Dim  locDec, i, j  As   Integer  
    
Dim  d( 4 As   String                                    ' 元以下的单位
     Dim  t( 3 As   String                                    ' 万以下的单位
     Dim  w( 3 As   String                                    ' 阶符
     Dim  n( 9 As   String                                    ' 数字
     Dim  s( 4 As   String                                    ' 用以保存临时转化后的值
    
    d(
0 =   " "
    d( 1 =   " 角"
    d( 2 =   " 分"
    d( 3 =   " 厘"
    d( 4 =   " 毫"
    t( 0 =   " "
    t( 1 =   " 拾"
    t( 2 =   " 佰"
    t( 3 =   " 仟"
    w( 0 =   " "
    w( 1 =   " 圆"
    w( 2 =   " 万"
    w( 3 =   " 亿"
    n( 0 =   " 零"
    n( 1 =   " 壹"
    n( 2 =   " 贰"
    n( 3 =   " 叁"
    n( 4 =   " 肆"
    
    n(
5 =   " 伍"
    n( 6 =   " 陆"
    n( 7 =   " 柒"
    n( 8 =   " 捌"
    n( 9 =   " "      

If   Trim (doc.Smoney( 0 )) <> ""   Then
        
        strMoney 
=   Trim (doc.Smoney( 0 ))
        
        locDec 
=   Instr (strMoney,  " . " )  
        s(
0 =   " "
        
        
If  locDec  >   0   Then
            strDec 
=   Right (strMoney,  Len (strMoney)  -  locDec)
            
            
If  strDec  <>   ""   Then                          ' 转化小数部分
                 For  i  =   1   To   Len (strDec)
                    cNum 
=   Left (strDec,  1 )
                    strDec 
=   Right (strDec,  Len (strDec)  -   1 )
                    
If  cNum  <>   " 0 "   Then
                        s(
0 =  s( 0 &  n(Val(cNum))  &  d(i)
                        
                    
End   If
                
Next
            
End   If
            strInt 
=   Left (strMoney, locDec  -   1 )          ' 取整数部分的值
         Else
            strInt 
=  strMoney
        
End   If
        
        
For  i  =   0   To   Len (strInt)  /   4              ' 每4个数字一组进行转换
            
            s(i 
+   1 =   " "
             For  j  =   0   To   3
                
If  strInt  <>   ""   Then
                    cNum 
=   Right (strInt,  1 )      ' 取末位数
                    strInt  =   Left (strInt,  Len (strInt)  -   1 )
                    
If  cNum  <>   " 0 "   Then           ' 不为零则加单位
                        s(i  +   1 =  n(Val(cNum))  &  t(j)  &  s(i  +   1 )
                    
Else
                        
                        s(i 
+   1 =  n(Val(cNum))  &  s(i  +   1 )
                    
End   If
                
End   If  
                doc.temp1
= s(i + 1 )
                                           
' 删除重复的"零"
                doc.temp1 = Evaluate(|@ReplaceSubstring(temp1; " 零零 " ; " " )|,doc)
                s(i
+ 1 ) = doc.temp1( 0 )
            
Next  
    
If   Right (s(i  +   1 ),  1 =   " "   Then     ' 删除末位的"零"
                s(i  +   1 =   Left (s(i  +   1 ),  Len (s(i  +   1 ))  -   1 )
            
End   If
            
            
        
Next
        
        Num2Money 
=   " "
         For  i  =   0   To   2  
            
If   Trim (s( 3   -  i))  =   ""   Then
                temp
= " "
             Else  
                temp
= w( 3   -  i)
            
End   If
                                
' 连接整数位
            Num2Money  =  Num2Money  &  s( 3   -  i)  &   temp
        
Next
        
                                            
' 加上"元"
         If   Trim (Num2Money)  <>   ""   And   Right (Num2Money,  1 <>   " "   Then
            Num2Money 
=  Num2Money  &   " 圆"
            
        
End   If
                                            
' 若无小数则加应加上"整"
         If   Trim (s( 0 ))  =   ""   Then
            Num2Money 
=  Num2Money  &   " 正"
            doc.Bmoney = Num2Money
        
Else
            Num2Money 
=  Num2Money  &  s( 0 )
            doc.Bmoney
= Num2Money
        
End   If     
    
Else
        doc.Bmoney
= " "
     End   If         
    
Call  doc.save( True , True )     

你可能感兴趣的:(Lotus)