以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  非表达式列的自动计算  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=122727)

--  作者:luckbetter333
--  发布时间:2018/8/1 9:00:00
--  非表达式列的自动计算
不想使用重置列按钮,也不想切换表后才重置。希望同一个表中某一列变化后,结果列马上变化。应该怎么办?
datacolchanged中计算代码是
Select Case e.DataCol.Name

    Case "订单数量","到货数量"
        e.DataRow("欠货数量")= e.DataRow("订单数量")-e.DataRow("到货数量")
end select


--  作者:有点甜
--  发布时间:2018/8/1 9:43:00
--  

你修改【订单数量】【到货数量】,只要这两列不是表达式列,你修改后,都会触发代码计算的。

 

如果是表达式列,看看 http://www.foxtable.com/webhelp/scr/2381.htm

 


--  作者:luckbetter333
--  发布时间:2018/8/1 9:48:00
--  
Select Case e.DataCol.Name
   Case "订单数量","到货数量"
        e.DataRow("欠货数量")= e.DataRow("订单数量")-e.DataRow("到货数量")

 Case "单价","到货数量"
        e.DataRow("到货金额")= e.DataRow("单价")*e.DataRow("到货数量")
    
    Case "到货数量","退货数量"
        e.DataRow("最终到货数量")= e.DataRow("到货数量")-e.DataRow("退货数量")  
  Case "退货单价","退货数量"
        e.DataRow("退货金额")= e.DataRow("退货单价")*e.DataRow("退货数量")  

  Case "到货金额","退货金额"
        e.DataRow("最终到货金额")= e.DataRow("到货金额")-e.DataRow("退货金额")
     

 
End Select

欠货数量好用了,订货数量和到货数量变化,欠货数量跟着变。现在的情况是我修改到货数量,单价不变,到货金额不变;我修改退货数量,退货单价不变,退货金额不变;修改到货数量,退货数量不变,最终到货数量不变。应该怎么办呢?

--  作者:有点甜
--  发布时间:2018/8/1 10:16:00
--  

Select Case e.DataCol.Name
    Case "订单数量","到货数量"
        e.DataRow("欠货数量")= e.DataRow("订单数量")-e.DataRow("到货数量")
End Select
Select Case e.DataCol.Name
    Case "单价","到货数量"
        e.DataRow("到货金额")= e.DataRow("单价")*e.DataRow("到货数量")
End Select
Select Case e.DataCol.Name
    Case "到货数量","退货数量"
        e.DataRow("最终到货数量")= e.DataRow("到货数量")-e.DataRow("退货数量")
End Select
Select Case e.DataCol.Name
    Case "退货单价","退货数量"
        e.DataRow("退货金额")= e.DataRow("退货单价")*e.DataRow("退货数量")
End Select
Select Case e.DataCol.Name
    Case "到货金额","退货金额"
        e.DataRow("最终到货金额")= e.DataRow("到货金额")-e.DataRow("退货金额")
End Select


--  作者:luckbetter333
--  发布时间:2018/8/1 10:38:00
--  
好用了,感谢!