Foxtable(狐表)用户栏目专家坐堂 → [求助]计算代码执行的时间(datacolchanged事件)


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

主题:[求助]计算代码执行的时间(datacolchanged事件)

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


加好友 发短信
等级:幼狐 帖子:93 积分:723 威望:0 精华:0 注册:2017/10/9 17:21:00
[求助]计算代码执行的时间(datacolchanged事件)  发帖心情 Post By:2017/10/19 21:44:00 [只看该作者]

Select Case e.DataCol.Name    
Case "列一"
代码
End Select

假如我现在手工重置这一列,但是这个表里面有很多行,我想计算出所有行一共执行了多长时间,这个怎么操作?

如果我用:
Dim st As Date = Date.Now
Select Case e.DataCol.Name    
Case "列一"
代码
End Select
MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒")


显然是不可以的,这样只能计算出每一行执行的时间。


还有,在执行这个事件的代码的时候,如果数据比较多,会出现滚动条动来动去,
能不能在填充数据的时候禁止闪烁,等数据填充完毕后再全部显示出来?

请老师指点下。
[此贴子已经被作者于2017/10/19 21:46:29编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1249 积分:9474 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By:2017/10/19 21:58:00 [只看该作者]

http://www.foxtable.com/webhelp/scr/0401.htm

解决屏幕闪烁的方法见上面的链接。

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


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

你可以单独做一个按钮重置列

 

http://www.foxtable.com/webhelp/scr/1587.htm

 

一般,全部重新统计的时候,不要用重置列,单独做一个按钮重新计算比较划算。


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


加好友 发短信
等级:幼狐 帖子:93 积分:723 威望:0 精华:0 注册:2017/10/9 17:21:00
回复:(wyz20130512)http://www.foxtable.com/webhe...  发帖心情 Post By:2017/10/19 22:48:00 [只看该作者]

谢谢~

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


加好友 发短信
等级:幼狐 帖子:93 积分:723 威望:0 精华:0 注册:2017/10/9 17:21:00
回复:(有点甜)你可以单独做一个按钮重置列 ...  发帖心情 Post By:2017/10/19 23:02:00 [只看该作者]

老师,其实我的项目时这样的,你帮我看看有没更好的方法处理:

我要统计三个表的数据,如下图:

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

我想做一个汇总表,分别提取B表和C表 对应着A表的值的记录并写入汇总表中。


目前我的做法是:
先使用手工编码填充数据提取A表所有数据到汇总表的“列一”,
然后在“列一”的datacolchanged事件中用SQLGetValues方法提取B表数据,
如果提取到的值 = “列一”的值,就填入“列二”这个单元格中,
用同样的方法也提取表C的数据并写入相应的单元格中。

这个笨方法测试没问题,但是耗时有点长,600多行的数据,差不多要20秒。

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


加好友 发短信
等级:幼狐 帖子:93 积分:723 威望:0 精华:0 注册:2017/10/9 17:21:00
  发帖心情 Post By:2017/10/19 23:21:00 [只看该作者]

我在数据库里用sql语句分开查询了,都只需要1-2秒结果就出来。

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


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

1、你完全可以用查询表

 

http://www.foxtable.com/webhelp/scr/2321.htm

 

2、尽量不要在datacolchanged事件写代码,你可以单独做一个按钮直接生成汇总表数据

 

3、如果真要在datacolchanged事件写,也尽量不要用sqlfind、sqlcompute等后台查询,尽可加载全部数据后,用find、compute等。


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


加好友 发短信
等级:幼狐 帖子:93 积分:723 威望:0 精华:0 注册:2017/10/9 17:21:00
回复:(有点甜)1、你完全可以用查询表 htt...  发帖心情 Post By:2017/10/20 11:29:00 [只看该作者]

1、查询表似乎不能满足我的需求,因为要传变量合成sql语句。

2、用一个按钮直接生成一个查询表,搞不太明白,搞一个晚上都没实现。

3、使用了这个建议,速度由原来的20秒提高到5、6秒左右。

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


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

1、可以的 http://www.foxtable.com/webhelp/scr/0695.htm

 

2、意思是,循环表A每一行,根据逻辑查找数据填入汇总表


 回到顶部