Foxtable(狐表)用户栏目专家坐堂 → 不允许输入相同的任务单


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

主题:不允许输入相同的任务单

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


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

ElseIf e.DataCol.Name= "计划数量" Then

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


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

Select Case e.DataCol.name
    Case "装配piao号","类型","SO号","箱号","SO行号","制造产品号","计划数量"
        Dim ph As String = e.DataRow("装配piao号")
        Dim lx As String = e.DataRow("类型")
        Dim soh As String= e.DataRow("SO号")
        Dim xh As String= e.DataRow("箱号")
        Dim sohh As String= e.DataRow("SO行号")
        Dim cph As String= e.DataRow("制造产品号")
        Dim sl As Byte= e.DataRow("计划数量")
        If e.DataCol.Name= "装配piao号" Then
            ph = e.NewValue
        ElseIf e.DataCol.Name= "类型" Then
            lx = e.NewValue
        ElseIf e.DataCol.Name= "SO号" Then
            soh = e.NewValue
        ElseIf e.DataCol.Name= "箱号" Then
            xh = e.NewValue
        ElseIf e.DataCol.Name= "SO行号" Then
            sohh = e.NewValue
        ElseIf e.DataCol.Name= "制造产品号" Then
            cph = e.NewValue
        ElseIf e.DataCol.Name= "计划数量" Then
            sl = e.NewValue
        End If
        Dim dr As DataRow = e.DataRow
        Dim filter As String= "装配piao号 = '" & ph & "' And 类型 = '" & lx & "' And SO号 = '" & soh & "' And 箱号 = '" & xh & "' And SO行号 = '" & sohh & "'And 制造产品号 = '" & cph & "'And 计划数量 = " & sl
        If e.DataTable.SqlFind(filter) IsNot Nothing Then
            MessageBox.Show("已经存在相同piao号/类型/SO号/箱号/SO行号/产品号/数量的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
            e.Cancel = True
        End If
End Select

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


加好友 发短信
等级:六尾狐 帖子:1470 积分:9536 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2018/10/5 13:24:00 [只看该作者]

以上代码可以起作用了,但是无法防止两个用户输入相同的记录。
我们可否以这样的思路来解决:在数据表中增加一栏,比如叫“数据列A”,当其中一个用户输入一行数据时,就将"装配piao号"、"类型"、"SO号"、"箱号"、"SO行号"、"制造产品号"和"计划数量"组合成一个字符串放在“数据列A”,当另一个用户也输入同样的一行数据时,也会产生一样的字符串,此时电脑就要发出警告,不允许继续输入此数据行。但是,这样的代码我不知道如何写。谢谢。

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


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

Select Case e.DataCol.name
    Case "装配piao号","类型","SO号","箱号","SO行号","制造产品号","计划数量"
        Dim ph As String = e.DataRow("装配piao号")
        Dim lx As String = e.DataRow("类型")
        Dim soh As String= e.DataRow("SO号")
        Dim xh As String= e.DataRow("箱号")
        Dim sohh As String= e.DataRow("SO行号")
        Dim cph As String= e.DataRow("制造产品号")
        Dim sl As Byte= e.DataRow("计划数量")
        If e.DataCol.Name= "装配piao号" Then
            ph = e.NewValue
        ElseIf e.DataCol.Name= "类型" Then
            lx = e.NewValue
        ElseIf e.DataCol.Name= "SO号" Then
            soh = e.NewValue
        ElseIf e.DataCol.Name= "箱号" Then
            xh = e.NewValue
        ElseIf e.DataCol.Name= "SO行号" Then
            sohh = e.NewValue
        ElseIf e.DataCol.Name= "制造产品号" Then
            cph = e.NewValue
        ElseIf e.DataCol.Name= "计划数量" Then
            sl = e.NewValue
        End If
        Dim dr As DataRow = e.DataRow
        Dim filter As String= "装配piao号 = '" & ph & "' And 类型 = '" & lx & "' And SO号 = '" & soh & "' And 箱号 = '" & xh & "' And SO行号 = '" & sohh & "'And 制造产品号 = '" & cph & "'And 计划数量 = " & sl
        If e.DataTable.SqlFind(filter) IsNot Nothing Then
            MessageBox.Show("已经存在相同piao号/类型/SO号/箱号/SO行号/产品号/数量的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
            e.Cancel = True
        Else
            e.datarow.save
        End If
End Select

 回到顶部
总数 24 上一页 1 2 3