以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [讨论]支piao格式问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=11360)

--  作者:hzcaqjf
--  发布时间:2011/7/19 17:25:00
--  [讨论]支piao格式问题
Output.Show(CCNumber(2011)) 执行后显示为"贰仟零壹拾壹",这好象不符合支票格式.支票格式应显示为"贰零壹壹",请问有别的方法吗?
--  作者:kylin
--  发布时间:2011/7/19 17:31:00
--  

这样要求的函数得自己写了,呵呵

 

只需要简单一一对应就可以,吃完饭后我试写个代码


--  作者:狐狸爸爸
--  发布时间:2011/7/19 17:33:00
--  

也可以看看这个:

 

http://www.foxtable.net/help/topics/1608.htm

 


--  作者:hzcaqjf
--  发布时间:2011/7/19 17:41:00
--  

虽然还是不懂,但对狐爸的回复速度之快还是感到热心和惊讶.在此多谢!

2楼的Kylin也一并谢了.

[此贴子已经被作者于2011-7-19 17:44:43编辑过]

--  作者:kylin
--  发布时间:2011/7/19 18:23:00
--  

在DataColChanged事件中写入代码:

If e.DataCol.Name = "金额" Then
    If e.NewValue >0 Then
        Dim tx,tx1 As String
        Dim s As  String = Format( math.round(e.DataRow("金额")*100,0),"00000000000")
        For i As Integer =0 To 10
            Select  Case s.SubString(i,1)
                Case "0"
                    tx = "零"
                Case "1"
                    tx = "壹"
                Case "2"
                    tx = "贰"
                Case "3"
                    tx = "叁"
                Case "4"
                    tx = "肆"
                Case "5"
                    tx = "伍"
                Case "6"
                    tx = "陆"
                Case "7"
                    tx = "柒"
                Case "8"
                    tx = "捌"
                Case "9"
                    tx = "玖"
            End Select
            tx1 = tx1 & tx
        Next
        e.DataRow("大写金额") = tx1
    End If
End If

[此贴子已经被作者于2011-7-19 18:24:47编辑过]

--  作者:hzcaqjf
--  发布时间:2011/7/19 21:24:00
--  

   支票上的年份大写如"2011"年,只能显示为"贰零壹壹"年,不能显示为"零零零零零贰零壹壹零零"年.就象易表的"CUNum"函数.不过,"Kylin"您的代码给了我一点提示,谢谢您!

  最好希望狐爸提供一个属于狐表的"CUNum"函数!


--  作者:hzcaqjf
--  发布时间:2011/7/19 21:47:00
--  

易表:

CUNUM

将数字转换为大写中文格式。例如:CUNUM(123)="壹贰叁"

CUNUMBER

将数字转换为大写中文格式。例如:CUNUMBER(123)="壹佰贰拾叁"

狐表:

CCNumber(123) = "壹佰贰拾叁"

CUNumber(123) = "壹佰贰拾叁"

"CCnumber"与"CUnumber" 两函数有重复嫌疑.


--  作者:mr725
--  发布时间:2011/7/19 22:54:00
--  

Dim DateStr As String
DateStr = CUDate(#12/31/2008#)
Output.Show(DateStr)

 

上述代码的输出为:贰零零捌年拾贰月叁拾壹日


--  作者:mr725
--  发布时间:2011/7/20 0:10:00
--  

如果是纯数字,可以自己写代码:

 

Dim sz As String = "零,壹,贰,叁,肆,伍,陆,柒,捌,玖"
Dim nm As String = "0,1,2,3,4,5,6,7,8,9"
Dim db As Double = 2011
Dim ss As String
For i As Integer = 1 To str(db).length-1
    For ii As Integer = 0 To nm.split(",").length -1
        If str(db)(i) = nm.split(",")(ii)
            ss = ss & sz.split(",")(ii)
        End If
    Next
Next
output.show("数字 2011 转换成大写:" & ss)     \'结果等于 : 贰零壹壹

[此贴子已经被作者于2011-7-20 0:10:30编辑过]

--  作者:kylin
--  发布时间:2011/7/20 7:56:00
--  
这个代码不错,学习了,呵呵