以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口的BeforeCheckRow事件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=79351)

--  作者:文道古月
--  发布时间:2015/12/29 15:34:00
--  窗口的BeforeCheckRow事件

 老师好:

 

如图,当数量为空时,行的复选框不可选中,下面代码怎么不执行呢?

 


图片点击可在新窗口打开查看此主题相关图片如下:截图20151229153055.png
图片点击可在新窗口打开查看

--  作者:大红袍
--  发布时间:2015/12/29 15:47:00
--  

If e.Row.IsNull("移动数量") Then e.Cancel = True

 


--  作者:文道古月
--  发布时间:2015/12/29 16:38:00
--  

 

老师好,下面两个事件冲突了,改了几次,要么不起作用,要么闪退,该怎么解决呢?

 

目的:当变化的是数量行,且值为空时,复选设为false,当手动选中复选时,如果值为空,那么复选不可选。

 

DataColChanged事件中,写了如果数量行为空,那么复选框设为false

If e.DataCol.name = "移动数量" AndAlso Forms("转移过账").Opened Then
    For Each r As Row In Tables("转移过账_上传预览table1").Rows
        If r.IsNull("移动数量") = False Then
            r.Checked = True
        ElseIf r.IsNull("移动数量") OrElse r("移动数量") Is Nothing Then
            r.Checked = False
        End If
    Next
End If

 

BeforeCheckRow事件中,写了如果数量行为空,那么撤销操作,

If e.Row.IsNull("移动数量") Then
    e.Cancel = True
End If

 

[此贴子已经被作者于2015/12/29 16:38:32编辑过]

--  作者:大红袍
--  发布时间:2015/12/29 16:41:00
--  

If e.DataCol.name = "移动数量" AndAlso Forms("转移过账").Opened Then
    systemready = False
    For Each r As Row In Tables("转移过账_上传预览table1").Rows
        If r.IsNull("移动数量") = False Then
            r.Checked = True
        ElseIf r.IsNull("移动数量") OrElse r("移动数量") Is Nothing Then
            r.Checked = False
        End If
    Next
    systemready = True
End If


--  作者:文道古月
--  发布时间:2015/12/29 16:48:00
--  

厉害!

 

OK!

 

谢谢!

[此贴子已经被作者于2015/12/29 16:48:27编辑过]