以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 我觉得还是代码有问题,还请各位大师指教 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=82143) |
-- 作者:jinzhengbe -- 发布时间:2016/3/12 14:19:00 -- 我觉得还是代码有问题,还请各位大师指教 我在wx里就有一个商品的数据,三行,也对不上,还请各位指点一下 原文http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=81918&replyID=&skin=1 [此贴子已经被作者于2016/3/12 14:20:51编辑过]
|
-- 作者:大红袍 -- 发布时间:2016/3/14 14:26:00 -- 微调就是答案啊
Dim r As Row = Tables("wx").Current Dim rks As Double = DataTables("rukudan").sqlCompute("sum(shuliang)", "name = \'" & r("name") & "\'") Dim rks1 As Double \' = DataTables("weixin").sqlCompute("sum(shuliang)", "name = \'" & r("name") & "\' and time < #" & r("time") & "#"") Dim cks As Double = DataTables("wx").sqlCompute("sum(shuliang)", "name = \'" & r("name") & "\' and time < #" & r("time") & "#") If cks + rks1 > rks Then If sy >= 0 Then |
-- 作者:jinzhengbe -- 发布时间:2016/3/19 19:38:00 -- 大红袍大师,非常感谢一直以来的大力支持,经过测试,对于上面的代码有下列问题 还望继续指点
1 如果进货的 数量为 10 ,5 , 3 这样 同时 出货的数量 也一样为 10. 5, 3 这样的话 程序的代码 正常没有问题。
2 假如进货数量不变 出货的数量为 5,6 ,7 这样的话 除了 第一个5的 利润可以结算 其他两个 6, 7 的利润算不出来。
3 还是进货数量不变 出货的数量为 3 3 6 也是只能算出第一个3 的利润, 其他 3 和 6 的利润也是算不出来
请问这种情况应该怎么处理? 因为,出货的数量基本上不会和 进货的数量和顺序一致。
不知道是不是我之前没有说清楚,这里我再说明一下程序的要点
以上面的进货顺序为例 第一次进货 10个 每个单价10 第二次进货 5个 每个单价15
那么出货的时候我计算成本的时候 应该是前 10 的进货成本都 按10计算
场景1 销售数量顺序如下 3 的lirun = (3*卖价) - (3*10) 7 的lirun = (7*卖价) - (7*10) 3 的lirun = (3*卖价) -(3*15)
场景2 销售数量顺序如下 6 的lirun = (6*卖价) - (6*10) 5 的lirun = (5*卖价) - (4*10) - (1*15 ) 3 的lirun= (3*卖价) -(3*15)
|
-- 作者:大红袍 -- 发布时间:2016/3/21 0:46:00 -- 计算,没,问,题。 |
-- 作者:大红袍 -- 发布时间:2016/3/21 0:47:00 -- 自己认真测试啊。 |
-- 作者:jinzhengbe -- 发布时间:2016/3/21 18:02:00 -- 大师啊,我要是不测试,我能几次三番的留言么? 这个问题还是算了吧,我放弃了。 |
-- 作者:大红袍 -- 发布时间:2016/3/21 21:18:00 -- 之前还有的save代码你没加上啊
DataTables("rukudan").save
Dim r As Row = Tables("wx").Current Dim rks As Double = DataTables("rukudan").sqlCompute("sum(shuliang)", "name = \'" & r("name") & "\'") Dim rks1 As Double \' = DataTables("weixin").sqlCompute("sum(shuliang)", "name = \'" & r("name") & "\' and time < #" & r("time") & "#"") Dim cks As Double = DataTables("wx").sqlCompute("sum(shuliang)", "name = \'" & r("name") & "\' and time < #" & r("time") & "#") If cks + rks1 > rks Then Dim sy As Integer = count - (cks + rks1)
[此贴子已经被作者于2016/3/21 21:18:45编辑过]
|