以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  正负值问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=179400)

--  作者:denghui69986
--  发布时间:2022/8/22 7:39:00
--  正负值问题
老师能否让生产数量大于订单数量弹窗提示,同时正负值变颜色,谢谢
图片点击可在新窗口打开查看
--  作者:有点蓝
--  发布时间:2022/8/22 8:41:00
--  
1、弹窗:http://www.foxtable.com/webhelp/topics/0625.htm

If e.DataCol.Name = "生产数量" orelse e.DataCol.Name = "订单数量" Then 
    If e.Datarow("生产数量") > e.Datarow("订单数量") Then 
        messagebox.show("xxx提示")
    
End If
End
 
If


--  作者:denghui69986
--  发布时间:2022/8/22 9:30:00
--  
谢谢老师
--  作者:denghui69986
--  发布时间:2022/8/22 9:51:00
--  
还是出现一点问题,上面代码只能在订单数量修改数量发生弹窗提示,生产数量修改没发生弹窗提示
--  作者:有点蓝
--  发布时间:2022/8/22 9:56:00
--  
生产数量是表达式列?http://www.foxtable.com/webhelp/topics/2381.htm
--  作者:denghui69986
--  发布时间:2022/8/22 10:28:00
--  
对,时表达列,表达列能超出订单数量能提示吗?


--  作者:有点蓝
--  发布时间:2022/8/22 10:30:00
--  
看5楼帮助用法
--  作者:denghui69986
--  发布时间:2022/8/22 10:35:00
--  

当我们在订单明细表输入数量时,订单表的数量会自动更新,但是上面的代码永远不会执行,因为数量是一个表达式列,不会触发事件。
我们需要在订单明细表的
DataColChanged事件加上代码:

If e.DataCol.name = "数量" Then
    Dim 
pr As DataRow = e.DataRow.GetParentRow("订单"\'找出对应的父行
    If 
pr IsNot Nothing Then
        DataTables(
"订单").DataCols("数量").RaiseDataColChanged(pr)  \'通知系统此父行的数量列发生了改变,触发DataColChanged事件
    End If
End If


按照这方法也生产数量变化也没提示



--  作者:denghui69986
--  发布时间:2022/8/22 10:36:00
--  
老师能否直接教我怎么设置?
--  作者:有点蓝
--  发布时间:2022/8/22 10:40:00
--  
生产数量的表达式是什么?