以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  通过一列是否为空设定逻辑列  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=15348)

--  作者:HP
--  发布时间:2011/12/21 16:15:00
--  通过一列是否为空设定逻辑列

请教

If e.DataRow.IsNull("J") Then
   e.DataRow("JH") = True
End If

以上代码“JH”列为逻辑列,放在按钮里执行不了,请帮忙修改,感谢!!!

 


--  作者:czy
--  发布时间:2011/12/21 16:36:00
--  
如果是逻辑列直接判断true或false
--  作者:狐狸爸爸
--  发布时间:2011/12/21 16:39:00
--  

e.DataRow是e参数,表事件中才有,按钮事件怎么可以这样用?

 

应该这样:

 

If Tables("表名").Current.IsNull("J") Then
    Tables("表名").Current("JH") = True
End If


--  作者:HP
--  发布时间:2011/12/21 16:53:00
--  还是不行

哦,可是还是执行不了,意思就是一列如果不为空,对应的逻辑值为真,

直接在表事件中也行,我那样写代码也是不行,请指教。感谢!!!


--  作者:blackzhu
--  发布时间:2011/12/21 16:56:00
--  

If Tables("表名").Current.IsNull("J")=false Then   \'如果j列不为空
    Tables("表名").Current("JH") = True    \'那么jh列勾选
End If


--  作者:HP
--  发布时间:2011/12/22 11:39:00
--  

If Tables("表名").Current.IsNull("J")=false Then   \'如果j列不为空
    Tables("表名").Current("JH") = True    \'那么jh列勾选
End If

以上对单行可以执行,能否批量执行呢?请指教,  感谢!!!



--  作者:czy
--  发布时间:2011/12/22 11:47:00
--  

放到表事件吧。

 

If e.DataCol.Name = "J" Then
    e.DataRow("JH") = e.DataRow.IsNull("J") = False
End If

 

这样只需重置列就可以了。

 


--  作者:czy
--  发布时间:2011/12/22 11:49:00
--  

如果用按钮,代码:

 

For Each r As Row In Tables("表名").Rows
    r("JH") = r.IsNull("J") = False
Next


--  作者:blackzhu
--  发布时间:2011/12/22 11:50:00
--  

所有的应该这样:

 

For Each dr As DataRow In DataTables("表名").DataRows
    If dr.IsNull("J")= False Then
        dr("jh") = True
    End If
Next


--  作者:HP
--  发布时间:2011/12/22 16:18:00
--  

感谢;太牛了!