怎样在itemchange事件里判别数值是否改变?急用!谢谢!

iamzyj 2002-05-14 05:27:42
oldtext为原值,newtext为改后的值
在itemchange事件里写的:
if dwo.name='字段名' then
newtext=this.gettext()
oldtext=this.getitemstring(row,'字段名')
if newtext=oldtext then
return
else
做相应程序
end if
end if
原意思是想判别值是否改变,可实际结果是newtext,oldtext总是相同,
应怎样写脚本?

...全文
140 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
newbiegao 2002-05-17
  • 打赏
  • 举报
回复
哦!删除了的记录是没有以上4个状态的!他们被放到DELETE区域了.你可以象这样来访问被删除的记录:
String ls_delete

ls_delete = dw_1.Object.columnName.Delect.[row]


iamzyj 2002-05-14
  • 打赏
  • 举报
回复
谢谢各位的解答,以上的方法应该都是有效的,可
oldtext = dw_1.Object.columnName[row]
newtext = data 这种不知为什么在我的程序中不生效,
我用了小菜的
ls_old = dw_1.Object.columnname.primary.original[row]
ls_new = dw_1.Object.columnName.primary.current[row]
这种方法可行,不过在这里还要请教小菜一个问题,getitemstatus
这种用法,如果要是删除记录,那么删除的字段的状态是什么呢?
ouyi2002(林月如)你不必担心我会食言,我会守信的,只要愿意帮忙的朋友,
我都会给分的!谢谢大家!
ouyi2002 2002-05-14
  • 打赏
  • 举报
回复
你的那段代码也只能写在editchanged事件中,而不能写在itemchange事件里,原因qdwangzh(wzh)已作解释。 并且修改前的值只能在itemfocuschanged()中取得。

如下:
(1):数据窗口的itemfocuschanged()中
全局变量 string oldtext
if this.GetColumnName()='字段名' then
oldtext=this.gettext()
end if

(2)数据窗口的editchanged()事件
dw_1.accepttext()
if this.GetColumnName()='字段名' then
if oldtext=this.getitemstring(dw_1.getrow(),"字段名") then
处理方法
end if
end if


解决给分,人要言而有信。
newbiegao 2002-05-14
  • 打赏
  • 举报
回复
dwItemStatus l_status // 是列的状态

l_status = dw_1.GetItemStatus(5, "columnName" , Primary!, true)

在判断: l_status 的值就可以了(new! , notModified! , newModified! , DataModified!)
newbiegao 2002-05-14
  • 打赏
  • 举报
回复
dwcontrol.Object.columnname {.buffer } {.datasource } { [ rownum ] }

String ls_old , ls_new

ls_old = dw_1.Object.columnname.primary.original[row]
ls_new = dw_1.Object.columnName.primary.current[row]
or
ls_new = dw_1.Object.columnName[row]
ls_new = data

水煮蛙 2002-05-14
  • 打赏
  • 举报
回复
楼上说的对!
xiongxiao 2002-05-14
  • 打赏
  • 举报
回复
你不要用GETTEXT(),直接用这事件的参数DATA,即
NEWTEXT = DATA
lmby 2002-05-14
  • 打赏
  • 举报
回复
dw_name.object.column[ row ]或gettiem()取的是老值。
data是新值。

if dwo.name = column then

ls_old = string( dw_name.object.column[ row ] )
ls_new = data

if ls_old = ls_new then
//
else
//
end if
end if

qdwangzh 2002-05-14
  • 打赏
  • 举报
回复
一旦itemchanged被触发,其值必然发生了改变,不必判断

1,109

社区成员

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

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