Foxtable(狐表)用户栏目专家坐堂 → [求助] compute计算时间的问题


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

主题:[求助] compute计算时间的问题

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


加好友 发短信
等级:六尾狐 帖子:1287 积分:10368 威望:0 精华:1 注册:2018/1/20 12:40:00
[求助] compute计算时间的问题  发帖心情 Post By:2018/8/28 18:55:00 [只看该作者]

下面这个代码计算的时候,每个任务的第一行修改的时候用时都非常久,下面的行用时却很快。


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20180828185245.png
图片点击可在新窗口打开查看
datacolchanged 代码:

Se/ect Case e.DataCol.name                          
    Case "当月人天","任务人天","任务"  
sum2 = DataTables("XMFP").Compute("Sum(当月人天)","BH =  '" & e.DataRow("BH") & "' ")
                dr = DataTables("xmzb").find("BH = '" & E.DataRow("bh") & "'")

Dim st As Date = Date.Now
                dr("剩余") = dr("apc") - sum2
                dr("总") = sum2
MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒")
end se/ect
[此贴子已经被作者于2018/8/28 18:55:22编辑过]

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


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


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


加好友 发短信
等级:六尾狐 帖子:1287 积分:10368 威望:0 精华:1 注册:2018/1/20 12:40:00
  发帖心情 Post By:2018/8/28 21:52:00 [只看该作者]

放在datacolchanged里面吗

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


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/28 21:58:00 [只看该作者]

Select Case e.DataCol.name
    Case "当月人天","任务人天","任务"
SystemReady = False
        sum2 = DataTables("XMFP").Compute("Sum(当月人天)","BH =  '" & e.DataRow("BH") & "' ")
        dr = DataTables("xmzb").find("BH = '" & E.DataRow("bh") & "'")
        
        Dim st As Date = Date.Now
        dr("剩余") = dr("apc") - sum2
        dr("总") = sum2
SystemReady = True
        MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒")
End Select

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


加好友 发短信
等级:六尾狐 帖子:1287 积分:10368 威望:0 精华:1 注册:2018/1/20 12:40:00
  发帖心情 Post By:2018/8/28 22:18:00 [只看该作者]

真的好了。这个是因为 有其他事件的代码影响了吗

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


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/28 22:21:00 [只看该作者]

是的,应该是触发了其他事件。建议检查一下,这些事件的触发是否必须的,如果是必须的就不能使用SystemReady了

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


加好友 发短信
等级:六尾狐 帖子:1287 积分:10368 威望:0 精华:1 注册:2018/1/20 12:40:00
  发帖心情 Post By:2018/8/28 23:21:00 [只看该作者]

找到问题代码在哪里了。。但是看不懂为什么。。
当我改变 当月人天的时候  combobox4 会不停的抖动。
把下面的代码注释掉就好了。可是我看不出来哪里的问题。

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

有一个窗口 combobox1的valuechanged 代码:

Dim cmb As WinForm.ComboBox
Dim cmb3 As WinForm.ComboBox
Dim cmb4 As WinForm.ComboBox
cmb =  Forms("任务插入").Controls("ComboBox1")
cmb3 =  Forms("任务插入").Controls("ComboBox3")
cmb3.ComboList = DataTables("人员信息表").sqlGetComboListString("二级部门"," 部门 = '" & cmb.value & "' ")
cmb4 =  Forms("任务插入").Controls("ComboBox4")
If cmb3.text <> "" Then
    cmb4.ComboList = DataTables("人员信息表").sqlGetComboListString("姓名"," 部门 = '" & cmb.value & "'and  二级部门 = '" & cmb3.value & "'and 状态 <> '离职' ")
Else cmb4.ComboList = DataTables("人员信息表").sqlGetComboListString("姓名"," 部门 = '" & cmb.value & "'and 状态 <> '离职' ")
    
    
End If

If cmb.value <>"" Then
    cmb4.value =""
    cmb3.value = ""
End If

[此贴子已经被作者于2018/8/28 23:21:08编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1287 积分:10368 威望:0 精华:1 注册:2018/1/20 12:40:00
  发帖心情 Post By:2018/8/28 23:39:00 [只看该作者]

上面的代码中,找一段,好像影响了 combobox4.。。。
dr("剩余") = dr("apc") - sum2
                dr("总") = sum2


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


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

你 cmb4.ComboList  这种代码,应该写到cmb4控件的enter事件才对,不要写到valueChanged事件去。

 回到顶部