我是一个刚学vb的新手,最近单位要我开发一个票据打印程序这里碰到一个问题如何才能实现票据栏中金额栏内数据的输入,计算结果及结果转换成大写.我用的票据是十万元版的请大侠帮帮小弟.
解决方案 »
- VB使用WINSOCK作数据转发
- 如何打开一个大型文件,并把文件里的数据按类别显示在各个TEXTBOX中!
- 请教一个问题
- vb MSHFlexGrid显示完整一行
- 网页自动提交单选按钮和文本框
- 日期型到字符型的转换有哪些函数?怎样使用?
- vb中调用vc写的dll的问题
- 请教:利用VB导出EXCEL后,如何能在VB中有代码实现EXCEL单元格合并的问题,请给代码.在线等候.
- ADO的问题,特急~~需要帮助。
- VolumeSerialNumber^=0x90909090; 怎么表示?
- 使用Winsock控件在服务器端接受多个请求为什么出问题????急
- 调出了WINDOWS的打印设置窗口(SHOWPRINTER),如何传递打印序列??
'* 名称:nNumber2Chinese
'* 功能:数值转换为人民币(汉字)
'* 用法:nNumber2Chinese(数值)
'*********************************************************
Public Function Num2Chi(txtJE As Double) As String
Dim I, K As Integer
Dim NC, nd, ka, chrNum, strZheng As String
Dim c1, c2, c3 As String
Dim K1 As Integer
Dim Zheng As String
Dim Xiao As String
NC = Trim(Format(txtJE, "##0.00"))
c1 = "仟佰拾万仟佰拾亿仟佰拾万仟佰拾元"
c2 = "角分"
c3 = "玖捌柒陆伍肆叁贰壹"
If NC = 0 Then
Num2Chi = "零元整"
Exit Function
End If
Num2Chi = ""
Zheng = Mid(NC, 1, (Len(NC) - 3))
Xiao = Mid(NC, (Len(Zheng) + 2))
If Val(Xiao) <> 0 Then
For I = Len(Xiao) To 1 Step -1
chrNum = Mid(Xiao, I, 1)
If chrNum <> 0 Then
Num2Chi = Mid(c2, I, 1) & Num2Chi
Num2Chi = Mid(c3, (Len(c3) - chrNum + 1), 1) & Num2Chi
End If
Next I
End If
K = 0
If Val(Zheng) <> 0 Then
Num2Chi = "元" & Num2Chi
For I = Len(Zheng) To 1 Step -1
If (Len(Zheng) - I) = 4 Then
Num2Chi = "万" & Num2Chi
ElseIf (Len(Zheng) - I) = 8 Then
Num2Chi = "亿" & Num2Chi
ElseIf (Len(Zheng) - I) = 12 Then
Num2Chi = "万" & Num2Chi
End If
chrNum = Mid(Zheng, I, 1)
If chrNum <> 0 Then
If I = Len(Zheng) Then
Num2Chi = Mid(c3, (Len(c3) - chrNum + 1), 1) & Num2Chi
Else
If (Len(Zheng) - I) <> 4 And (Len(Zheng) - I) <> 8 And (Len(Zheng) - I) <> 12 Then
Num2Chi = Mid(c1, (Len(c1) - K), 1) & Num2Chi
End If
Num2Chi = Mid(c3, (Len(c3) - chrNum + 1), 1) & Num2Chi
End If
Else
If Mid(Num2Chi, 1, 1) <> "元" And Mid(Num2Chi, 1, 1) <> "万" And Mid(Num2Chi, 1, 1) <> "亿" Then
If Mid(Num2Chi, 1, 1) <> "零" Then
Num2Chi = "零" & Num2Chi
End If
End If
End If
K = K + 1
Next I
End If
If Right(Trim(Num2Chi), 1) <> "分" Then
Num2Chi = Num2Chi & "整"
End If
End Function
Function Captal(Amount As Currency) As String
Dim ret$, d&, i#, t&, c%
Const IStep = "元万亿"
d = (Amount - Int(Amount)) * 100
ret = CaptalDecimal(d)
i = Int(Amount): c = 1
Do Until i = 0
t = i Mod 10000
i = i \ 10000
If t > 0 Then
ret = Mid$(IStep, c, 1) & ret
ret = CaptalThousand(t) & ret
Else
If c = 1 Then ret = Mid$(IStep, c, 1) & ret
End If
c = c + 1
Loop
Do Until Left$(ret, 1) <> "零": ret = Mid$(ret, 2): Loop
If Len(ret) = 1 And ret = "整" Then ret = "零"
Captal = ret
End FunctionFunction CaptalDigit(n As Integer) As String
Const Digit = "零壹贰叁肆伍陆柒捌玖"
CaptalDigit = Mid$(Digit, 1 * n + 1, 1)
End Function
发给你.
我一直在用的
绝不会转错