以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  简单实用典型录入窗口设计总结  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=74768)

--  作者:santde
--  发布时间:2015/9/18 14:39:00
--  简单实用典型录入窗口设计总结
 

 

简单实用典型录入窗口设计总结

(深圳华软联动科技)

窗口界面:新增加行按钮  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编辑过]

--  作者:大红袍
--  发布时间:2015/9/19 10:25:00
--  
呃,例子呢