以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 如何实现只对当前表的副表禁止重复? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=187152) |
||||
-- 作者:lin98 -- 发布时间: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 执行 执行上面的代码,是正表禁止重复,无法禁止副表复复,这样造成系统不能正常使用, |
||||
-- 作者:有点蓝 -- 发布时间:2023/6/26 17:32:00 -- 对副本肯定也有效。除非数据没有全部加载 |
||||
-- 作者:lin98 -- 发布时间:2023/6/26 17:51:00 -- 产品表与订单明细 订单明细引用产品表,只能引用一次,不在引用,否则,报错, 实际应用中,订单明细引用产品,是在窗口的订单明细禁止重复,防止同一单有不会有重复,造成数据混乱,但数据库中的订单明细、狐表上的的订单明细是正表允许重复,因订单明细有订单单号,数量来做区别,但是从产品表的产品信息引入订单明细,产品表没单明细有订单单号,数量来做区别,所以执行上面代码,它就能一种产品只引用,不能再引用
|
||||
-- 作者:lin98 -- 发布时间:2023/6/26 18:02:00 --
上传实例,用窗口按键是不能再从产品表引用产品,造成后续不能正常,产品表在实际运行是经常被引用,请帮助处理,表C是强制手动做的正确,如何用按键也能实现?
|
||||
-- 作者:有点蓝 -- 发布时间:2023/6/26 20:18:00 -- 无法理解上面描述的意思,请举例具体操作步骤说明一下,什么地方有问题。 |