Foxtable(狐表)用户栏目专家坐堂 → [求助]判断时间冲突的代码求助,10日更新问题


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

主题:[求助]判断时间冲突的代码求助,10日更新问题

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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2015/8/10 13:46:00 [只看该作者]

老师,我终于搞定了,您写的代码还是不行,我为了简化代码,将起始时间与结束时间分开判断,代码如下:

'同卷号时间冲突判断
If e.DataCol.Name = "审核" AndAlso e.NewValue = True Then
    Dim dr1 As DataRow = _dt工序合并表.SQLFind("([起始时间] < '" & e.DataRow("起始时间") & "' and [结束时间] > '" & e.DataRow("起始时间") & "') And [卷号] = '" & e.DataRow("卷号") &"'")
    If dr1 IsNot Nothing Then
        e.Cancel = True
        MessageBox.Show("同卷号[起始时间]冲突,未修复前禁止审核!" & vbcrlf & "冲突工序:   " & dr1("来源表名") & vbcrlf & "行号流水:   " & dr1("行号流水") ,"提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Else
        Dim dr2 As DataRow = _dt工序合并表.SQLFind("([起始时间] < '" & e.DataRow("结束时间") & "' and [结束时间] > '" & e.DataRow("结束时间") & "') And [卷号] = '" & e.DataRow("卷号") &"'")
        If dr2 IsNot Nothing Then
            e.Cancel = True
            MessageBox.Show("同卷号[结束时间]冲突,未修复前禁止审核!" & vbcrlf & "冲突工序:   " & dr2("来源表名") & vbcrlf & "行号流水:   " & dr2("行号流水") ,"提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
        Else
            Dim dr3 As DataRow = _dt工序合并表.SQLFind("([起始时间] > '" & e.DataRow("起始时间") & "' and [结束时间] < '" & e.DataRow("结束时间") & "') And [卷号] = '" & e.DataRow("卷号") &"'")
            If dr3 IsNot Nothing Then
                e.Cancel = True
                MessageBox.Show("同卷号[起始时间]及[结束时间]冲突,未修复前禁止审核!" & vbcrlf & "冲突工序:   " & dr3("来源表名") & vbcrlf & "行号流水:   " & dr3("行号流水") ,"提示",MessageBoxButtons.OK,MessageBoxIcon.Information)               
            End If
        End If
    End If
End If

三层IF看的有点烦,有办法改进吗?
[此贴子已经被作者于2015/8/10 13:47:41编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/10 14:06:00 [只看该作者]

10楼的代码如果不行,就做例子上来,基本没问题。


 回到顶部
总数 12 上一页 1 2