以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 简单实用典型录入窗口设计总结 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=74768) |
-- 作者:santde -- 发布时间:2015/9/18 14:39:00 -- 简单实用典型录入窗口设计总结
简单实用典型录入窗口设计总结 (深圳华软联动科技) 窗口界面:新增加行按钮 2015-9-18
窗口全部事件说明
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编辑过]
|
-- 作者:大红袍 -- 发布时间:2015/9/19 10:25:00 -- 呃,例子呢 |