以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  流水帐代码 帮助看一下 哪里有问题?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=87381)

--  作者:jswjyjf
--  发布时间:2016/7/10 10:20:00
--  流水帐代码 帮助看一下 哪里有问题?
For Each dr As DataRow In DataTables("毛纱进货单").Select("[_SortKey] >= " & dr("_SortKey"))
        Dim Val1 As Double = DataTables("毛纱进货单").Compute("Sum(金额)","[_SortKey] <= " & dr("_SortKey"))
        Dim Val2 As Double = DataTables("毛纱进货单").Compute("Sum(已付金额)","[_SortKey] <= " & dr("_SortKey"))
        dr("结余金额") =Val1 - Val2
    Next


--  作者:大红袍
--  发布时间:2016/7/10 10:58:00
--  

你的_Sortkey有可能重复,重复会导致计算不正确。

 

方法一:重置_Sorktey列,弄成不重复的值。

 

方法二:用_Identiy列来比较。

 


--  作者:jswjyjf
--  发布时间:2016/7/10 11:15:00
--  
谢谢
还有下面这段代码 计算不结果不对
Dim Filter As String
Dim ye As Double
For Each dr0 As DataRow In DataTables("毛纺厂").DataRows
    Filter = "毛纺厂名称= \'" & dr0("名称")
    DataTables("毛纱进货单").LoadFilter =filter
    ye=dr0("期初金额")
    messagebox.show(ye)
    For Each dr As Row In Tables("毛纱进货单").Rows
        ye=ye+dr("金额")-dr("已付金额")
        dr("结余金额")=ye
    Next
    DataTables("毛纱进货单").Save()
Next

--  作者:大红袍
--  发布时间:2016/7/10 11:49:00
--  
Dim Filter As String
Dim ye As Double
For Each dr0 As DataRow In DataTables("毛纺厂").DataRows
    Filter = "毛纺厂名称= \'" & dr0("名称") & "\'"
    DataTables("毛纱进货单").LoadFilter =filter
DataTables("毛纱进货单").Load
    ye=dr0("期初金额")
    messagebox.show(ye)
    For Each dr As Row In Tables("毛纱进货单").Rows
        ye=ye+dr("金额")-dr("已付金额")
        dr("结余金额")=ye
    Next
    DataTables("毛纱进货单").Save()
Next