以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  foxtable+sql增加300行要等待3分钟?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=152974)

--  作者:yacity
--  发布时间:2020/7/27 16:08:00
--  foxtable+sql增加300行要等待3分钟?
foxtable+sql增加300行要等待3分钟?
--  作者:cd_tdh
--  发布时间:2020/7/27 16:09:00
--  
不会吧,代码发来看看。
--  作者:有点蓝
--  发布时间:2020/7/27 16:20:00
--  
新建行事件有没有什么代码?有没有表达式列引用?
--  作者:yacity
--  发布时间:2020/7/27 16:21:00
--  
增加的是空白行,表的事件代码会影响增加的速度吗?

PrepareEdit事件


If e.Row("ruku") = True Then

   Select Case e.Col.Name

       Case "chanpinid","sdate","shuliang","beizhu"

          e.Cancel = True

    End Select

End If



StartEdit 事件


If e.Col.Name = "chanpinid"  Then

    e.Cancel = True

    If  e.Row("ruku") = False

       Forms("其他入库选产品").Open()

    End If

End If



DataColChanged 事件


Select Case e.DataCol.Name

    

Case "ruku"  \'复制数据到库存流水

    Dim dr As DataRow=e.DataRow

    If e.DataRow("ruku") = False

        

        Dim nma() As String = {"sdate","chanpinid","shuliang"} \'A表数据来源列

        Dim nmb() As String = {"rdate","chanpinid","shuliang"} \'B表数据接收列

        Dim drs As DataRow = DataTables("kucun").AddNew

        For i As Integer = 0 To nma.Length - 1

            drs(nmb(i)) = e.DataRow(nma(i))

        Next

        drs("beizhu") = "库存盘点"

        drs("bianhao")="KC" & dr("_Identify")

        DataTables("kucun").save()

    Else

        

        

        Dim Result As DialogResult

        Result = MessageBox.Show("您确定要取消该产品入库吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

        If Result = DialogResult.Yes Then

            Dim nma() As String = {"sdate","chanpinid","shuliang"} \'A表数据来源列

            Dim nmb() As String = {"rdate","chanpinid","shuliang"} \'B表数据接收列

            Dim drs As DataRow = DataTables("kucun").AddNew

            For i As Integer = 0 To nma.Length - 1

                drs(nmb(i)) = e.DataRow(nma(i))

            Next

            drs("beizhu") = "库存盘点"

            drs("shuliang") = -drs("shuliang")

            drs("bianhao")="KC" & dr("_Identify")

            DataTables("kucun").save()

        Else

            

            e.Cancel = True

            

        End If

        

        

    End If

    

    

End Select

[此贴子已经被作者于2020/7/27 16:22:50编辑过]

--  作者:有点蓝
--  发布时间:2020/7/27 16:52:00
--  
4楼这3个事件应该不会触发,但是像新增行事件这种就会触发。有没有表达式列引用?
--  作者:yacity
--  发布时间:2020/7/28 9:35:00
--  
测试发现把以上代码屏蔽后增加行速度暴增。

表达式是直接引用父表的数据。这样也会影响速度?


图片点击可在新窗口打开查看此主题相关图片如下:5.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2020/7/28 9:45:00
--  
"ruku"是逻辑列,新增行会触发逻辑列的datacolchanged

SystemReady = False
\'新增行代码
SystemReady = True