以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- datacolchanged代码问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=64051) |
-- 作者:affixed -- 发布时间:2015/2/4 9:22:00 -- datacolchanged代码问题 我在datacolchanged中的if判断无效。 代码如下: Dim ztsl As
Double
\'定义变量ztsl,用于存放未到货数量的总和 If e.DataCol.Name = "orderWdhsl"
Then
‘如果列名为orderWdhsl(未到货数量) For Each dr As
DataRow
In DataTables("orderList").Select("[orderItemID] = \'" & dr("orderItemID") & "\'") ’在订单表中选择素有物料ID等于当前行物料ID的项目 ztsl = ztsl + dr("orderWdhsl") ‘变量ztsl等于ztsl加上此行的未到货数量 Next Dim dr2 As
DataRow = DataTables("kcList").Find("[whItemID] = \'" & e.DataRow("orderItemID") & "\'") ’库存表中相同物料ID的在途数量用ztsl变量中的数值来替代 dr2("whzaitu") = ztsl End If 我表格中的未到货数量是通过订单数量-已到货数量自动计算出来的。所以订单表中首先发生datacolchanged的是已到货数量。是否这个原因,造成datacolchanged中的if判断无法执行。 谢谢!
|
-- 作者:有点甜 -- 发布时间:2015/2/4 9:26:00 -- 表达式列,不能直接判断
http://www.foxtable.com/help/topics/2381.htm
Dim ztsl As Double \'定义变量ztsl,用于存放未到货数量的总和 |
-- 作者:Bin -- 发布时间:2015/2/4 9:26:00 -- For Each dr As DataRow In DataTables("orderList").Select("[orderItemID] = \'" & dr("orderItemID") & "\'") ’在订单表中选择素有物料ID等于当前行物料ID的项目 ztsl = ztsl + dr("orderWdhsl") ‘变量ztsl等于ztsl加上此行的未到货数量 Next 直接用 ztsl = DataTables("orderList").Compute("sum(orderWdhsl)","[orderItemID] = \'" & dr("orderItemID") & "\'") Dim dr2 As DataRow = DataTables("kcList").Find("[whItemID] = \'" & e.DataRow("orderItemID") & "\'") ’库存表中相同物料ID的在途数量用ztsl变量中的数值来替代 if dr2 isnot nothing then dr2("whzaitu") = ztsl end if 如果你列是表达式列,表达式列是不会触发DataColChanged的. 你要判断改变表达式列的列 |
-- 作者:Bin -- 发布时间:2015/2/4 9:27:00 -- http://www.foxtable.com/help/topics/2381.htm |
-- 作者:affixed -- 发布时间:2015/2/4 9:58:00 -- 谢谢两位老师的解答。 问题已解决。
|