以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  piao据套打中金额大写套打好麻烦,有没简单点的?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=1725)

--  作者:菜鸟foxtable
--  发布时间:2009/2/3 21:27:00
--  piao据套打中金额大写套打好麻烦,有没简单点的?
大家可以看到金额大写栏,原本是有万仟佰拾元角分这些字的.
示例中提供了大写转换

CUMoney

将阿拉伯数字转换为中文货币格式。

语法

CUMoney(Value)

Value:要转换的阿拉伯数字。

例如:

Dim Currency as String
Currency = CUMoney(
12345.12
)
Output.Show(Currency)

输出为:壹万贰千叁佰肆拾伍圆壹角贰分


我用的笨办法,把合计小写金额每一位数设定一个对应列,然后进行套打.有没简单点的办法?


  合计   万  仟    佰    拾    元    角    分           
   12345.12  壹     贰     叁   肆     伍    壹    贰        


图片点击可在新窗口打开查看此主题相关图片如下:住院发票.jpg
图片点击可在新窗口打开查看
--  作者:狐狸爸爸
--  发布时间:2009/2/3 21:56:00
--  

CUNumber加GetDigit,两个函数轻松搞定。
没有必要单独的列,套打的时候再计算即可。


--  作者:菜鸟foxtable
--  发布时间:2009/2/4 5:58:00
--  

老爹,m变量大写前面那个¥符号不会搞...

感觉上可以利用Length函数..

dim m as double = 12345.67
output.show(CUNumber(GetDigit(m,0)))

[此贴子已经被作者于2009-2-4 8:22:06编辑过]

--  作者:狐狸爸爸
--  发布时间:2009/2/4 15:20:00
--  
dim m as double = 12345.67
Dim i As String = GetDigit(m,5)
If Char.IsNumber(i) Then
  Output.Show(CuNumber(i))
Else
  Output.Show(i)
End If

--  作者:菜鸟foxtable
--  发布时间:2009/2/5 0:44:00
--  
以下是引用狐狸爸爸在2009-2-4 15:20:00的发言:
dim m as double = 12345.67
Dim i As String = GetDigit(m,5)
If Char.IsNumber(i) Then
  Output.Show(CuNumber(i))
Else
  Output.Show(i)
End If

老爹的方法只能针对固定位数的数值.


--  作者:狐狸爸爸
--  发布时间:2009/2/5 0:47:00
--  
我提供一个思路而已,上面的代码完全用于套打再方便不过了。
图片点击可在新窗口打开查看
--  作者:菜鸟foxtable
--  发布时间:2009/2/5 9:39:00
--  
图片点击可在新窗口打开查看老爹,俺明白,还是要用Length函数啊.
--  作者:菜鸟foxtable
--  发布时间:2009/2/5 13:16:00
--  
这样就能保证任意位数都能在前面加上¥符号了.

dim m as double = 12345.67
dim r as string = format(m,"0.00")
dim i As integer = r.Length-3
r = GetDigit(r,i)
Output.Show(r & m)
[此贴子已经被作者于2009-2-5 13:19:13编辑过]