以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于生日的转换?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=31986)

--  作者:客家阿哥
--  发布时间:2013/4/24 1:09:00
--  关于生日的转换?
利用身份证号码,用下面代码提取出年、月、日
        e.DataRow("出生年") = ReadBirthday(e.DataRow("身份证号码")).Year
        e.DataRow("出生月") = ReadBirthday(e.DataRow("身份证号码")).Month
        e.DataRow("出生日") = ReadBirthday(e.DataRow("身份证号码")).Day

怎么把

例如1999换成一九九九
      11月换成十一
       6日换成六

--  作者:菲舍尔
--  发布时间:2013/4/24 1:47:00
--  

CUDate(Date)
将日期Date转换为大写中文格式
例如:
CUDate(#12/31/2008#)
等于:
贰零零捌年拾贰月叁拾壹日

CLDate(Date)
将日期Date转换为小写中文格式
例如:
CLDate(#12/31/2008#)
等于:
二○○八年十二月三十一日

CCDate(Date)
将日期Date转换为大写中文格式,符合支票格式
例如:
CUDate(#2/10/2008#)
等于:
贰零零捌年零贰月壹拾日


--  作者:客家阿哥
--  发布时间:2013/4/24 8:44:00
--  
先谢谢  菲舍尔 老师!!!


图片点击可在新窗口打开查看此主题相关图片如下:123.jpg
图片点击可在新窗口打开查看

我自己用笨方法做了一个

If e.DataCol.Name = "身份证号码" Then \'如果更改的是身份证号码列
    If e.DataRow.IsNull("身份证号码") Then \'身份证号码是否为空
        e.DataRow("出生年") = Nothing \'如果为空,则清除出生日期
        e.DataRow("出生月") = Nothing
        e.DataRow("出生日") = Nothing
        e.DataRow("性别") = Nothing
    Else
        \'否则从身份证号码列中提取出生日期
        Dim sr As String = CLDate(ReadBirthday(e.NewValue))
        e.DataRow("出生年") = sr.SubString(0,4)
        Dim yue As String = sr.SubString(6,1)
        
        If yue ="月" Then
            e.DataRow("出生月") = sr.SubString(5,1)            
            If sr.SubString(8,1) ="日" Then
                e.DataRow("出生日") = sr.SubString(7,1)
            ElseIf sr.SubString(9,1) = "日"
                e.DataRow("出生日") = sr.SubString(7,2)
            ElseIf sr.SubString(10,1) = "日"
                e.DataRow("出生日") = sr.SubString(7,3)
            End If
        Else
            e.DataRow("出生月") = sr.SubString(5,2)
            If sr.SubString(9,1) ="日" Then
                e.DataRow("出生日") = sr.SubString(8,1)
            ElseIf sr.SubString(9,1) = "日"
                e.DataRow("出生日") = sr.SubString(8,2)
            ElseIf sr.SubString(9,1) = "日"
                e.DataRow("出生日") = sr.SubString(8,3)
            End If
        End If
        e.DataRow("性别") = ReadSex(e.DataRow("身份证号码"))
    End If
End If
[此贴子已经被作者于2013-4-24 8:49:25编辑过]

--  作者:狐狸爸爸
--  发布时间:2013/4/24 8:52:00
--  

你获得年月日的方法太费力了,参考下面的内容,可以很轻松:

 

http://www.foxtable.com/help/topics/1424.htm

 


--  作者:客家阿哥
--  发布时间:2013/4/24 8:53:00
--  
现在还有一个问题是,专业报表打印(套打),怎么让内容在空格中“居中”????
--  作者:Bin
--  发布时间:2013/4/24 8:56:00
--  
rx.Style.TextAlignVert = prt.AlignVertEnum.Center \'文本垂直居中
    rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中

--  作者:客家阿哥
--  发布时间:2013/4/24 9:30:00
--  
狐爸看帖不认真啊!

我的难处不是获取日期的问题,而是怎么把“11”变成“十一”,“20”变成“二十”等类似的问题!!!