以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 加载数据计算 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=147872) |
-- 作者:冷泉 -- 发布时间:2020/3/26 11:14:00 -- 加载数据计算 我这个库存数量计算有点问题,入库表只加载当月的,之前月份的数据,库存表那里无法计算,代码应该怎样修改了,麻烦老师指导一下,谢谢 If e.DataCol.Name = "商品编号" Then e.DataRow("入库_数量") = DataTables("入库表").Compute("Sum(数量)","[商品编号] = \'" & e.NewValue & "\'") e.DataRow("出库_数量") = DataTables("出库表").Compute("Sum(数量)","[商品编号] = \'" & e.NewValue & "\'") e.DataRow("期初库存") = DataTables("商品资料").Compute("Sum(期初库存)","[商品编号] = \'" & e.NewValue & "\'") e.DataRow("入库_均价") = DataTables("入库表").Compute("sum(金额)","[商品编号] =\'" & e.DataRow("商品编号") & "\' and 金额 <> 0") / DataTables("入库表").Compute("sum(数量)","[商品编号] =\'" & e.DataRow("商品编号") & "\' and 数量 <> 0") e.DataRow("出库_均价") = DataTables("出库表").Compute("sum(金额)","[商品编号] =\'" & e.DataRow("商品编号") & "\' and 金额 <> 0") / DataTables("出库表").Compute("sum(数量)","[商品编号] =\'" & e.DataRow("商品编号") & "\' and 数量 <> 0") End If Dim dr As DataRow = e.DataRow Select Case e.DataCol.Name Case "入库_数量","出库_数量","期初库存" e.DataRow.save dr("库存_数量") = dr("期初库存") + dr("入库_数量") - dr("出库_数量") dr.save() If dr IsNot Nothing Then DataTables("库存表").DataCols("商品编号").RaiseDataColChanged(dr)\' End If End Select |
-- 作者:冷泉 -- 发布时间:2020/3/26 11:23:00 -- 加下面这个全部加载代码可以计算,但是速度太慢了 DataTables("入库表").LoadFilter="" DataTables("入库表").Load DataTables("出库表").LoadFilter="" DataTables("出库表").Load |
-- 作者:有点蓝 -- 发布时间:2020/3/26 11:26:00 -- 既然都已经有期初库存,为什么还要计算之前月份的数据?期初库存不应该是上个月的月末库存吗?期初库存不是按月结存的? |
-- 作者:冷泉 -- 发布时间:2020/3/26 11:43:00 -- 额,没有每个月进行结转,统计的总的汇总数量和实时库存数量 |
-- 作者:有点蓝 -- 发布时间:2020/3/26 13:28:00 -- 那么多长时间结转一次。Compute改为sqlCompute,加上上次结转时间做条件 |
-- 作者:冷泉 -- 发布时间:2020/3/26 13:57:00 -- 我在表的afterLoad事件,加了下面这个代码,切换页面可以自动重置列了 e.DataTable.DataCols("商品编号").RaiseDataColChanged() |