以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  输入的记录会重复输入一次  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=165270)

--  作者:edisontsui
--  发布时间:2021/5/12 11:02:00
--  输入的记录会重复输入一次
我一个同事的电脑在 foxtable 的某个表格输入数据之后,这些数据隔了2分多钟之后又会自动重复输入一次。导致输入记录行数翻倍。我在我自己的电脑不存在这个问题。那是不是我们的代码有问题,还是那个同事的电脑 windows 系统有什么问题?
--  作者:有点蓝
--  发布时间:2021/5/12 11:04:00
--  
这种一般是代码逻辑有问题
--  作者:edisontsui
--  发布时间:2021/5/12 11:52:00
--  
我将代码发给你帮我看一下?
--  作者:有点蓝
--  发布时间:2021/5/12 11:53:00
--  
做个例子发上来测试一下
--  作者:edisontsui
--  发布时间:2021/5/12 11:56:00
--  
目前只涉及一个表“弯头开料单”。
--  作者:有点蓝
--  发布时间:2021/5/12 12:01:00
--  
先发上来看看吧
--  作者:edisontsui
--  发布时间:2021/5/12 12:34:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:eventcode.rar
谢谢。

--  作者:有点蓝
--  发布时间:2021/5/12 13:53:00
--  
试试到没有问题的电脑里把程序复制到有问题的电脑测试看看有没有问题

大概看了一下代码,看到弯头开料单datacolchanged事件有2个新增行的用法,不知道是不是这里的原因,自己测试一下

……
\'KS/PT/ETB/EJ/GR产品自动添加零件-开始
If e.DataCol.name ="套数" Then
If e.newvalue IsNot Nothing Then
If e.DataRow.IsNull("生产票号") = False AndAlso e.DataRow.IsNull("订单号") = False AndAlso e.DataRow.IsNull("制造产品号") = False AndAlso e.DataRow.IsNull("原材料") AndAlso e.DataRow.IsNull("型号") AndAlso e.DataRow.IsNull("开料参数") AndAlso e.DataRow.IsNull("标识")  Then     

    \'KS产品自动添加零件-开始
    If e.DataRow("制造产品号").startswith("KS") Then
        Dim Filter As String = "[制造产品号] = \'" & e.DataRow("制造产品号") & "\'"
        Dim drs As List(Of DataRow) = DataTables("KSBOM").Select(Filter)
        Dim dr2 As String
        Dim dr3 As String
        Dim dr4 As String
        Dim dr5 As Integer
        Dim dr6 As String
        For i As Integer = 0 To drs.Count - 1
            If i = 0 Then
                dr6 = e.DataRow("制造产品号")
                e.DataRow("型号") = drs(i)("型号")
                e.DataRow("原材料") = drs(i)("原材料")
                e.DataRow("开料参数") = drs(i)("开料参数")
                e.DataRow("标识") = drs(i)("标识")
                e.DataRow("毫米长度") = drs(i)("毫米长度")
                e.DataRow("长度") = drs(i)("长度")
                e.DataRow("数量") = drs(i)("数量") * e.DataRow("套数") 
                dr2 = e.DataRow("生产票号")
                dr3 = e.DataRow("票号")
                dr4 = e.DataRow("订单号")
                dr5 = e.DataRow("套数")
            Else
                Dim nr As Row = Tables("弯头开料单").addnew
                nr("制造产品号") = dr6
                nr("型号") = drs(i)("型号")
                nr("原材料") = drs(i)("原材料")
                nr("开料参数") = drs(i)("开料参数")


--  作者:edisontsui
--  发布时间:2021/5/12 14:04:00
--  
Dim nr As Row = Tables("弯头开料单").addnew 这句代码要怎样修改呢?
--  作者:edisontsui
--  发布时间:2021/5/12 14:06:00
--  
问题是,它是隔了2分多钟之后才自动添加行的。