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


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

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

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
关于月结表的小数计算问题  发帖心情 Post By:2015/9/19 19:23:00 [只看该作者]

如何使""上月结存_金额"" = 上月的月末结存_金额

图片点击可在新窗口打开查看此主题相关图片如下:月结表.jpg
图片点击可在新窗口打开查看

以下是生成月结表的代码
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 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("月") & "'")
    dr("上月结存_金额") = Sum / Sum1 * dr("上月结存_数量")
    dr("本月结存_数量") = dr("上月结存_数量") + dr("本月入仓_数量") - dr("本月出仓_数量")
    dr("本月加权平均单价") = (dr("上月结存_金额") + dr("本月入仓_金额"))/(dr("上月结存_数量") + dr("本月入仓_数量"))
    dr("本月出仓_金额") = dr("本月加权平均单价") * dr("本月出仓_数量")
    dr("本月结存_金额") = dr("本月加权平均单价") * dr("本月结存_数量")
    'dr("本月结存_金额") = dr("上月结存_金额") + dr("本月入仓_金额") - dr("本月出仓_金额") 
Next

[此贴子已经被作者于2015/9/19 19:23:51编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2015/9/20 11:55:00 [只看该作者]

有老师指点一下吗?
例: 第2行的"上月结存_金额" = 第1行的"本月结存_金额"

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2015/9/20 12:50:00 [只看该作者]

大红袍老师,我的问题不是这样的

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2015/9/20 13:26:00 [只看该作者]

to 5楼:我已经改过"本月结存_金额",得不到我要的结果
不知道我1楼和2楼的描述是否明确
[此贴子已经被作者于2015/9/20 13:27:21编辑过]

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


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

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

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2015/9/20 13:47:00 [只看该作者]

大红袍老师,这是企业财务需要的仓库材料月结表,该表是通过"材料明细"统计计算得来的,1楼的代码就是计算过程和结果。正确的结果是:“上月结存_金额”应等于上一行的 "本月结存-金额",由于有小数,所以计算结果产生了误差,数据越多,误差越大。(数量列没有误差)现在我想直接用代码设置第2行的"上月结存_金额" = 第1行的"本月结存_金额"

"材料月结“实际上是一个统计表
[此贴子已经被作者于2015/9/20 13:47:51编辑过]

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


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

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

 回到顶部
帅哥哟,离线,有人找我吗?
实话实说
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2015/9/20 13:59:00 [只看该作者]

有个问题:1楼图例是数据是经过筛选的,5楼代码得不到想要的结果

 回到顶部
总数 19 1 2 下一页