Foxtable(狐表)用户栏目专家坐堂 → 请教:关于日期的判断以及日期控件


  共有3278人关注过本帖树形打印复制链接

主题:请教:关于日期的判断以及日期控件

帅哥哟,离线,有人找我吗?
bahamute
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1423 积分:11310 威望:0 精华:0 注册:2008/9/1 22:20:00
请教:关于日期的判断以及日期控件  发帖心情 Post By:2014/8/4 19:38:00 [只看该作者]

“签订时间”列为日期格式,“所属年度”列的值从“签订时间”列取年度值。

If e.DataCol.Name = "签订日期" Then
    e.DataRow("年度") =Format(e.DataRow("签订日期"), "yyyy")
End If

1、上述代码在输入“签订时间”格式无误的情况下,运行正常,一旦日期格式错误,项目就会挂掉,请教如何判断日期输入格式正确?
2、日期控件能否禁止掉手动输入?



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/4 19:42:00 [只看该作者]

 日期格式根本不能输入有错的日期啊

 

If e.DataCol.Name = "签订日期" AndAlso e.NewValue <> Nothing Then
    e.DataRow("年度") =Format(e.DataRow("签订日期"), "yyyy")
End If

 回到顶部
帅哥哟,离线,有人找我吗?
bahamute
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1423 积分:11310 威望:0 精华:0 注册:2008/9/1 22:20:00
  发帖心情 Post By:2014/8/4 19:47:00 [只看该作者]

比如误操作,我刚刚试了一下,在日期控件输入一个不完整的日期,比如2014-4-,然后单击其他控件,项目就会报错然后挂掉。
所以才想到判断日期格式是否完整。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/4 19:48:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
bahamute
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1423 积分:11310 威望:0 精华:0 注册:2008/9/1 22:20:00
  发帖心情 Post By:2014/8/4 20:30:00 [只看该作者]

以下代码无效,如果输入日期格式错误,项目任然报错。

Validating事件:

If e.Sender.Value <>"" Then
    Dim d As Date '变量d用于存储转换结果
    Dim dt As Date = e.Sender.Value
    If Date.TryParse(dt, d) Then '如果转换成功
        e.Sender.WriteValue()
    Else
        messagebox.Show("无效日期格式","提示",MessageBoxButtons.ok, MessageBoxIcon.warning) '给出错误提示
        e.Cancel=True
    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/4 20:33:00 [只看该作者]

改一下

 

If e.Sender.Text <>"" Then
    Dim d As Date '变量d用于存储转换结果
    If Date.TryParse(e.Sender.Text, d) Then '如果转换成功
        e.Sender.WriteValue()
    Else
        messagebox.Show("无效日期格式","提示",MessageBoxButtons.ok, MessageBoxIcon.warning) '给出错误提示
        e.Cancel=True
    End If
End If

 回到顶部