pb 数据窗口的验证

化石 2011-12-15 05:17:02
求一个数据窗口的某一个字段不为空和电话的验证的示例,要有光标移开就要有提示!谢谢!
...全文
327 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
化石 2011-12-27
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 smilysoft 的回复:]

引用 8 楼 yyoinge 的回复:


在数据窗口设计界面的Column Specification 面板中,找到需要设置不能为空的列,
然后在该列的Validation Expression中写:gettext() <> ''
在该列的Validation Message中写:'该字段不能为空!'
引用 9 楼 yyoinge 的回复:

在itemfocuschanged……
[/Quote]


现在的验证出了一些问题,就是在光标失去焦点时只弹了一个验证框,但点击新增按钮或保存按钮时弹出了两个验证框,怎么解决掉啊
yyoinge 2011-12-16
  • 打赏
  • 举报
回复
PB菜鸟 2011-12-16
  • 打赏
  • 举报
回复
http://hi.csdn.net/attachment/201112/5/167635_1323062198B31E.jpg[
img=http://hi.csdn.net/attachment/201112/5/167635_1323062198B31E.jpg][/img]
PB菜鸟 2011-12-16
  • 打赏
  • 举报
回复
引用 8 楼 yyoinge 的回复:


在数据窗口设计界面的Column Specification 面板中,找到需要设置不能为空的列,
然后在该列的Validation Expression中写:gettext() <> ''
在该列的Validation Message中写:'该字段不能为空!'
[Quote=引用 9 楼 yyoinge 的回复:]

在itemfocuschanged事件中加上
if gettext() = '' then settext('')
[/Quote]

yyoinge 8楼和9楼 的方法都可以的。
8楼方法请参考下图位置加入8楼的判断。

化石 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yyoinge 的回复:]

在数据窗口设计界面的Column Specification 面板中,找到需要设置不能为空的列,
然后在该列的Validation Expression中写:gettext() <> ''
在该列的Validation Message中写:'该字段不能为空!'
[/Quote]

找不到啊,能不能详细点啊!谢谢!
yyoinge 2011-12-16
  • 打赏
  • 举报
回复
在itemfocuschanged事件中加上
if gettext() = '' then settext('')
yyoinge 2011-12-16
  • 打赏
  • 举报
回复
在数据窗口设计界面的Column Specification 面板中,找到需要设置不能为空的列,
然后在该列的Validation Expression中写:gettext() <> ''
在该列的Validation Message中写:'该字段不能为空!'
化石 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xuam 的回复:]

if dwo.name = '不能为空的字段的字段名' then
'不能为空的字段的字段名' 就是你的字段名.
[/Quote]

我知道啊 可是我在里面写了然后光标已开,在把里面写的东西删了,就会触发不能为空,可我要的是我tab键经过时,不写东西就会提示不能为空,谢谢!
化石 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yyoinge 的回复:]

C/C++ code
在dw的itemchanged事件中写:
if isnull(dwo) or row < 1 then return
if dwo.name = '不能为空的字段的字段名' then
if data = '' then
messagebox('提示', '字段不能为空!')
return
end if
elseif dwo.……
[/Quote]

为什么我的光标经过没有写东西,就不触发这个事件啊,里面写的都没执行啊!是怎么回事啊!
我是想鼠标点上去,没有写东西就已开了就触发他不能为空,谢谢!
xuam 2011-12-16
  • 打赏
  • 举报
回复
if dwo.name = '不能为空的字段的字段名' then
'不能为空的字段的字段名' 就是你的字段名.
化石 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhangtong136 的回复:]

要求鼠标移开就会出现提示,谢谢
[/Quote]

为什么我都没有触发这个事件啊,里面写的都没执行啊!是怎么回事啊
化石 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 yyoinge 的回复:]

[/Quote]

首先,谢谢你,那个不为空已经解决了。
可以的话,告诉一下那个电话格式验证怎么弄呢?
yyoinge 2011-12-15
  • 打赏
  • 举报
回复
boolean f_is_telnum(string as) 可以这么写:
int li
li = pos(as, '-')
if li <> lastpos(as, '-') then return false //包含1个以上的- ,则有误
if li > 0 then as = left(as, li - 1) + mid(as, li + 1) //去换-
if not isnumber(as) then return false //包含数字以外的字符,则有误
if len(as) > 12 then return false //长度过长,则有误
choose case left(as, 1)
case '1' //手机
case '0' //固化
case else
return false //错误
end choose
return true
yyoinge 2011-12-15
  • 打赏
  • 举报
回复
在dw的itemchanged事件中写:
if isnull(dwo) or row < 1 then return
if dwo.name = '不能为空的字段的字段名' then
if data = '' then
messagebox('提示', '字段不能为空!')
return
end if
elseif dwo.name = '电话字段' then
//电话号码只能包括数字和-,固话以0开始,手机以1开始
if not f_is_telnum(data) then
messagebox('提示', '电话号码格式不正确')
end if
end if
化石 2011-12-15
  • 打赏
  • 举报
回复
要求鼠标移开就会出现提示,谢谢
内容概要:本文围绕“单相逆变器闭环逆变电路PWM模型仿真研究”展开,基于Simulink平台构建单相逆变器的闭环控制系统仿真模型,重点研究PWM调制技术在逆变电路中的应用与实现。文中详细阐述了系统架构设计、电压电流双闭环控制策略的实现原理、控制器参数设计及仿真建模全过程,并通过仿真结果验证了控制方案在动态响应、稳态精度与系统稳定性方面的有效性。同时,文档还涵盖多种电力电子系统典型应用场景,如多类型短路故障仿真(中性点不接地、经小电阻接地、经消弧线圈接地等)、软开关技术、微电网能量管理、MPPT控制等,体现出较强的技术综合性和工程实践价值。; 适合人群:电气工程、自动化、电力电子与新能源等相关专业的高校本科生、研究生、科研人员,以及从事电力系统仿真、逆变器设计与新能源并网技术研发的工程技术人员。; 使用场景及目标:①掌握基于Simulink的单相逆变器闭环控制系统建模与PWM仿真方法;②深入理解双闭环控制、SPWM/SVPWM调制、系统稳定性分析等核心技术原理;③为课程设计、毕业设计、科研项目或实际工程开发提供可复用的仿真模型与技术支持; 阅读建议:建议结合文中仿真模型动手实践,重点掌握PI控制器参数整定、PWM信号生成机制与仿真结果分析方法,同时可延伸学习文档中涉及的软开关、故障仿真、微电网控制等关联技术,以拓展系统级设计能力。

611

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