以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 我有个项目 里面有期初库存 进货 退货 要求是求某段时间的进销存汇总?现在问题来了 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=83135) |
||||
-- 作者:jswjyjf -- 发布时间:2016/4/1 11:12:00 -- 我有个项目 里面有期初库存 进货 退货 要求是求某段时间的进销存汇总?现在问题来了 我有个项目 里面有期初库存 进货 退货 要求是求某段时间的进销存汇总?现在问题来了 如果不分期限 是可以的,求某段时间到某段时间 期初数 就不对了 ,如何获取期初数 再进行计算 项目如下
|
||||
-- 作者:大红袍 -- 发布时间:2016/4/1 11:19:00 -- 1、你期初表的数据是哪个时间范围的值啊?
2、期初的数量,就统计日期之前的进货、退货、销售,然后加减就是答案啊。 |
||||
-- 作者:jswjyjf -- 发布时间:2016/4/1 13:35:00 -- 期初就是开始建帐的期初数 就是最早的数值 |
||||
-- 作者:大红袍 -- 发布时间:2016/4/1 14:33:00 --
|
||||
-- 作者:jswjyjf -- 发布时间:2016/4/1 15:36:00 -- 谢谢 |
||||
-- 作者:jswjyjf -- 发布时间: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 如果库存表 销售单 进货单 退货单 记录数很多 上面的代码 运行速度很慢 要等它了 ,有没有好办法
|
||||
-- 作者:大红袍 -- 发布时间: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 -- 发布时间:2016/7/22 9:38:00 -- 没有区别 还是一样的 运行慢 可能是循环中用compute 这个不太好,有没有好的方法 |
||||
-- 作者:jswjyjf -- 发布时间:2016/7/22 9:50:00 -- 我思路是有的 就是不会写代码 方法是 先生成新的期初余额表 然后用这个期初数去替代第二只表的期初余额
|
||||
-- 作者:大红袍 -- 发布时间:2016/7/22 10:04:00 -- 上传实例。计算不可能慢。 |