回车事件中的空值检查问题!!

ravehe 2002-10-26 09:27:52
我在数据窗口的“pbm_dwnprocessenter”事件定义如下:

string ls_temp
long ll_column_count
long ll_column
ll_column_count =long(this.Describe("dw_1.Column.Count"))
ll_column = this.GetColumn()
if ll_column = ll_column_count then
return
//////////问题出现地方
else
ls_temp=this.getitemstring(this.getrow(),ll_column)
/////
if IsNull(ls_temp) THEN
MessageBox("该项不能够为为空","请重新输入!")
this.SetColumn(ll_column)
else
this.SetColumn(ll_column+1)
end if
end if

我想在回车输入每个值得后进行空值的检查,如果是空值的话要求重新输入,但是为什么无论输入是否是空值,MessageBox("该项不能够为为空","请重新输入!")都出现,
是程序的哪个部分出现了问题?同时,如果值是输入后再修改了,如何对该值进行空值的检查,如果是空值的话要求重新输入??
...全文
40 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
toutou 2002-12-01
  • 打赏
  • 举报
回复
对,先加 dw_1.accepttext()
wgy2008 2002-11-06
  • 打赏
  • 举报
回复
加 dw_1.accepttext()
joss 2002-11-05
  • 打赏
  • 举报
回复
对于这类错误判断,最好还是在itemchanged事件中处理,
也可以在itemerror事件中处理
ravehe 2002-11-03
  • 打赏
  • 举报
回复
问题是应该如何取值?数据窗口的数据项的数据类型不一定是一致的啊?如果有Char,datetime,float等,如何解决??
cooltnt 2002-11-03
  • 打赏
  • 举报
回复
我个人认为判断应这样写
if isnull(ls_temp) or ls_temp="" then
MessageBox("该项不能够为为空","请重新输入!")
end if
txchen 2002-11-02
  • 打赏
  • 举报
回复
先dw_1.accepttext()
booksfount 2002-11-01
  • 打赏
  • 举报
回复
你只要设置子段属性为required属性,系统就会自动监测,不用写一大段代码,如果结合好FindRequired函数一起使用,效果更好,你查询一下这个函数,帮助里有详细的例子(很通用,针对所有的数据窗口都可用)
bierhoff 2002-11-01
  • 打赏
  • 举报
回复
根据我自己的经验,用item的属性,出现bug的几率比较大,所以我一般不用这个。
我都是在提交的时候检验数值属性。
salivapig 2002-11-01
  • 打赏
  • 举报
回复
在itemfocuschanged里写
ls_bbb=this.getitemstring(this.getrow(),"bbb")
choose case this.getcolumnname()
case "bbb"
if trim(ls_bbb)="" or isnull(ls_bbb) then
messagebox("注意","无bbb请重新输入!")
this.setcolumn("bbb")
end if

end choose
bluewindw 2002-11-01
  • 打赏
  • 举报
回复
对,先到ItemChange事件里写空值
ravehe 2002-11-01
  • 打赏
  • 举报
回复
TO banalman(banalman)
如果是用itemchaged事件检验,当根本没有数据输入而按直接回车跳到下一列的输入时候,就检查不出输入是空值的!不知道还有没有什么其他的办法进行空值的检查???
licena 2002-10-27
  • 打赏
  • 举报
回复
赞同banalman(banalman)
最好用itemchaged事件检验
morningdew 2002-10-27
  • 打赏
  • 举报
回复
gz
banalman 2002-10-27
  • 打赏
  • 举报
回复
建议不要采用这种检验方法,因为这时数据还没进入缓冲区。(acceptext())
一般是在itemchaged 事件中 根据不同的列进行检验
  例如:
    choose case dwo.name
case "ddd"
if isnull(data) then messagebox("","dd不允为空")
        case ""
case else
end choose
ice2water 2002-10-27
  • 打赏
  • 举报
回复
up
bomber2001 2002-10-26
  • 打赏
  • 举报
回复
在程序的前面加上
dw_1.accepttext()

看看
    &\\|//&
   \\ - - //
   ( @&@ )
┏━oOOo-(_)-oOOo━━━━━━━━━┓
┃我本天煞孤星           ┃
┃ 注定一生孤独       ┃
┃  oooO             ┃
┗━(  )-━Oooo ━━━━━━━━━┛
   \ (  (  )
   \_)  ) /
      (_/

611

社区成员

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

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