Foxtable(狐表)用户栏目专家坐堂 → [求助]日期大小判定代码


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

主题:[求助]日期大小判定代码

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


加好友 发短信
等级:幼狐 帖子:51 积分:592 威望:0 精华:0 注册:2018/7/5 21:52:00
[求助]日期大小判定代码  发帖心情 Post By:2019/10/8 10:32:00 [只看该作者]

附件中的“开始时间”和“结束时间” 都可以修改,但是要求:
要求:1、同一行“结束时间”必须大于“开始时间”
        2、同年月日的下一行的“开始时间”必须大于上一行的“结束时间”
当违反这些要求时系统会提示。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:业务记录.xlsx



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


加好友 发短信
等级:超级版主 帖子:105481 积分:536396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/8 10:57:00 [只看该作者]

datacolchanging事件

Select Case e.DataCol.Name
    Case "开始时间","结束时间"
        If e.DataRow.IsNull("开始时间") OrElse e.DataRow.IsNull("结束时间")
        Else
            If e.DataRow("开始时间") >= e.DataRow("结束时间") Then
                msgbox("结束时间必须大于开始时间")
                e.Cancel = True
            End If
        End If
        If e.DataCol.Name = "开始时间" Then
            Dim dr As DataRow = e.DataTable.Find("[_Identify] < " & e.DataRow("_Identify"),"[_Identify] desc")
            If dr IsNot Nothing Then
                If e.DataRow("开始时间") <= dr("结束时间") Then
                    msgbox("开始时间必须大于上一行结束时间")
                    e.Cancel = True
                End If
            End If
        End If
End Select

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


加好友 发短信
等级:幼狐 帖子:51 积分:592 威望:0 精华:0 注册:2018/7/5 21:52:00
  发帖心情 Post By:2019/10/8 11:33:00 [只看该作者]

谢谢。如果按照人员工号判定呢?比如:工号:1001的人员,只判定该人员在2019-09-09的开始时间和结束时间。但是不判定1002人员的,当判定1002人员的时候,不判定1001人员的。意思是:同年月日的下一行的“开始时间”必须大于上一行的“结束时间”  仅限于该工号人员。不同工号人员之间不受限制。请看附件。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:业务记录.xlsx


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


加好友 发短信
等级:超级版主 帖子:105481 积分:536396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/8 13:54:00 [只看该作者]

Dim dr As DataRow = e.DataTable.Find("[_Identify] < " & e.DataRow("_Identify") & " and 工号='" & e.DataRow("工号") & "'","[_Identify] desc")

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


加好友 发短信
等级:幼狐 帖子:51 积分:592 威望:0 精华:0 注册:2018/7/5 21:52:00
  发帖心情 Post By:2019/10/8 14:34:00 [只看该作者]

同一行,虽然修改开始时间,会提示。但是开始时间还是可以修改过来,修改过后的时间还是会大于结束时间。请看附件截图。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:业务记录.xlsx

[此贴子已经被作者于2019/10/8 14:34:20编辑过]

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


加好友 发短信
等级:超级版主 帖子:105481 积分:536396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/8 14:38:00 [只看该作者]

我测试没有问题,上传实例说明

代码放到datacolchanging事件,不是datacolchanged事件

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


加好友 发短信
等级:幼狐 帖子:51 积分:592 威望:0 精华:0 注册:2018/7/5 21:52:00
  发帖心情 Post By:2019/10/10 11:24:00 [只看该作者]

请帮忙看看附件实例,谢谢。

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


加好友 发短信
等级:幼狐 帖子:51 积分:592 威望:0 精华:0 注册:2018/7/5 21:52:00
  发帖心情 Post By:2019/10/10 11:24:00 [只看该作者]

请帮忙看看附件实例,谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:时间大小判定.zip


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


加好友 发短信
等级:超级版主 帖子:105481 积分:536396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/10 11:30:00 [只看该作者]

Select Case e.DataCol.Name
    Case "开始时间"
        If e.DataRow.IsNull("开始时间") = False
            If e.NewValue >= e.DataRow("结束时间") Then
                msgbox("结束时间必须大于开始时间")
                e.Cancel = True
            End If
            Dim dr As DataRow = e.DataTable.Find("[_Identify] < " & e.DataRow("_Identify") & " and 工号='" & e.DataRow("工号") & "'","[_Identify] desc")
            If dr IsNot Nothing Then
                If e.NewValue <= dr("结束时间") Then
                    msgbox("开始时间必须大于上一行结束时间")
                    e.Cancel = True
                End If
            End If
        End If
    Case "结束时间"
        If e.DataRow.IsNull("结束时间") = False
            If e.DataRow("开始时间") >= e.NewValue Then
                msgbox("结束时间必须大于开始时间")
                e.Cancel = True
            End If
        End If

End Select

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


加好友 发短信
等级:幼狐 帖子:51 积分:592 威望:0 精华:0 注册:2018/7/5 21:52:00
  发帖心情 Post By:2019/10/10 13:03:00 [只看该作者]

非常感谢。

 回到顶部
总数 28 1 2 3 下一页