以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  选入死循环 请支招  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=48415)

--  作者:youngk
--  发布时间:2014/3/28 13:01:00
--  选入死循环 请支招

主表是datatable(“进出库记录”)

 Select Case e.DataCol.Name
        Case "吨位"
            Dim sr1 As DataRow = DataTables("商务结算表").addnew()
            sr1("日期") = e.DataRow("日期")
            sr1("客户名称") = e.DataRow("客户名称")
            sr1("货物种类") = e.DataRow("货物种类")
            sr1("进出库分类") = e.DataRow("进出库分类")
            sr1("到发方式") = e.DataRow("到发方式")
            sr1("车船数")=e.DataRow("车船数")
            sr1("吨位") =e.DataRow("吨位")
    End Select

另外,对主表的 “吨位”列设置了 打开项目前重置

 


--  作者:lsy
--  发布时间:2014/3/28 13:11:00
--  
DataTables("商务结算表")里面,是不是也有代码,返回来又触发上面的代码。
--  作者:youngk
--  发布时间:2014/3/28 13:19:00
--  
没有,但是 在afteropenobject中 重置了 “吨位”列
--  作者:youngk
--  发布时间:2014/3/28 13:20:00
--  

测试了下时间 没有上述代码是 耗时5秒,现在耗时120秒。怎么回事呢?


--  作者:kylin
--  发布时间:2014/3/28 13:37:00
--  

全部项目上传才能了解清楚的

你这样提问,是没有办法帮到你的


--  作者:有点甜
--  发布时间:2014/3/28 13:46:00
--  

 要么,是你的 【商务结算表】datacolchanged 事件写有代码;

 

 要么,是你库存表数据量巨多,打开项目的时候新增 同样行数的数据也是会很慢的


--  作者:youngk
--  发布时间:2014/3/28 14:18:00
--  
不好多 也才1500行。
--  作者:youngk
--  发布时间:2014/3/28 14:20:00
--  
请问一下,有什么方法可以 让正在访问的行可以默认 上一行的内容了,部分修改后,就可以继续往下录入。
--  作者:lsy
--  发布时间:2014/3/28 14:30:00
--  
克隆行。
--  作者:有点甜
--  发布时间:2014/3/28 14:34:00
--  
以下是引用youngk在2014-3-28 14:18:00的发言:
不好多 也才1500行。

 

测试了一下,单独新增500行,10秒。如果你在表的【新增】事件写有代码,耗时会长。

Dim st As Date = Date.Now
For i As Integer = 0 To 500
    Tables("表A").addnew
Next
MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒")

 

 

一般你这个问题这样解决。

 

1、用fill代替你的赋值 http://www.foxtable.com/help/topics/0680.htm

2、关闭重绘 http://www.foxtable.com/help/topics/0401.htm

3、不触发相关事件 http://www.foxtable.com/help/topics/2218.htm