以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  DataColChanged  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=50455)

--  作者:1234567
--  发布时间:2014/5/7 9:26:00
--  DataColChanged

做了一个按钮,事件的Click代码是 :DataTables("生产调度_Table3").DataCols("任务单编号").RaiseDataColChanged()。

表格的DataColChanged代码是:

If e.DataCol.Name = "任务单编号" Then \'发生变化的是产品列.
    \'则累计订单表中同名产品总的销售量,然后赋值给变动行的数量列
    e.DataRow("理论计算金额") = DataTables("生产调度_Table2").Compute("Sum(材料价格)","[工艺单编号] like \'" & e.NewValue & "-*\'")+DataTables("生产调度_Table2").Compute("Sum(加工金额)","[工艺单编号] like \'" & e.NewValue & "-*\'")
End If

 

Select Case e.DataCol.Name
    Case "任务单编号"
        If e.DataRow.IsNull("任务单编号") = False Then \'如果已经输入订单编号
            If e.DataRow.GetChildRows("工艺单").Count = 0 Then \'而且无订单明细
                Dim dr As DataRow = DataTables("工艺单").AddNew()
                dr("任务单编号") = e.DataRow("任务单编号")
            End If
        End If
End Select

 

我希望当我点击按钮时,

只执行 

e.DataRow("理论计算金额") = DataTables("生产调度_Table2").Compute("Sum(材料价格)","[工艺单编号] like \'" & e.NewValue & "-*\'")+DataTables("生产调度_Table2").Compute("Sum(加工金额)","[工艺单编号] like \'" & e.NewValue & "-*\'")
End If

不执行

Select Case e.DataCol.Name
    Case "任务单编号"
        If e.DataRow.IsNull("任务单编号") = False Then \'如果已经输入订单编号
            If e.DataRow.GetChildRows("工艺单").Count = 0 Then \'而且无订单明细
                Dim dr As DataRow = DataTables("工艺单").AddNew()
                dr("任务单编号") = e.DataRow("任务单编号")
            End If
        End If
End Select

该怎么处理?


--  作者:Bin
--  发布时间:2014/5/7 9:29:00
--  
RaiseDataColChanged  可以设置条件的

也可以指定触发行


--  作者:1234567
--  发布时间:2014/5/7 9:39:00
--  

两条代码都是针对"任务单编号"触发的。

我把第一条代码的触发设置在一个按钮中。

现在当我点击按钮后,两条代码都触发了


--  作者:有点甜
--  发布时间:2014/5/7 9:40:00
--  

 代码有矛盾,只要满足条件,就会触发。建议改一下代码,触发另一列。

 

If e.DataCol.Name = "任务单编号" OrElse e.DataCol.Name = "理论计算金额" Then \'发生变化的是产品列.
    \'则累计订单表中同名产品总的销售量,然后赋值给变动行的数量列
    e.DataRow("理论计算金额") = DataTables("生产调度_Table2").Compute("Sum(材料价格)","[工艺单编号] like \'" & e.NewValue & "-*\'")+DataTables("生产调度_Table2").Compute("Sum(加工金额)","[工艺单编号] like \'" & e.NewValue & "-*\'")
End If

 

Select Case e.DataCol.Name
    Case "任务单编号"
        If e.DataRow.IsNull("任务单编号") = False Then \'如果已经输入订单编号
            If e.DataRow.GetChildRows("工艺单").Count = 0 Then \'而且无订单明细
                Dim dr As DataRow = DataTables("工艺单").AddNew()
                dr("任务单编号") = e.DataRow("任务单编号")
            End If
        End If
End Select