以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请大神指教 计算优化 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=109786) |
||||
-- 作者:dwq547467075 -- 发布时间:2017/11/19 20:16:00 -- 请大神指教 计算优化 算总数 几十秒钟, 算每一个物料 在一个时间点 之前的数据 怎么要那么长时间? 请大神指教 [此贴子已经被作者于2017/11/19 21:46:40编辑过]
|
||||
-- 作者:dwq547467075 -- 发布时间:2017/11/19 20:20:00 -- 附件是模型
|
||||
-- 作者:有点甜 -- 发布时间:2017/11/19 21:01:00 -- 参考代码
MainTable = Tables("统计") Dim wlbm As String = "17475000011232" e.Form.Controls("Label1").Text = "正在处理数据..." Dim drs = DataTables("sum").Select("物料编码=\'" & wlbm & "\' and 日期时间 <= #" & Date.Today.AddDays(3) & "# and 日期时间 > #" & Date.Today & "# ", "日期时间") DataTables("统计").ResumeRedraw DataTables("统计").ResumeRedraw
e.Form.Controls("Label1").Text = " 更新完毕." MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒") \'计算并显示执行代码所花费的秒数 |
||||
-- 作者:dwq547467075 -- 发布时间:2017/11/19 21:23:00 -- 22 [此贴子已经被作者于2017/11/19 22:14:30编辑过]
|
||||
-- 作者:dwq547467075 -- 发布时间:2017/11/19 21:28:00 -- 12 [此贴子已经被作者于2017/11/19 21:32:18编辑过]
|
||||
-- 作者:dwq547467075 -- 发布时间:2017/11/19 21:33:00 -- 11 [此贴子已经被作者于2017/11/19 22:14:16编辑过]
|
||||
-- 作者:dwq547467075 -- 发布时间:2017/11/19 22:27:00 -- 领悟了 老哥的意思, 谢谢~~ Dim drs = DataTables("sum").Select(" 日期时间 <= #" & Date.Today.AddDays(3) & "# and 日期时间 > #" & Date.Today & "# ") For Each dr As DataRow In drs \'统计未来两天的数据 Dim dr1 As DataRow = DataTables("统计").AddNew() dr1("物料编码") = dr("物料编码") dr1("日期时间") = dr("日期时间") Dim temp As Single = 0 For Each dr2 As DataRow In DataTables("sum").Select(" 物料编码= \'" & dr("物料编码") & "\' ") If dr2("日期时间") <= dr1("日期时间") Then temp += dr2("需求数量") Else Exit For End If Next dr1("在此之前的需求数量") = temp |
||||
-- 作者:有点甜 -- 发布时间:2017/11/19 22:55:00 -- 回复7楼,你select的时候,要排序
For Each dr2 As DataRow In DataTables("sum").Select(" 物料编码= \'" & dr("物料编码") & "\'", "日期时间") |
||||
-- 作者:有点甜 -- 发布时间:2017/11/20 0:30:00 -- MainTable = Tables("统计")
Dim drs = DataTables("sum").Select("日期时间 <= #" & Date.Today.AddDays(1) & "# and 日期时间 > #" & Date.Today & "# ", "物料编码,日期时间") DataTables("统计").ResumeRedraw For Each dr As DataRow In drs DataTables("统计").ResumeRedraw
e.Form.Controls("Label1").Text = " 更新完毕." MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒") \'计算并显示执行代码所花费的秒数 |