以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [分享] 一次性判断窗口文本框、表字段是否输入内容,并进行提示,只有参数齐全才允许下一步操作的方法!  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2408)

--  作者:程兴刚
--  发布时间:2009/4/12 13:16:00
--  [分享] 一次性判断窗口文本框、表字段是否输入内容,并进行提示,只有参数齐全才允许下一步操作的方法!
这是我的钢筋翻样的提料按钮的部分代码,窗口控件是根据钢筋代码动态生成,最多个数及名称是代码中体现的,最少一个,列字段也一样,都是动态判断。

主要功能见标题:


Dim Multi As String = "A|B|C|D|E|F|G|H|JD1|JD2"
Dim Values() as String
Values = Multi.split("|")
For Index As Integer = 0 To Values.Length - 1
   if e.Form.ExistControl(Values(Index))  = true
         if e.Form.Controls(Values(Index)).Value = nothing
            MessageBox.Show("对不起,您输入的参数不全,请为本钢筋录入" & Values(Index) & "参数后再提料!", "提示")
            Return
         else
            Tables("明细数据").Current(Values(Index)) = e.Form.Controls(Values(Index)).Value
         end if
   else
       Tables("明细数据").Current(Values(Index)) = nothing
   end if
Next
e.Form.Controls("计算规则").Value = dr("下料长度计算规则")
Multi = "施工部位|构件名称|钢筋编号|钢号|直径|间距|构件根数|构件数"
Values = Multi.split("|")
For Index As Integer = 0 To Values.Length - 1
    if e.Form.Controls(Values(Index)).Value = nothing
       MessageBox.Show("您还没有输入" & Values(Index) & ",请您先输入" & Values(Index) & "再提料!", "提示")
       Return
    else
       Tables("明细数据").Current(Values(Index)) = e.Form.Controls(Values(Index)).Value
    end if
Next

--  作者:yangming
--  发布时间:2009/4/12 13:23:00
--  
先收藏再研究,谢谢程版分享!呵呵
--  作者:kylin
--  发布时间:2009/4/12 14:35:00
--  

谢谢!


--  作者:程兴刚
--  发布时间:2009/4/12 15:15:00
--  
配合这个帖子看相对明了一些,帖子中上传了界面部分截图:

  http://www.foxtable.com/dispbbs.asp?boardid=2&id=2409&page=1&star=1


     再提示一下,利用动态管理控件功能,可以做到一个窗口N种用途,重复利用窗口次数没有上限,不需要设计多个窗口

       本系统目前仅单筋翻样10种类型的钢筋(按折弯数分类),多达几百种,不同的参数填写要求,目前仅采用了一个窗口,利用10个按钮代替多层面板,还省却了好几百个绘图板和一个多层面板(仅用一个面板为容器,容纳70个绘图板——单种类型钢筋最多不足70个)。

       这是一个程序规划问题的延伸,与大家共同分享,以加快大家学习狐表的步伐!(王婆卖瓜,大家别见笑!)
[此贴子已经被作者于2009-4-12 16:00:36编辑过]

--  作者:gdlgh
--  发布时间:2009/4/12 15:18:00
--  
顶了!
--  作者:czy
--  发布时间:2009/4/12 20:49:00
--  

学习。