以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 先进先出 还是弄不明白,数据总是对不上 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=81918) |
||||
-- 作者:jinzhengbe -- 发布时间:2016/3/8 21:10:00 -- 先进先出 还是弄不明白,数据总是对不上 所以换了个思路。
执行 在打开程序前 openproject 的事件 想实现下面的功能,
rukudan 进货表 weixin 出货表1 wx 出货表2
weixin表的 cb列
1 查询当前行的 时间 ,并且汇总weixin表当前行之前的yifu 列, 2 在wx表里找到时间早于(weixin)当前的行的列, 并且汇总符合条件行的 yifu列 3 在rukuan表 计算(weixin表)当前行的排名并且计算 成本(cb)列 测试程序中没有时间列,所以可以用其他类代替
wx表的cb列 原里和weixin表一样
场景: rukudan weixin wx
name shuliang price id name yifu cb time name yifu cb time
aa 10 100 1 aa 2 100*2 01-02 aa 6 100 *6 01-03 aa 5 30 2 aa 6 2*100+4*30 01-04 aa 3 2*30+1*(0) 01-05
黄色部分是 按照上面的逻辑计算后正常能够得到值。
希望各位大侠,前辈多多指教,已经研究快一个月了,头都大了几次了,也想过放弃,不过相信狐表的团队的力量,所以有来骚扰你们了,还请多多包涵
[此贴子已经被作者于2016/3/8 21:20:12编辑过]
|
||||
-- 作者:大红袍 -- 发布时间:2016/3/8 21:57: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") & "\'") Dim cks As Double = DataTables("wx").sqlCompute("sum(shuliang)", "name = \'" & r("name") & "\' and [_Identify] < " & r("_Identify")) If cks + rks1 > rks Then
|
||||
-- 作者:大红袍 -- 发布时间:2016/3/8 21:58:00 -- 没有时间,根本就不能对比两个表的先后顺序。
比较先后,就加上比如红色的条件即可
Dim rks1 As Double = DataTables("weixin").sqlCompute("sum(shuliang)", "name = \'" & r("name") & "\'") Dim cks As Double = DataTables("wx").sqlCompute("sum(shuliang)", "name = \'" & r("name") & "\' and [_Identify] < " & r("_Identify")) |
||||
-- 作者:jinzhengbe -- 发布时间:2016/3/9 22:29:00 --
我按您的代码做了好多次了啊,但是数据总是对不上啊, 我又找不出原因,所以这不是又要麻烦您了么
上面的图我解释一下啊,
入库单 是入库的数量, 一共入库100多个 weixin那个截图是销售,出库的,一共出去了21个 第5,6行的利润算不出来 wx 也是销售 的 出库的 , 一共出去了8个
问题1 这两个加起来一共出了29件。 为什么第5.6 行的lirun算不出来呢? 问题2 cb值代表的是什么呢? 成本么? 比销售价格还高? cbs 是代表什么呢?按我的理解应该也是成本啊? 但是怎么会出,3,呢(wx表)
实在是找不出原因才上论坛的。还请多关照啊。
[此贴子已经被作者于2016/3/9 22:34:13编辑过]
|
||||
-- 作者:blackzhu -- 发布时间:2016/3/10 7:55:00 -- 没有时间判断排序 何来的先进先出呀 |