以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  这种公式应该怎么算  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=67830)

--  作者:jinzhengbe
--  发布时间:2015/5/4 14:38:00
--  这种公式应该怎么算

1号  入库  10个 单价100

2好  入库  5个  单价200

3好  入库  7个  单价 150

 

销售

 

4号   销售  6  单价  500

5号   销售  10  单价 450

6号   销售   20  单价 600

 

成本计算

 

销售 前10个 成本按照 100计算 

11-15按照200算

16-23按照150算

4号利润= 6*500-6*100

5号利润= 10*450-1*100-5*200-2*150

6号利润= 20*600-3*150-17*x

 

销售单里面的利润 想按照这种形式算

可以实现么?

 

 

[此贴子已经被作者于2015/8/27 12:01:27编辑过]

--  作者:Bin
--  发布时间:2015/5/4 14:41:00
--  
可以实现,我建议你先温习一下帮助,根据你最近的提问,你似乎都忘记狐表如何使用了.  这个新项目基本都是别人帮你完成的. 这样不科学.


--  作者:大红袍
--  发布时间:2015/5/4 15:04:00
--  
 不要这样计算,利润不需要马上算出来,如果要算,也算一个平均的就行了。
--  作者:jinzhengbe
--  发布时间:2015/5/4 15:05:00
--  

我想你误会了吧

大部分都是我自己坐的。不会的话就在论坛请教

我觉得这是很正常的啊


--  作者:jinzhengbe
--  发布时间:2015/5/4 15:06:00
--  
均价不是没有考虑过,只是领导要求这么算。我也头疼啊
--  作者:Bin
--  发布时间:2015/5/4 15:07:00
--  
你可以搜索一下论坛里面的阶梯电费等之类的例子,原理差不多的
--  作者:jinzhengbe
--  发布时间:2015/5/4 15:14:00
--  
能给个链接么?搜了一下没有找到
--  作者:Bin
--  发布时间:2015/5/4 15:19:00
--  
我一下子也找不到,你搜索内容 包含电费 或者阶梯  阶梯电费之类的,自己找一下看看
--  作者:大红袍
--  发布时间:2015/5/4 16:00:00
--  

DataColChanged事件加入代码(mark 先入先出)

 

Select Case e.DataCol.Name
    Case "shuliang", "price"
        Dim rks As Double = DataTables("rukudan").Compute("sum(shuliang)", "cord = \'" & e.DataRow("cord") & "\'")
        Dim cks As Double = e.DataTable.Compute("sum(shuliang)", "cord = \'" & e.DataRow("cord") & "\'")
        If cks > rks Then
            msgbox("无法出库,库存不足")
        Else
            Dim count As Integer = 0
            Dim drs As List(Of DataRow) = DataTables("rukudan").Select("cord = \'" & e.DataRow("cord") & "\'", "_Identify")
            For i As Integer = 0 To drs.count - 1
                Dim dr As DataRow = drs(i)
                count += dr("shuliang")
                Dim sy As Integer = count - (cks - e.DataRow("shuliang"))
                If sy >= 0 Then
                    Dim cb, cbs As Double
                    count = 0
                    For j As Integer = i To drs.count - 1
                        dr = drs(j)
                        If j = i Then
                            count += sy
                            cb = sy * dr("price")
                        Else
                            count += dr("shuliang")
                            cb = dr("shuliang") * dr("price")
                            sy = dr("shuliang")
                        End If
                        If count >= e.DataRow("shuliang") Then
                            cbs += (e.DataRow("shuliang") - (count - sy)) * dr("price")
                            msgbox(cbs & count)
                            e.DataRow("lirun") = e.DataRow("shuliang") * e.DataRow("price") - cbs
                            Exit For
                        Else
                            cbs += cb
                        End If
                    Next
                    Exit For
                End If
            Next
        End If
End Select