在ITemChanged事件中对数据窗口中的数据进行校验

作者:达通兴电脑科技公司(www.study01job.com) 郭宝利

对用户录入的数据进行校验,这是数据窗口控件本身就具备的功能。但是,我们希望做更多的处理,并且错误信息显示界面更友好一些。为此,我们编写一个全局函数,在数据窗口的ItemChanged事件中调用,并且使用MessageBox显示该函数返回的错误信息。另外,还需要在数据窗口的ItemError事件中return 1来阻止数据窗口本身的错误提示窗口的显示。

当然,对下面的函数进行扩充,可以加入对更多类型数据的校验,以及基于业务要求的数据校验。

///*--------------------------------------------------------------------------------
// * 函数名称:f_datawindow_itemerror(as_name,as_type,as_text,as_data)
// * 函数作用:检测名称为as_name、类型为as_type的字段输入数据是否合法。该字段的
// *标签对应为as_text、输入的数据为as_data。
// *-------------------------------------------------------------------------------*/
string ls_msg

ls_msg=''
as_type=upper(as_type)

choose case as_type
case 'DECI','NUMB'
if not IsNumber(as_data) then
ls_msg=as_text+'应输入数字型数据!'
end if
case 'DATE','DATETIME'
if integer(left(as_data,4)) < 1901 or integer(left(as_data,4)) > 2999 then
if as_text = '!' or as_text = '!' then
ls_msg ='年份应该在1901到2999之间!'
else
ls_msg ='"' + as_text + '"的年份应该在1901到2999之间!'
end if
if gi_flag =0 then
gi_flag = 1
else
gi_flag =0
return ""
end if
end if
end choose

return ls_msg

时间: 2025-01-02 09:40:16

在ITemChanged事件中对数据窗口中的数据进行校验的相关文章

在PowerScript脚本中访问数据窗口中的数据

访问|脚本|数据 在PowerScript脚本中访问数据窗口中的数据张健姿 01-6-22 下午 03:50:25 在4.0 以 前 的 版 本, 如 果 您 想 在PowerScript 脚 本 中 访 问数 据 窗 口 中 的 数 据, 方 法 只 有 一 种, 那 就 是 使 用SetItem 和GetItem 系 列 的 函 数, 指 定 您 所 要 访 问 的 某 一 行 列 的 值, 这 一 方 法的 局 限 性 在 于 您 一 次 只 能 访 问 到 一 个 数 值. 而 在5.0

在数据窗口中检索数据

数据 在数据窗口中检索数据 我们往往需要数据窗口仅显示我们需要的数据.在数据窗口中检索数据的方法很多,常用的是设置SetFilter和使用SQL语句来实现. 1.使用SetFilter进行数据过滤 首先需要构造条件语句.如数据窗口中有一列名为xyh,我们需要检索xyh等于"叶秋枫"的数据.那么可写语句如下: string bl;bl="xyh='叶秋枫'";dw_1.setfilter(bl)//数据窗口的名为dw_1dw_1.retrieve()//重新检索数据

pb-PB的数据窗口中怎样选中一列?

问题描述 PB的数据窗口中怎样选中一列? 我做的是一个图书馆信息管理系统,我想在数据窗口中把读者信息中的"在校"的一列都变成"毕业" 的字样,这怎么实现啊! 解决方案 用sql语句,直接指定列名就可以了. 解决方案二: [PB]-数据窗口其他PB数据窗口中多行选中程序PB 数据窗口对象

母窗口-QT中怎么在一个窗口中获得另一个窗口的指针?

问题描述 QT中怎么在一个窗口中获得另一个窗口的指针? 我用Widget作为母窗口,在其主函数中用信号槽建立了一个Dialog的窗口,那么这个Dialog窗口是不是Widget的子窗口呢?如果是的话,我想通过信号槽在Dialog中调用Widget中的数据,这样的话Widget母窗口应该是SIGNAL信号,在信号槽函数中需要使用它的指针.我在建立Dialog窗口的时候用new Dialog(this)将主函数指针传递给子函数,在子函数函数体的信号槽中槽函数写的parentWidget () 获得母

数据窗口中按字段的显示值排序

排序|数据|显示 一个数据窗口中有字段 :人员编码,现在用ddw的方法把它显示为人员的姓名.问题是怎么在排序的时候是按姓名排序而不是按编码排序. pb的帮助中Syntax for sort order中说明setsort有两种排序的语法:  columnname order          eg.  "emp_lname A"     "emp_lname A, dept_id D"  # columnnumber order   eg.  "#3 A&

javascript中获取浏览器窗口中可视区域

提示:您可以先修改部分代码再运行 如果你看到一个半透明的层,并且窗口中没有出现滚动条,说明示例运行正常. 点击可以关闭透明层. 提示:您可以先修改部分代码再运行

在数据窗口中进行行选择操作

数据        我 们 在 数 据窗 口 中 需 要 进 行 行 选择 操 作. 如 用 户 为 了 修 改 数 据 或看 到 更 详 细 的 内 容 而 选 择 了 某 一 行: 在 另 一 些 情 况下, 用 户 可 能 要同 时 删 除 或 修 改 多 行, 这 时, 我 们 需要 有 使 用 户 在 一 个 数 据 窗 口 中 同 时 选 择 多 行 的 功 能.这 在PowerBuilder 中 是 相 当 容 易 做 到 的, 但 是, 如 果 您 在 一个 数 据 窗 口 祖

请教怎么在类中调用主窗口中的控件?

问题描述 主窗体控件不是静态的,要通过对象调用,可是主窗体对象只在程序开始实例一个.那只能建个函数传过去了?好不舒服..有没有简洁点的方法啊?? 解决方案 解决方案二:别直接调用,可以通过委托或者方法去控制解决方案三:引用1楼bdmh的回复: 别直接调用,可以通过委托或者方法去控制 什么意思?能具体点嘛?解决方案四:其实你这个...我很无解,不管你怎么调..你都要获取这个对象才能调用吧?就算用委托,也要在主窗体先实例化一个拥有委托的对象吧?..没有对象..飞起来调==?..还是我能力有限...解

PB中数据窗口的精确页面打印技术

1.引言 自PowerBuild4.0问世以来,以其简洁高效的集成开发环境.强大的数据窗口技术.(几乎)无所不能的数据库访问能力,越来越受到编程人员的青睐.据Sybase自己的统计,目前全球有60万程序员和系统分析人员在使用他们的Powerbuilder和S-designer,进行各种类型的应用程序开发.最新发布的PowerBuilder6.0族系列开发工具,直接支持ActiveX技术.ServerPush技术,对分布式计算模型的定义更加明确,实现更为简便,并可以利用数据窗口直接生成HTML格式