怎样改变itemchanged触发条件!

emeiwxx 2010-03-14 01:57:33
各位大虾,我在itemchanged事件编辑了以下代码:
dec si, fe, al, ca, kh, sm, im
si=dw_2.object.sio2[dw_2.getrow()]
al=dw_2.object.al2o3[dw_2.getrow()]
fe=dw_2.object.fe2o3[dw_2.getrow()]
ca=dw_2.object.cao[dw_2.getrow()]
kh=ca/2.8/si -1.65*al/2.8/si -0.35*fe/2.8/si
sm=si/(al+fe)
im=al/fe
kh=round(kh,3)
sm=round(sm,2)
im=round(im,2)
dw_2.object.kh[dw_2.getrow()]=kh
dw_2.object.sm[dw_2.getrow()]=sm
dw_2.object.im[dw_2.getrow()]=im
每次输入数据后,焦点必须转到kh列才能触发,并且kh列的自动计算总是显示为空,需要重新修改一下其他列的数据改变焦点后才能计算,请大家帮忙看一下,能够做到数据四个变量的数据录入完成其他三个变量自动计算
谢谢
...全文
171 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yufuhang3 2010-03-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 pb8 的回复:]
有两种方法:
方法一:在itemchanged里面首先写上this.accepttext()
方法二:代码写到editchanged事件中;
[/Quote]
不错的方法 学习了
yufuhang3 2010-03-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 pb8 的回复:]
有两种方法:
方法一:在itemchanged里面首先写上this.accepttext()
方法二:代码写到editchanged事件中;
[/Quote]
不错的方法 学习了
永生天地 2010-03-15
  • 打赏
  • 举报
回复
itemchanged里有个data参数,使用这个就好了
emeiwxx 2010-03-14
  • 打赏
  • 举报
回复
谢谢我试一下
952 2010-03-14
  • 打赏
  • 举报
回复
不知用post setitem(row,col,value)行不我沒有試
fox_ygz 2010-03-14
  • 打赏
  • 举报
回复
将 kh 的 TAB 值设为 0,就变为只显示而跳过输入。另在datawindow中 kh 的定义有误,因计算域和计算列是有区别的。两者一个更新,一个不更新。
swallowluo 2010-03-14
  • 打赏
  • 举报
回复
你可以在数据窗口中建立一个自定义事件(例如:ue_afterItemChanged),然后把上面的代码都写到这个事件中,并在代码的最前面加上this.AcceptText()
然后,在itemchanged事件中使用this.post event ue_afterItemChanged()触发该事件应该就可以了。
pb8 2010-03-14
  • 打赏
  • 举报
回复
有两种方法:
方法一:在itemchanged里面首先写上this.accepttext()
方法二:代码写到editchanged事件中;

609

社区成员

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

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