Foxtable(狐表)用户栏目专家坐堂 → [求助]


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

主题:[求助]

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


加好友 发短信
等级:幼狐 帖子:190 积分:1593 威望:0 精华:0 注册:2013/1/6 19:46:00
[求助]  发帖心情 Post By:2016/8/31 16:39:00 [只看该作者]

请教:

 

第一列    第二列     第三列

123       ABC      001

123       DEF      001

456       ABC      001

789       DEF      001

789       DEF      001     不允许 

789       DEF      002     允许

123       ABC      001     不允许

 

如何判断,当第三列的值相同时,不允许第一列和第二列同时重复。当第三列的值不相同时,允许第一列和第二列同时重复。

请教如何完善程序,谢谢!

If e.DataCol.Name= "第一列" Then
    Dim dr As DataRow = e.DataTable.Find("第一列='" & e.NewValue & "' and 第二列='" & e.DataRow("第二列") & "'")
    If dr IsNot Nothing Then
        e.Cancel = True
    End If
ElseIf e.DataCol.Name= "第二列" Then
    Dim dr As DataRow = e.DataTable.Find("第二列='" & e.NewValue & "' and 第一列='" & e.DataRow("第一列") & "'")
    If dr IsNot Nothing Then
        e.Cancel = True
    End If
End If


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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/8/31 16:58:00 [只看该作者]

实际上就是不允许三列都相同啊:

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目267.table


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


加好友 发短信
等级:幼狐 帖子:190 积分:1593 威望:0 精华:0 注册:2013/1/6 19:46:00
  发帖心情 Post By:2016/8/31 17:30:00 [只看该作者]

逻辑思维的错误,老是想在同订单号范围判断品名和型号规格

 

 

Select Case e.DataCol.name
    Case "订单号"
        If e.DataCol.Name= "订单号" Then
            Dim dr As DataRow = e.DataTable.Find("订单号='" & e.NewValue & "' and 品名='" & e.DataRow("品名") & "' and 型号规格='" & e.DataRow("型号规格") & "'")
            If dr IsNot Nothing Then
                MessageBox.Show("已经存在相同型号和规格的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                e.Cancel = True
            End If
        End If
    Case "品名"
        If e.DataCol.Name= "品名" Then
            Dim dr As DataRow = e.DataTable.Find("品名='" & e.NewValue & "' and 订单号='" & e.DataRow("订单号") & "' and 型号规格='" & e.DataRow("型号规格") & "'")
            If dr IsNot Nothing Then
                MessageBox.Show("已经存在相同型号和规格的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                e.Cancel = True
            End If
        End If
       
    Case "型号规格"
        If e.DataCol.Name= "型号规格" Then
            Dim dr As DataRow = e.DataTable.Find("型号规格='" & e.NewValue & "' and 订单号='" & e.DataRow("订单号") & "' and 品名='" & e.DataRow("品名") & "'")
            If dr IsNot Nothing Then
                MessageBox.Show("已经存在相同型号和规格的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                e.Cancel = True
            End If
        End If
End Select


 回到顶部