Foxtable(狐表)用户栏目专家坐堂 → 如何实现只对当前表的副表禁止重复?


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

主题:如何实现只对当前表的副表禁止重复?

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
如何实现只对当前表的副表禁止重复?  发帖心情 Post By:2023/6/26 17:13:00 [显示全部帖子]

Select Case e.DataCol.name
    Case "编号", "数量", "日期"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("编号") = False AndAlso dr.IsNull("数量") = False AndAlso dr.IsNull("日期") = False Then
            If e.DataTable.Compute("Count([_Identify])", "编号 = '" & 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

Dim nma() As String = {"编号", "型号", "规格"} '
Dim nmb() As String = {"编号", "型号", "规格"} '
For Each r As Row In Tables("导入窗口_产品表").GetCheckedRows '
     If DataTables("表C").Find("编号 = '" & r("编号") & "' And 型号 = '" & r("型号") & "'And 规格 = '" & r("规格") & "'") Is Nothing Then '

        Dim dr As Row = Tables("表C").AddNew '
        For i As Integer = 0 To nma.Length - 1
            dr(nmb(i)) = r(nma(i))
        Next
    Else
        MessageBox.Show("已经存在相同型号和规格的行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
        
    End If
    
Next

执行


执行上面的代码,是正表禁止重复,无法禁止副表复复,这样造成系统不能正常使用,

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/6/26 17:51:00 [显示全部帖子]

产品表与订单明细

订单明细引用产品表,只能引用一次,不在引用,否则,报错,
实际应用中,订单明细引用产品,是在窗口的订单明细禁止重复,防止同一单有不会有重复,造成数据混乱,但数据库中的订单明细、狐表上的的订单明细是正表允许重复,因订单明细有订单单号,数量来做区别,但是从产品表的产品信息引入订单明细,产品表没单明细有订单单号,数量来做区别,所以执行上面代码,它就能一种产品只引用,不能再引用

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/6/26 18:02:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:不重复.zip


上传实例,用窗口按键是不能再从产品表引用产品,造成后续不能正常,产品表在实际运行是经常被引用,请帮助处理,表C是强制手动做的正确,如何用按键也能实现?

 回到顶部