Foxtable(狐表)用户栏目专家坐堂 → 怎样将期初、入库、出库这三张表的数据自动填充到进销存表中并自动计出库存?


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

主题:怎样将期初、入库、出库这三张表的数据自动填充到进销存表中并自动计出库存?

帅哥哟,离线,有人找我吗?
fyj0326
  41楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:406 积分:3656 威望:0 精华:0 注册:2009/12/12 17:04:00
  发帖心情 Post By:2011/6/23 15:00:00 [只看该作者]

 点加载树某一代码,按日期来升序,代码如何写呢?

 回到顶部
帅哥哟,离线,有人找我吗?
dd-zdh
  42楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:74 积分:795 威望:0 精华:0 注册:2011/4/7 15:26:00
  发帖心情 Post By:2011/6/23 15:11:00 [只看该作者]

变量 = Tables("进销存").Compute("Sum(结存数量)")

............................

你试一试,这个值不对的


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/6/23 15:14:00 [只看该作者]

以下是引用fyj0326在2011-6-23 14:49:00的发言:
 在切换到进销存表后能自动按日期升序但在加载树处点某一产品后却
不能按日期升序,如何解决呢
?

 
图片点击可在新窗口打开查看此主题相关图片如下:20110623-截图 9.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2011-6-23 14:49:14编辑过]

你可能有其他代码,我这里不会出现上面的现象····


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


加好友 发短信
等级:一尾狐 帖子:406 积分:3656 威望:0 精华:0 注册:2009/12/12 17:04:00
  发帖心情 Post By:2011/6/23 15:19:00 [只看该作者]

 麻烦mr725帮我看看代码是什么问题,加载树的ZA001的日期不能升序

  Tables("进销存").Sort = "日期"
If MainTable.Name = "进销存" Then
    DataTables("进销存").DataRows.Clear()

    Dim f As New Filler
    f.SourceTable = DataTables("期初") '指定数据来源
    f.SourceCols = "日期,代码,材料名称,摘要,期初数量,期初金额" '指定数据来源列
    f.DataTable = DataTables("进销存") '指定数据接收表
    f.DataCols = "日期,代码,材料名称,摘要,期初数量,期初金额" '指定数据接收列
    f.Fill() '填充数据
   
    Dim f2 As New Filler
    f2.SourceTable = DataTables("入库") '指定数据来源
    f2.SourceCols = "入库日期,代码,材料名称,摘要,入库数量,入库金额" '指定数据来源列
    f2.DataTable = DataTables("进销存") '指定数据接收表
    f2.DataCols = "日期,代码,材料名称,摘要,入库数量,入库金额" '指定数据接收列   
    f2.Fill() '填充数据

    Dim f3 As New Filler
    f3.SourceTable = DataTables("出库") '指定数据来源
    f3.SourceCols = "出库日期,代码,材料名称,摘要,出库数量,出库金额" '指定数据来源列
    f3.DataTable = DataTables("进销存") '指定数据接收表
    f3.DataCols = "日期,代码,材料名称,摘要,出库数量,出库金额" '指定数据接收列   
    f3.Fill() '填充数据

    Dim drs As List(of DataRow) = DataTables("进销存").Select("", "代码,日期 ") '注意排序参数
    drs(0)("结存数量二") = drs(0)("期初数量")
    drs(0)("结存金额二") = drs(0)("期初金额")
    Dim n1,n2 As Double
    For i As Integer = 1 To drs.Count - 1  '从第二行开始逐行计算累计
         n1 = IIF( drs(i)("代码") = drs(i-1)("代码"),drs(i-1)("结存数量二"),0)
         n2 = IIF( drs(i)("代码") = drs(i-1)("代码"),drs(i-1)("结存金额二"),0)
         drs(i)("结存数量二") = drs(i)("期初数量") + n1+ drs(i)("入库数量")- drs(i)("出库数量")
         drs(i)("结存金额二") = drs(i)("期初金额") + n2+ drs(i)("入库金额")- drs(i)("出库金额")
    Next
End If

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


加好友 发短信
等级:一尾狐 帖子:406 积分:3656 威望:0 精华:0 注册:2009/12/12 17:04:00
  发帖心情 Post By:2011/6/23 15:23:00 [只看该作者]

这是附件,请mr725帮我看看为什么 加载树中的代码ZA001的日期不能升序呢?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:进销存.table



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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/6/23 15:36:00 [只看该作者]

