如果不输入字段,如何触发该字段的itenchanged事件?

tomorrower 2002-09-05 07:12:55
我碰到一个问题:
我在用数据窗口录入货物信息,其中有邮件资费和保价费,总费用由前面两项想加得到,我的实现方法:
在dw_1的itemchanged事件中编写代码,当移开保价费单元格(bjf)时,将强两项的值取出来想加,写到总费用里面。以下是我的代码:
ls_name=trim(string(dwo.name))
dec Ld_mailfee,ld_mail_value,ld_total_price
if ls_name= "bjf" then //自动计算客户需要支付总费用
Ld_mailfee=dw_1.getitemnumber(row,"zf") //取出资费
ld_mail_value=dw_1.getitemnumber(row,"bjf") //取出保价费
if isnull(ld_mail_value) or ld_mail_value=0 then
ld_mail_value = 0
dw_1.setitem(row,"bjf",0)
end if
ld_total_price=Ld_mailfee + ld_mail_value //想加
dw_1.setitem(row,"all_cost",ld_total_price) //写回去
以上代码在运行的时候,如果保价费输入数据,既不等于零,程序没有问题,如果不输入数据,即回车跳过去,(我已经设置了tab键转回车键),那么以上代码根本不会执行,即使我在保价费字段设置了初始值零也
无效,你能帮忙解决吗?急!
叶新兵
...全文
27 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tomorrower 2002-09-08
  • 打赏
  • 举报
回复
谢谢各位大师的热情帮助,我学到不少东西,再一次感谢!

moweihua 2002-09-06
  • 打赏
  • 举报
回复
objectname.TriggerEvent ( trigevent event {, long word, long long } )
在你想触发的地方写以下代码:
TriggerEvent( dw_1, "itemchanged" )
moweihua 2002-09-06
  • 打赏
  • 举报
回复
在你想运行事件的地方写以下代码:
objectname.TriggerEvent ( trigevent event {, long word, long long } )
例如:TriggerEvent( dw_1, "itemchanged" )
warchild 2002-09-06
  • 打赏
  • 举报
回复
强烈建议用compute域,少写代码
xiaoxuw 2002-09-06
  • 打赏
  • 举报
回复
另写一个按钮,保存即可!
奇遇 2002-09-06
  • 打赏
  • 举报
回复
这问题通常是用计算域的,在数据窗口中建cost_all计算域,表达式为
if(isnull(zf),0,zf)+if(isnull(bjf),0,bjf)

用程序控制实在不是明智之举,因为用你的程序中的事件,很多情况不
触发的,仅用itemfocusechaged控制也难实现,因为用户可以使用鼠标
随时移走焦点,从而不触发这事件,还要用lostfocus协同控制的,这是
我想到的,可能还有别的问题的,何苦呢? ^_^

用 morningdew(晓峰) 说的在保存按钮里写代码,是可以实现数据的保存
正确,但无法实时计算更新显示,好像意义就不大了。

另上面你的程序有点小毛病的
if isnull(ld_mail_value) or ld_mail_value=0 then
---------
没有必要吧
ld_mail_value = 0
dw_1.setitem(row,"bjf",0)
end if

简化为:
if isnull(ld_mail_value) then
ld_mail_value = 0
dw_1.setitem(row,"bjf",0)
end if
morningdew 2002-09-05
  • 打赏
  • 举报
回复
建议你写在保存按钮里。。。。。那样就一点问题也没有了。。。

或者做一个计算域字段。。。直接计算。。。

然后再向总费用字段赋值。。。。
tz_529 2002-09-05
  • 打赏
  • 举报
回复
如果是TAB转回车的话,在UE_ENTER事件中一样。
可以代替ITEMFOCUSCHANGED的!
也容易看清楚!
不过最好是在UPDATE前进行检测,比较好点!

ice2water 2002-09-05
  • 打赏
  • 举报
回复
我也碰到过,试试楼上的办法
juwuyi 2002-09-05
  • 打赏
  • 举报
回复
应该是itemfocuschanged
juwuyi 2002-09-05
  • 打赏
  • 举报
回复
写在itemrosfocuschanged事件里。

1,072

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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