怎样恢复一个数据窗口(有时是某行)内修改过的数据?不知有没有人会?

shengdesan 2004-07-27 12:29:32
经常碰到这种情况,当有几个记录(当前屏幕只显示一条记录)时,当前的记录已经修改,当用户需要查看其他记录时,系统要提示“是否保存”当前数据,当用户选择“否”时,下次用户再次滚到改记录,怎样让当前记录恢复以前未修改的状态?(用的是freefrom型数据窗口,因为数据量很大,如果用retrieve()函数取所有数据然后再定位的话会很慢,“dwcontrol.SetItemStatus ( row, column, dwbuffer, status )”也实现不了)
...全文
129 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
鸡翅多 2004-07-28
  • 打赏
  • 举报
回复
学习!
kirao 2004-07-28
  • 打赏
  • 举报
回复
dw.GetItem* ( long row, string column {, DWBuffer
dwbuffer, boolean originalvalue } )

originalvalue = True 時 Returns the original values (the values initially retrieved from the database).

不知道你用getitem時有沒有按上面的做!要得到原來的值才可
shengdesan 2004-07-27
  • 打赏
  • 举报
回复
不行啊
shengdesan 2004-07-27
  • 打赏
  • 举报
回复
zhanwei(@_@,最近很忙):
不能一次性取得整行的所有值吗,按你的方式启不是要取值多次,然后再用SETITEMSTRING()赋值多次?
kirao 2004-07-27
  • 打赏
  • 举报
回复

可能有兩個辦法
1:retrieve()樓主覺得會很慢。
2:重新設定某行的ItemStatus的值,要達到樓主的目的,如果user按no後
判定那列是datamodified的如是用getitem()按上面的意思可以取出原來
值,並setitem進出,且修改ItemStatus的值(重新set原來的值時不知道
itemstatus是否又變回來)
10975037 2004-07-27
  • 打赏
  • 举报
回复
学习呀
amekoxiao 2004-07-27
  • 打赏
  • 举报
回复
同意zhanwei(@_@,最近很忙)
zhanwei 2004-07-27
  • 打赏
  • 举报
回复
不知道楼主注意到没有:dw.GetItem* ( long row, string column {, DWBuffer
dwbuffer, boolean originalvalue } )函数中最后一个参数boolean originalvalue,可以使你无论在何时(只要没有提交修改),都可以把 该列的originalvalue数据取出来.那么楼主的问题除了会麻烦一点以外,没有什么问题了.

如果单纯是不想提交的话,直接.ResetUpdate()即可

1,075

社区成员

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

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