以下是引用dd-zdh在2011-6-23 15:11:00的发言:

变量 = Tables("进销存").Compute("Sum(结存数量)")

............................

你试一试,这个值不对的

要用同一个项目测试才知道是否正确,我不知道你用什么生成进销存表的。。。。


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/6/23 15:43:00 [只看该作者]

以下是引用fyj0326在2011-6-23 15:23:00的发言:
这是附件,请mr725帮我看看为什么 加载树中的代码ZA001的日期不能升序呢?

 下载信息  [文件大小:352.0 KB  下载次数:0]
图片点击可在新窗口打开查看点击浏览该文件:进销存.table


你应该把 Tables("进销存").Sort = "日期" 放在代码最后面!~

....

....
    Next

    Tables("进销存").Sort = "日期"
End If

[此贴子已经被作者于2011-6-23 15:45:37编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
dd-zdh
  48楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:74 积分:795 威望:0 精华:0 注册:2011/4/7 15:26:00
  发帖心情 Post By:2011/6/23 15:50:00 [只看该作者]

mr725,你看一下,如果我想统计出各个产品的库存和怎么样写代码

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


加好友 发短信
等级:一尾狐 帖子:406 积分:3656 威望:0 精华:0 注册:2009/12/12 17:04:00
  发帖心情 Post By:2011/6/23 15:55:00 [只看该作者]

 If MainTable.Name = "进销存" Then
    DataTables("进销存").DataRows.Clear()

    Dim f As New Filler
    f.SourceTable = DataTables("期初") '指定数据来源
    f.SourceCols = "日期,代码,材料名称,摘要,期初数量,期初金额" '指定数据来源列
    f.DataTable = DataTables("进销存") '指定数据接收表
    f.DataCols = "日期,代码,材料名称,摘要,期初数量,期初金额" '指定数据接收列
    f.Fill() '填充数据
    
    Dim f2 As New Filler
    f2.SourceTable = DataTables("入库") '指定数据来源
    f2.SourceCols = "入库日期,代码,材料名称,摘要,入库数量,入库金额" '指定数据来源列
    f2.DataTable = DataTables("进销存") '指定数据接收表
    f2.DataCols = "日期,代码,材料名称,摘要,入库数量,入库金额" '指定数据接收列    
    f2.Fill() '填充数据

    Dim f3 As New Filler
    f3.SourceTable = DataTables("出库") '指定数据来源
    f3.SourceCols = "出库日期,代码,材料名称,摘要,出库数量,出库金额" '指定数据来源列
    f3.DataTable = DataTables("进销存") '指定数据接收表
    f3.DataCols = "日期,代码,材料名称,摘要,出库数量,出库金额" '指定数据接收列    
    f3.Fill() '填充数据

    Dim drs As List(of DataRow) = DataTables("进销存").Select("", "代码,日期 ") '注意排序参数
    drs(0)("结存数量二") = drs(0)("期初数量")
    drs(0)("结存金额二") = drs(0)("期初金额")
    Dim n1,n2 As Double
    For i As Integer = 1 To drs.Count - 1  '从第二行开始逐行计算累计
         n1 = IIF( drs(i)("代码") = drs(i-1)("代码"),drs(i-1)("结存数量二"),0)
         n2 = IIF( drs(i)("代码") = drs(i-1)("代码"),drs(i-1)("结存金额二"),0)
         drs(i)("结存数量二") = drs(i)("期初数量") + n1+ drs(i)("入库数量")- drs(i)("出库数量")
         drs(i)("结存金额二") = drs(i)("期初金额") + n2+ drs(i)("入库金额")- drs(i)("出库金额")
    Next

End If
Tables("进销存").Sort = "日期"
图片点击可在新窗口打开查看此主题相关图片如下:20110623-截图 10.png
图片点击可在新窗口打开查看



  已将Tables("进销存").Sort = "日期"放在代码最后面,还是不行,还是不能升序


[此贴子已经被作者于2011-6-23 15:55:26编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/6/23 15:56:00 [只看该作者]

以下是引用dd-zdh在2011-6-23 15:50:00的发言:
mr725,你看一下,如果我想统计出各个产品的库存和怎么样写代码

可以设置条件啊,你现在可以看看帮助了::::::

Dim Sum As Double
Sum = Tables("订单").Compute("Sum(数量)", "产品 = 'PD01'")


 回到顶部
总数 97 上一页 1 2 3 4 5 6 7 8 9 10 下一页