以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 已知计划开始时间、计划完成时间以及计划工作量,如何求各月计划工作量 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=105489) |
||||
-- 作者:chengjingliang -- 发布时间:2017/8/20 21:45:00 -- 已知计划开始时间、计划完成时间以及计划工作量,如何求各月计划工作量 已知计划开始时间、计划完成时间以及计划工作量,如何求各月计划工作量 |
||||
-- 作者:有点甜 -- 发布时间:2017/8/20 21:59:00 -- 参考代码
Dim sd As Date = "2017-06-08" Dim i As Double = 0 |
||||
-- 作者:chengjingliang -- 发布时间:2017/8/21 21:33:00 -- 不知道从哪入手,请老师指教!
|
||||
-- 作者:有点蓝 -- 发布时间:2017/8/21 22:14:00 --
|
||||
-- 作者:chengjingliang -- 发布时间:2017/8/22 2:38:00 -- 计算结果存在误差,每月产值相加不等于计划产值总额,如何修改? |
||||
-- 作者:有点蓝 -- 发布时间:2017/8/22 8:55:00 -- 如果不能平分的数值自然存在误差,可以在最后一个月的数据进行求和比较一下,把误差补到最后一个月中 另外把相关列改为高精度
|
||||
-- 作者:chengjingliang -- 发布时间:2017/8/22 10:00:00 -- 有没有其他好办法,比如建一个月份表,设置月份天数,好不好搞? |
||||
-- 作者:有点甜 -- 发布时间:2017/8/22 10:25:00 -- DataTables("表A").DataRows.Clear MainTable = Tables("表A") For Each r As Row In Tables("进度计划").Rows |
||||
-- 作者:chengjingliang -- 发布时间:2017/8/22 13:53:00 -- 数据多时候,弹出下面提示,没法计算完全部数据 .NET Framework 版本:2.0.50727.5485 Foxtable 版本:2017.6.12.1 错误所在事件:窗口,窗口1,Button1,Click 详细错误信息: 添加或减去的值产生无法表示的 DateTime。 参数名: value
|
||||
-- 作者:有点甜 -- 发布时间:2017/8/22 14:09:00 -- DataTables("表A").DataRows.Clear MainTable = Tables("表A") For Each r As DataRow In DataTables("进度计划").Select("计划开始 is not null") Dim sd As Date = r("计划开始") Dim ed As Date = r("计划完成") Dim count As Double = r("计划产值") Dim sp As TimeSpan = ed-sd Dim avg As Double = count / (sp.TotalDays+1) Dim i As Double = 0 Dim sum As Double = 0 Do While sd <= ed If sd.Day = 1 OrElse sd = ed Then Dim dr As DataRow = DataTables("表A").AddNew dr("项目ID") = r("项目ID") dr("计划ID") = r("计划ID") dr("月份") = format(sd.AddDays(-1), "yyyyMM") If sd = ed Then dr("产值") = count-sum Else dr("产值") = i*avg sum += i*avg End If i = 1 Else i += 1 End If sd = sd.AddDays(1) Loop Next |