Foxtable(狐表)用户栏目专家坐堂 → 我有个项目 里面有期初库存 进货 退货 要求是求某段时间的进销存汇总?现在问题来了


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

主题:我有个项目 里面有期初库存 进货 退货 要求是求某段时间的进销存汇总?现在问题来了

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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20045 威望:0 精华:0 注册:2012/5/19 11:57:00
我有个项目 里面有期初库存 进货 退货 要求是求某段时间的进销存汇总?现在问题来了  发帖心情 Post By:2016/4/1 11:12:00 [只看该作者]

我有个项目 里面有期初库存 进货 退货 要求是求某段时间的进销存汇总?现在问题来了

如果不分期限 是可以的,求某段时间到某段时间 期初数 就不对了 ,如何获取期初数 再进行计算 
项目如下
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:组合统计结果.foxdb





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


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

1、你期初表的数据是哪个时间范围的值啊?

 

2、期初的数量,就统计日期之前的进货、退货、销售,然后加减就是答案啊。


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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20045 威望:0 精华:0 注册:2012/5/19 11:57:00
  发帖心情 Post By:2016/4/1 13:35:00 [只看该作者]

期初就是开始建帐的期初数 就是最早的数值

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


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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:组合统计结果.foxdb


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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20045 威望:0 精华:0 注册:2012/5/19 11:57:00
  发帖心情 Post By:2016/4/1 15:36:00 [只看该作者]

谢谢

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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20045 威望:0 精华:0 注册:2012/5/19 11:57:00
  发帖心情 Post By:2016/7/22 9:04:00 [只看该作者]

你好 4楼的代码 其中取期初数
Dim dt As DataTable = DataTables("窗口1_Table1")
For Each dr As DataRow In dt.DataRows
    Dim filter2 As String = "名称 = '" & dr("名称") & "' and 颜色 = '" & dr("颜色") & "' and 仓库 = '" & dr("仓库") & "' and 日期 < #" & d & "#"
    Dim s1 As Double = DataTables("进货单").Compute("sum(数量)", filter2)
    Dim s2 As Double = DataTables("销售单").Compute("sum(数量)", filter2)
    Dim s3 As Double = DataTables("退货单").Compute("sum(数量)", filter2)
    dr("期初_数量") += s1 - s2 - s3
    Dim s4 As Double = DataTables("进货单").Compute("sum(金额)", filter2)
    Dim s5 As Double = DataTables("销售单").Compute("sum(金额)", filter2)
    Dim s6 As Double = DataTables("退货单").Compute("sum(金额)", filter2)
    dr("期初_金额") += s4 - s5 - s6
Next


如果库存表 销售单 进货单 退货单 记录数很多 
上面的代码 运行速度很慢 要等它了 ,有没有好办法

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


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

把日期条件去掉,看能不能快

 

Dim dt As DataTable = DataTables("窗口1_Table1")

For Each dr As DataRow In dt.DataRows
    Dim filter2 As String = "名称 = '" & dr("名称") & "' and 颜色 = '" & dr("颜色") & "' and 仓库 = '" & dr("仓库") & "'"
    Dim s1 As Double = DataTables("进货单").Compute("sum(数量)", filter2)
    Dim s2 As Double = DataTables("销售单").Compute("sum(数量)", filter2)
    Dim s3 As Double = DataTables("退货单").Compute("sum(数量)", filter2)
    dr("期初_数量") += s1 - s2 - s3
    Dim s4 As Double = DataTables("进货单").Compute("sum(金额)", filter2)
    Dim s5 As Double = DataTables("销售单").Compute("sum(金额)", filter2)
    Dim s6 As Double = DataTables("退货单").Compute("sum(金额)", filter2)
    dr("期初_金额") += s4 - s5 - s6
Next

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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20045 威望:0 精华:0 注册:2012/5/19 11:57:00
  发帖心情 Post By:2016/7/22 9:38:00 [只看该作者]

没有区别 还是一样的 运行慢 可能是循环中用compute 这个不太好,有没有好的方法

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


加好友 发短信
等级:九尾狐 帖子:2552 积分:20045 威望:0 精华:0 注册:2012/5/19 11:57:00
  发帖心情 Post By:2016/7/22 9:50:00 [只看该作者]

我思路是有的 就是不会写代码 
方法是 先生成新的期初余额表 然后用这个期初数去替代第二只表的期初余额

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


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

 上传实例。计算不可能慢。

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