Foxtable(狐表)用户栏目专家坐堂 → 选入死循环 请支招


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

主题:选入死循环 请支招

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


加好友 发短信
等级:童狐 帖子:221 积分:1745 威望:0 精华:0 注册:2014/1/7 12:37:00
选入死循环 请支招  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/3/28 13:11:00 [只看该作者]

DataTables("商务结算表")里面,是不是也有代码,返回来又触发上面的代码。

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


加好友 发短信
等级:童狐 帖子:221 积分:1745 威望:0 精华:0 注册:2014/1/7 12:37:00
  发帖心情 Post By:2014/3/28 13:19:00 [只看该作者]

没有,但是 在afteropenobject中 重置了 “吨位”列

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


加好友 发短信
等级:童狐 帖子:221 积分:1745 威望:0 精华:0 注册:2014/1/7 12:37:00
  发帖心情 Post By:2014/3/28 13:20:00 [只看该作者]

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


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


加好友 发短信 F6
等级:狐精 帖子:3036 积分:19223 威望:0 精华:2 注册:2008/9/1 7:50:00
  发帖心情 Post By:2014/3/28 13:37:00 [只看该作者]

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

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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/3/28 13:46:00 [只看该作者]

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

 

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


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


加好友 发短信
等级:童狐 帖子:221 积分:1745 威望:0 精华:0 注册:2014/1/7 12:37:00
  发帖心情 Post By:2014/3/28 14:18:00 [只看该作者]

不好多 也才1500行。

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


加好友 发短信
等级:童狐 帖子:221 积分:1745 威望:0 精华:0 注册:2014/1/7 12:37:00
  发帖心情 Post By:2014/3/28 14:20:00 [只看该作者]

请问一下,有什么方法可以 让正在访问的行可以默认 上一行的内容了,部分修改后,就可以继续往下录入。

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/3/28 14:30:00 [只看该作者]

克隆行。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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

 


 回到顶部
总数 13 1 2 下一页