Foxtable(狐表)用户栏目专家坐堂 → 关于月结表的小数计算问题


  共有3035人关注过本帖树形打印复制链接

主题:关于月结表的小数计算问题

帅哥哟,离线,有人找我吗?
大红袍
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/20 12:14:00 [显示全部帖子]

Dim pdr As DataRow = Nothing

For Each dr As DataRow In DataTables("材料月结").DataRows
   
    If pdr IsNot Nothing Then
       
        dr("上月结存_金额") = pdr("上月结存_金额")
       
    End If
   
    pdr = dr
   
Next


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/20 13:22:00 [显示全部帖子]

 

Dim pdr As DataRow = Nothing

For Each dr As DataRow In DataTables("材料月结").DataRows
   
    If pdr IsNot Nothing Then
       
        dr("上月结存_金额") = pdr("本月结存_金额")
       
    End If
   
    pdr = dr
   
Next


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/20 13:28:00 [显示全部帖子]

无法理解你的问题,如果修改后依然要一致,就去编写datacolchanged事件。

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/20 13:51:00 [显示全部帖子]

5楼的代码就是啊,获取上一行的信息,然后赋值啊

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/20 14:08:00 [显示全部帖子]

不可能结果不对。上传实例。


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/20 14:41:00 [显示全部帖子]

DataTables("材料月结").DataRows.Clear
Dim Arys As List(Of String())
Arys = DataTables("材料明细").GetValues("月|材料分类|材料名称|型号规格","月 >= '" & e.Form.Controls("起始月").Text & "' And 月 <= '" & e.Form.Controls("截止月").Text & "' ")
For Each Ary As String() In Arys
    Dim r As Row = Tables("材料月结").AddNew
    r("月") = Ary(0)
    r("材料分类") = Ary(1)
    r("材料名称") = Ary(2)
    r("型号规格") = Ary(3)
Next
Dim dt As DataTable = DataTables("材料明细")
For Each dr As DataRow In DataTables("材料月结").DataRows
    Dim Filter As String = "材料分类 = '" & dr("材料分类") & "' and 材料名称 = '" & dr("材料名称") & "' and 型号规格 = '" & dr("型号规格") & "'"
    Dim Sum,Sum1,P As Double
   
    dr("本月入仓_数量") = dt.Compute("Sum(入仓数量)",Filter & " And 月 = '" & dr("月") & "'")
    dr("本月入仓_金额") = dt.Compute("Sum(入仓金额)",Filter & " And 月 = '" & dr("月") & "'")
    dr("本月出仓_数量") = dt.Compute("Sum(出仓数量)",Filter & " And 月 = '" & dr("月") & "'")
    dr("上月结存_数量") = dt.Compute("Sum(入仓数量)",Filter & " And 月 < '" & dr("月") & "'") - dt.Compute("Sum(出仓数量)",Filter & " And 月 < '" & dr("月") & "'")
    Sum = DataTables("材料明细").Compute("Sum(入仓金额)",Filter & " And 月 < '" & dr("月") & "'")
    Sum1 = DataTables("材料明细").Compute("Sum(入仓数量)",Filter & " And 月 < '" & dr("月") & "'")
   
    Dim pdr As DataRow = DataTables("材料月结").find(filter & " and 月 < '" & dr("月") & "'", "月 desc")
    If pdr IsNot Nothing Then
        dr("上月结存_金额") = pdr("上月结存_金额")
    End If

    dr("本月结存_数量") = dr("上月结存_数量") + dr("本月入仓_数量") - dr("本月出仓_数量")
    dr("本月加权平均单价") = (P + dr("本月入仓_金额"))/(dr("上月结存_数量") + dr("本月入仓_数量"))
    dr("本月出仓_金额") = dr("本月加权平均单价") * dr("本月出仓_数量")
    dr("本月结存_金额") = dr("本月加权平均单价") * dr("本月结存_数量")
    'dr("本月结存_金额") = dr("上月结存_金额") + dr("本月入仓_金额") - dr("本月出仓_金额")
   
   
   
Next

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/20 14:51:00 [显示全部帖子]

上传实例

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/20 15:00:00 [显示全部帖子]

Dim pdr As DataRow = DataTables("材料月结").find(filter & " and 月 < '" & dr("月") & "'", "月 desc")
If pdr IsNot Nothing Then
    dr("上月结存_金额") = pdr("上月结存_金额")
Else
    dr("上月结存_金额") = Sum / Sum1 * dr("上月结存_数量")
End If

 回到顶部