以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何定义子表满足某些条件的行后再执行代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=90553)

--  作者:qwersha
--  发布时间:2016/9/16 18:37:00
--  [求助]如何定义子表满足某些条件的行后再执行代码
例如有表A。有 列一,列二。列三
如果表A 的 所有列一等于1的行的列二等于2那么执行代码。
请教老师该怎么代码实现?

--  作者:有点蓝
--  发布时间:2016/9/17 9:54:00
--  
DataColChanged事件

Select Case e.DataCol.name
    Case "列一","列二"
        If e.DataRow("列一") = "1" AndAlso e.DataRow("列二") = "2"
            \'其它处理代码
        End If
End Select

--  作者:qwersha
--  发布时间:2016/9/17 11:48:00
--  
老师好。这样的话会执行很多遍代码,如果有100行会弹出100个HELLO。。
           
Select Case e.DataCol.name
    Case "已付款","已发货"
        If e.DataRow("已付款") <> Nothing AndAlso e.DataRow("已发货") = True Then
MessageBox.Show("hello")
End If
End Select
目的是实现。历遍表A所有的行,  如果表A所有 列一=1的行,列二 都等于2,那么执行代码

--  作者:有点蓝
--  发布时间:2016/9/17 14:11:00
--  

Select Case e.DataCol.name
    Case "列一","列二"
        Dim c1 As Integer = e.DataTable.Compute("count(列一)","列一=1")
        Dim c2 As Integer = e.DataTable.Compute("count(列二)","列二=2 and 列一=1")
        If c1=c2
            \'其它处理代码
        End If
End Select

--  作者:qwersha
--  发布时间:2016/9/17 15:44:00
--  
谢谢老师!问题解决了!图片点击可在新窗口打开查看