简单实用典型录入窗口设计总结
(深圳华软联动科技)
窗口界面:新增加行按钮 2015-9-18
此主题相关图片如下:1458.png
窗口全部事件说明
AfterLoad 事件
Dim bt1 As WinForm.Button = e.Form.Controls("QX.add")
bt1.PerformClick
Dim tb As Table = e.Form.Controls("Table1").Table
ColMustNames ="产品名称,产品规格,单位,采购类型,一级分类"
For Each ColBackName As String In ColMustNames.Split(",") ‘变色
tb.SetHeaderCellForeColor(ColBackName,Color.red)
Next
Dim LBLtishi As WinForm.Label = e.Form.Controls("LBLtishi")
LBLtishi.Text="标记为红色的字段【" & ColMustNames & "】为必填字段." ’提醒
新增加行按钮 可任意新增多行。 方便用户所见即所得,直接操作录入数据的习惯。但使用前提是有自动删除无效行的功能。
Dim hs As WinForm.NumericComboBox = e.Form.Controls("NumericComboBox1")
DataTables("物品管理").StopRedraw
Tables("物品管理").addnew(hs.text)
DataTables("物品管理").ResumeRedraw
保存按钮 保存删除多余空行,进行必填写校验和拦截,符合条件才保存。
Dim tb As Table = e.Form.Controls("Table1").Table
Functions.Execute("必填删除",tb.name,ColMustNames)
Functions.Execute("必填校验",tb.name,ColMustNames,2,1) '(1为主表 2为明细表),(1保存,0不保存)
取消按钮:
e.Form.close
BeforeClose 事件 能对有修改的情况进行提示,如果保存需要对数据进行校验,如果有不符合要求的数据行,则中止窗口关闭动作,返回问题行,让用户完善。
结果是要么不保存,要么数据符合地求,全部保存,不存在其它变数。
Functions.Execute("关闭前校验",e,"物品管理","","QX.sav") '主表在前,明细表在后,明细表可以空只传一个参数,QX.sav为要执行的按钮(保存)的名称
窗口总结:
一,窗口加载事件里设置 必填字段串 ColMustNames,窗口即有提示。保存时自动对该字段列进行必填写校验,有未填写时,系统自动给出提示,哪一行,哪一些字段未填写,并自动将光标置为不符合要求的第一行。有不符合要求的行在就不会保存,否则才保存。对于关键必填字段均为空的行就自动删除。
二、窗口打开时,即自动新增10个空行,用户 可以直接填写内容。方便用户操作。(前提是有函数在保存时自动删除空行)。
三、直接关闭窗口时可检查数据是否有修改。没修改 直接关闭。有修改则提示用户是否要保存
用户选择保存,则模拟单击保存按钮。如果数据均符合要求,则自动保存,否则取消保存,光标定位到不符合要求的行。如果不保存则退出取消表修改。
(一,初填写时自动建立多行。二,保存时,自动删除绝对的无效行。三,保存时,自动校验必填项目。四,直接关闭时,进行保存提醒。五,必填项目变更后,只需要改一个地方就行。六,自动提示,自动标注必填项目颜色)
技巧和难点:
数据校验分主表,明细表有细小差别,通过参数控制。
数据校验有的要保存有的不要保存只作校验,通过参数控制。
关闭事件不再写保存代码,直接调用保存按钮就行,可传递按钮参数。
自动根据必填字段设置提示,设置必填写字段,列名为红色或者其它颜色。
本例用到三个函数,设计调试花费一天时间。
Functions.Execute("必填删除",tb.name,ColMustNames)
Functions.Execute("必填校验",tb.name,ColMustNames,2,1) '(1为主表 2为明细表),(1保存,0不保存)
Functions.Execute("关闭前校验",e,"物品管理","","QX.sav") '主表在前,明细表在后,明细表可以空只传一个参数,要执行的按钮的名称
[此贴子已经被作者于2015/9/18 14:46:32编辑过]