以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助] compute计算时间的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=124003) |
-- 作者:81538475 -- 发布时间:2018/8/28 18:55:00 -- [求助] compute计算时间的问题 下面这个代码计算的时候,每个任务的第一行修改的时候用时都非常久,下面的行用时却很快。 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编辑过]
|
-- 作者:有点甜 -- 发布时间:2018/8/28 18:59:00 -- 试试
http://www.foxtable.com/webhelp/scr/2218.htm
|
-- 作者:81538475 -- 发布时间:2018/8/28 21:52:00 -- 放在datacolchanged里面吗 |
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2018/8/28 22:18:00 -- 真的好了。这个是因为 有其他事件的代码影响了吗 |
-- 作者:有点蓝 -- 发布时间:2018/8/28 22:21:00 -- 是的,应该是触发了其他事件。建议检查一下,这些事件的触发是否必须的,如果是必须的就不能使用SystemReady了 |
-- 作者:81538475 -- 发布时间: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 -- 发布时间:2018/8/28 23:39:00 -- 上面的代码中,找一段,好像影响了 combobox4.。。。 dr("剩余") = dr("apc") - sum2
dr("总") = sum2 |
-- 作者:有点甜 -- 发布时间:2018/8/29 10:13:00 -- 你 cmb4.ComboList 这种代码,应该写到cmb4控件的enter事件才对,不要写到valueChanged事件去。 |