以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关闭窗口前执行的代码。。。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=47427)

--  作者:fubblyc
--  发布时间:2014/3/10 12:29:00
--  关闭窗口前执行的代码。。。
各位老师好:

点击窗口右上角的关闭后,要是在一个表{表}里的几列内容为空,如[列1]、[列2]内容为空,则弹出提示框:[列1]、[列2]内容为空,请填写完整。点击提示框的确定后不关闭窗口,而是进入编辑。直到内容都填完整,才能关闭。

能实现吗?

我用窗口的 before close 写了如下代码没有实现,不知道怎么写。。

For Each dr As DataRow In DataTables("表1").DataRows
    If dr.IsNull("列1")  OrElse dr.IsNull("列2")  Then
        MessageBox.Show("错误,请输入完整的内容!")
        e.Cancel = True
    End If
Next

有提示框,但是点击确定后又马上跳出来,都没时间去填写完整内容。。。。


--  作者:xiaofengfeng
--  发布时间:2014/3/10 12:33:00
--  
不要用for each
--  作者:狐狸爸爸
--  发布时间:2014/3/10 12:34:00
--  
For Each dr As DataRow In DataTables("表1").DataRows
    If dr.IsNull("列1")  OrElse dr.IsNull("列2")  Then
        MessageBox.Show("错误,请输入完整的内容!")
        e.Cancel = True
        exit for
    End If
Next

--  作者:fubblyc
--  发布时间:2014/3/10 13:19:00
--  
完美解决,谢谢xiaofengfeng 和狐爸。
--  作者:lsy
--  发布时间:2014/3/10 14:06:00
--  
If DataTables("表1").Compute("Count(列1)","列1 Is Not Null") < DataTables("表1").DataRows.Count _
    OrElse DataTables("表1").Compute("Count(列2)","列2 Is Not Null") < DataTables("表1").DataRows.Count Then
    MessageBox.Show("列1和列2不能有空值")
    e.Cancel = True
End If
[此贴子已经被作者于2014-3-10 14:07:37编辑过]

--  作者:fubblyc
--  发布时间:2014/3/10 14:45:00
--  
哦,谢谢lsy 老师!