以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]计算代码执行的时间(datacolchanged事件) (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=108301) |
-- 作者:xy0739 -- 发布时间:2017/10/19 21:44:00 -- [求助]计算代码执行的时间(datacolchanged事件) 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 -- 发布时间:2017/10/19 21:58:00 -- http://www.foxtable.com/webhelp/scr/0401.htm 解决屏幕闪烁的方法见上面的链接。
|
-- 作者:有点甜 -- 发布时间:2017/10/19 22:09:00 -- 你可以单独做一个按钮重置列
http://www.foxtable.com/webhelp/scr/1587.htm
一般,全部重新统计的时候,不要用重置列,单独做一个按钮重新计算比较划算。 |
-- 作者:xy0739 -- 发布时间:2017/10/19 22:48:00 -- 回复:(wyz20130512)http://www.foxtable.com/webhe... 谢谢~ |
-- 作者:xy0739 -- 发布时间:2017/10/19 23:02:00 -- 回复:(有点甜)你可以单独做一个按钮重置列 ... 老师,其实我的项目时这样的,你帮我看看有没更好的方法处理: 我要统计三个表的数据,如下图: 我想做一个汇总表,分别提取B表和C表 对应着A表的值的记录并写入汇总表中。 目前我的做法是: 先使用手工编码填充数据提取A表所有数据到汇总表的“列一”, 然后在“列一”的datacolchanged事件中用SQLGetValues方法提取B表数据, 如果提取到的值 = “列一”的值,就填入“列二”这个单元格中, 用同样的方法也提取表C的数据并写入相应的单元格中。 这个笨方法测试没问题,但是耗时有点长,600多行的数据,差不多要20秒。
|
-- 作者:xy0739 -- 发布时间:2017/10/19 23:21:00 -- 我在数据库里用sql语句分开查询了,都只需要1-2秒结果就出来。 |
-- 作者:有点甜 -- 发布时间:2017/10/19 23:32:00 -- 1、你完全可以用查询表
http://www.foxtable.com/webhelp/scr/2321.htm
2、尽量不要在datacolchanged事件写代码,你可以单独做一个按钮直接生成汇总表数据
3、如果真要在datacolchanged事件写,也尽量不要用sqlfind、sqlcompute等后台查询,尽可加载全部数据后,用find、compute等。 |
-- 作者:xy0739 -- 发布时间:2017/10/20 11:29:00 -- 回复:(有点甜)1、你完全可以用查询表 htt... 1、查询表似乎不能满足我的需求,因为要传变量合成sql语句。 2、用一个按钮直接生成一个查询表,搞不太明白,搞一个晚上都没实现。 3、使用了这个建议,速度由原来的20秒提高到5、6秒左右。
|
-- 作者:有点甜 -- 发布时间:2017/10/20 13:00:00 -- 1、可以的 http://www.foxtable.com/webhelp/scr/0695.htm
2、意思是,循环表A每一行,根据逻辑查找数据填入汇总表 |