以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  怎么处理重置列时累加的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=76212)

--  作者:kaituozhe
--  发布时间:2015/10/23 17:42:00
--  怎么处理重置列时累加的问题

Select Case e.DataCol.name
    Case "生产预算"
        \'DataTables("材料预算").replacefor("需求预算", Nothing)
        If e.DataRow.Isnull("生产预算") = False Then
            Dim drs As List (of DataRow) = DataTables("物料清单").Select("产品编号= \'" & e.DataRow("物料编号") & "\'")
            If drs IsNot Nothing Then
                For Each dr As DataRow  In drs
                    Dim dr1 As DataRow =DataTables("材料预算").find("物料编号= \'" & dr("物料编号") & "\'")
                    dr1("需求预算")+= dr("使用数量")*e.DataRow("生产预算")
                Next
            End If
        End If
End Select

做生产预算时,会自动调用物料清单,然后每种产品的生产预算数量与相应的物料清单的积累计加在一起,算的时候,重置一次就会累加一次,怎么处理,写了红色的代码,然后就永远是0了,不知道该怎么处理。

 


--  作者:Hyphen
--  发布时间:2015/10/23 18:01:00
--  

重置列的目的就是为了刷新、重算。楼主重置列的目的是什么


--  作者:kaituozhe
--  发布时间:2015/10/23 18:53:00
--  

比如计算一次总数为10000,那么重置一次就是增加10000,第一次是10000,第二次20000,以次类推,可是我想要的结果是无论多少次都是10000


--  作者:狐狸爸爸
--  发布时间:2015/10/23 22:52:00
--  

dr1("需求预算")+= dr("使用数量")*e.DataRow("生产预算")

改为:


dr1("需求预算") = dr("使用数量")*e.DataRow("生产预算")


--  作者:kaituozhe
--  发布时间:2015/10/24 8:43:00
--  

大红袍休息了吗?怎么不见大红袍了

 


--  作者:kaituozhe
--  发布时间:2015/10/24 8:45:00
--  
4楼回答是错误的,我的代码是循环语句呀,没有+,只能记录最后一次值
--  作者:大红袍
--  发布时间:2015/10/26 10:55:00
--  

类似的代码已经给你写过了啊,搜索全部的数据,重新计算一次。