以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  代码校正  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=67376)

--  作者:wangyinming
--  发布时间:2015/4/23 9:40:00
--  代码校正
我不想重复输入数据,所以写了以下代码,但是还是可以输入相同的数据,请高手看看

Select Case e.DataCol.name
    Case "作业类别1_摆放","工号","作业类别1_收取","管理号码","管理号码1","开始时间","结束时间"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("工号") = False AndAlso dr.IsNull("工号") = False AndAlso dr.IsNull("作业类别1_摆放") = False AndAlso dr.IsNull("开始时间") = False AndAlso dr.IsNull("结束时间") = False AndAlso dr.IsNull("管理号码1") = False AndAlso dr.IsNull("作业类别1_收取") = False AndAlso dr.IsNull("管理号码") =False Then
            If e.DataTable.Compute("Count([_Identify])","工号 = \'" & dr("工号") & "\' And 作业类别1_收取= \'" & dr("作业类别1_收取") & "\' And 管理号码= \'" & dr("管理号码") & "\'And 开始时间= \'" & dr("开始时间") & "\' And 管理号码1= \'" & dr("管理号码1") & "\' And 结束时间= \'" & dr("结束时间") & "\'  And 作业类别1_摆放= \'" & dr("作业类别1_摆放") & "\'") > 1 Then
                MessageBox.Show("同一工号已经存在相同管理号码和生产数,请确认是否重复输入!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                e.DataRow(e.DataCol.Name) = e.OldValue \'取消输入
            End If
        End If
End Select

--  作者:Bin
--  发布时间:2015/4/23 9:42:00
--  
http://www.foxtable.com/help/topics/2481.htm
--  作者:wangyinming
--  发布时间:2015/4/23 12:16:00
--  
我重新理了一下,还是不行啊

是不是我复制了上一条数据的原因啊

有没有办法解决啊????

DataRowAdding
e.DataRow("工程") = Tables("二次加硫").Rows(Tables("二次加硫").Count - 1)("工程")
e.DataRow("作业日期") = Tables("二次加硫").Rows(Tables("二次加硫").Count - 1)("作业日期")
e.DataRow("管理号码") = Tables("二次加硫").Rows(Tables("二次加硫").Count - 1)("管理号码")
e.DataRow("加硫炉号") = Tables("二次加硫").Rows(Tables("二次加硫").Count - 1)("加硫炉号")

e.DataRow("管理号码1") = Tables("二次加硫").Rows(Tables("二次加硫").Count - 1)("管理号码1")
e.DataRow("生产数") = Tables("二次加硫").Rows(Tables("二次加硫").Count - 1)("生产数")



DataColChanged
Select Case e.DataCol.name
    Case "作业日期","加硫炉号","管理号码","管理号码1","生产数","开始时间","结束时间"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("作业日期") = False AndAlso dr.IsNull("作业日期") = False AndAlso dr.IsNull("加硫炉号") = False AndAlso dr.IsNull("管理号码") = False AndAlso dr.IsNull("管理号码1") = False AndAlso dr.IsNull("生产数")= False AndAlso dr.IsNull("开始时间") = False AndAlso dr.IsNull("结束时间") =False Then
            If e.DataTable.Compute("Count([_Identify])","作业日期 = \'" & dr("作业日期") & "\' And 加硫炉号= \'" & dr("加硫炉号") & "\' And 管理号码= \'" & dr("管理号码") & "\'And 管理号码1= \'" & dr("管理号码1") & "\' And 生产数= \'" & dr("生产数") & "\' And 开始时间= \'" & dr("开始时间") & "\'  And 结束时间= \'" & dr("结束时间") & "\'") > 1 Then
                MessageBox.Show("同一工号已经存在相同管理号码和生产数,请确认是否重复输入!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                e.DataRow(e.DataCol.Name) = e.OldValue \'取消输入
            End If
        End If
End Select


--  作者:wangyinming
--  发布时间:2015/4/23 13:29:00
--  
怎么没有人指导


--  作者:Bin
--  发布时间:2015/4/23 14:04:00
--  
因为我们不是机器人,是生物,所以有生物五大缺憾:  吃喝拉撒睡

代码一眼看过去,理应没有问题.你做个可以重现问题的例子文件发上来看看.