以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]窗口保存前空值字段检查  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=50559)

--  作者:Gryvip
--  发布时间:2014/5/9 0:56:00
--  [求助]窗口保存前空值字段检查
这个功能在使用窗口时基本都要用到的,请官方关注,放上一段精简及通用的代码,谢谢。

For Each c As WinForm.Control In e.Form.Controls \'遍历窗口控件
    \'判断指定的两种类型控件的内容是否为空
    If c.Gettype.Name = "TextBox" AndAlso e.Form.Controls(c.Name).Text = "" Or c.Gettype.Name = "ComboBox"  AndAlso e.Form.Controls(c.Name).Text = ""  Then       
        MessageBox.Show("[" + c.Name + "]" + "不能为空,请输入","提示") \'提示为空的控件名称(建议在控件属性处将控件名称改为提示名称,这样提示会更直观)
        e.Form.Controls(c.Name).Select() \'定位到该控件输入框内
        Exit For         
    End If
Next

以上是我在论坛抄来的代码,可以使用,但是以下两句代码不知道放在那个位置合适,请大神们帮忙,谢谢
\'如果指定控件内容不为空,则执行锁定及保存或其他指定代码
Tables("材料信息").AllowEdit = False \'锁定表
Tables("材料信息").Current.Save() \'保存指定表当前行数据

--  作者:Bin
--  发布时间:2014/5/9 8:43:00
--  
dim isdo as boolean = true
For Each c As WinForm.Control In e.Form.Controls \'遍历窗口控件
    \'判断指定的两种类型控件的内容是否为空
    If c.Gettype.Name = "TextBox" AndAlso e.Form.Controls(c.Name).Text = "" Or c.Gettype.Name = "ComboBox"  AndAlso e.Form.Controls(c.Name).Text = ""  Then       
        MessageBox.Show("[" + c.Name + "]" + "不能为空,请输入","提示") \'提示为空的控件名称(建议在控件属性处将控件名称改为提示名称,这样提示会更直观)
        e.Form.Controls(c.Name).Select() \'定位到该控件输入框内
        isdo=false
        Exit For         
    End If
Next
if isdo then
   Tables("材料信息").AllowEdit = False \'锁定表
Tables("材料信息").Current.Save() \'保存指定表当前行数据
end if

--  作者:Gryvip
--  发布时间:2014/5/9 9:13:00
--  
Bin版主,早上好,谢谢你的关注及解答,论坛有你更精彩。