以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求大神帮忙  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=75219)

--  作者:litiemiao2016
--  发布时间:2015/9/30 13:25:00
--  求大神帮忙
首先谢谢 红袍哥哥 您发的那个统计表 我弄明白了 

我想问下, 统计订单表中:订单按时间顺序排列,统计同一个【客户名称】,同一个【提货地点】的【数量】之和,在统计客户提油明细表中,同一个【客户名称】,同一个【提货地点】的【提油数量】和【实际提油数量】,
然后计算每一个不同的客户名称中每个提货地点剩余的油量,(订单表中有个单价列,但是订单的时间不同,单价也不同,但是每个订单中都有数量,所以就是累计客户提油表中同一个客户,同一个提货地点中提油的总和,用这个总和减去{按时间先后顺序排列的客户订单中的【数量】,够减去一个就按照第一个订单的单价计算金额,例如:假设 客户1 地点1 的订购数量分别为 100吨  200 吨 300吨,(订购合同工按照时间先后排序,例如2015.9.2  2015.9.3  2015.9.4)该客户,该提货地点提油共计500吨,那么 其中100吨 按 订购合同未100吨时候那个单价计算,在200吨 按 200吨的合同单价计算

剩下的不足第三个合同订购数量的  按第三个合同订购单价计算呢  要怎么办呢  求大神帮忙})
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:管理项目1.rar


--  作者:大红袍
--  发布时间:2015/9/30 14:05:00
--  

自己看

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=75083&skin=0

 


--  作者:大红袍
--  发布时间:2015/9/30 14:06:00
--  
初学者看视频教程。
--  作者:大红袍
--  发布时间:2015/9/30 14:36:00
--  
单价计算的问题,你提油的时候,就应该去指定,每次提油,是哪个订单的,这样才方法后面的计算啊。
--  作者:litiemiao2016
--  发布时间:2015/9/30 14:47:00
--  
每次提油是应该指定的  但是 指定的方式 有点区别 , 指定的方式 是按照 订单表中 这个客户的订单来指定的,例如这个客户一共有
3个订单,每个订单订购数量别分为100吨,200吨,300吨, 然后 他开始提油,他提油总数累计到100吨的话 就按第一个订单签订的单价进行计算 如果提油总数为200吨,那么 其中100吨按第一个订单单价计算,剩下的100吨按照第二个订单的单价计算,,以此类推 ,,说白了 必须是一个订单一个订单的执行,第一个订单执行完了 才走下一个订单 ,一次类推

--  作者:litiemiao2016
--  发布时间:2015/9/30 15:12:00
--  
还有就是 您给我的那个统计代码 不是你临时表嘛  我要做成数据表应该怎么办
--  作者:大红袍
--  发布时间:2015/9/30 15:13:00
--  

导出,导入,就是数据表。

 

或者你用filler填充数据。http://www.foxtable.com/help/topics/0680.htm

 


--  作者:litiemiao2016
--  发布时间:2015/9/30 15:35:00
--  
大红袍哥哥  您能不能写段完整的代码 我看下
--  作者:大红袍
--  发布时间:2015/9/30 15:41:00
--  
代码已经给出。知识点已经给出。
--  作者:大红袍
--  发布时间:2015/9/30 15:57:00
--  

单价问题,去datacolchanged事件写代码

 

Select Case e.DataCol.Name
    Case "客户名称", "提货地点", "提油数量"
        If e.DataRow.IsNull("客户名称") OrElse e.DataRow.IsNull("提货地点") Then
            e.DataRow("单价") = Nothing
        Else
            Dim psum As Double = e.DataTable.Compute("sum(提油数量)", "_Identify < " & e.DataRow("_Identify") & " and 客户名称 = \'" & e.DataRow("客户名称") & "\' and 提货地点 = \'" & e.DataRow("提货地点") & "\'")
            Dim drs As List(Of DataRow) = DataTables("订单").Select("客户名称 = \'" & e.DataRow("客户名称") & "\' and 提货地点 = \'" & e.DataRow("提货地点") & "\'", "订单日期")
            Dim sum As Double = 0
            For Each dr As DataRow In  drs
                If sum < psum Then
                    sum += psum
                Else
                    e.DataRow("单价") = dr("单价")
                    Exit For
                End If
            Next
        End If
End Select