当前位置: 代码迷 >> PB >> 如何取dw列最后一次修改值
  详细解决方案

如何取dw列最后一次修改值

热度:27   发布时间:2016-04-29 07:34:23.0
怎么取dw列最后一次修改值
怎么取dw列最后一次修改值:

前提是:数据修改次数不定,数据没有保存也没重新检索
(则直接取Original缓冲区没法取到)


有什么方式 可以做到吗?
------解决方案--------------------
当前显示的不就是最后一次修改的值吗???

如果取的不是当前编辑的列,则直接dw_1.getitem***

如果取得是当前编辑的列,取之前dw_1.accepttexxt(),再dw_1.getitem***
               或者  dw_1.gettext()
------解决方案--------------------
这问题。。。。。

是初始值还是?
直接getitemXXXX() 得到的不是最后一次修改的值吗?
------解决方案--------------------
声明实例变量string is_last_data
在dw的itemchanged事件中写:
is_last_data = object.datawindow.data

需要撤销时,直接importstring(is_last_data)

如果只是获取某个单元格本次修改之前的数据,则写:
datastore lds
lds = create datastore
lds.dataobject = dw_1.dataobject
lds.importstring(is_last_data)
lds.getitem***
------解决方案--------------------
如果要实现撤销功能的话,可以考虑用getfullstate() setfullstate()
------解决方案--------------------
原始值 是1 ,  打开后  改成 ,9 , 又改成 3 ,又 改成11   这些操作都是在没保存的情况下  ,如果要获取3  确实有点困难 。 

如果是你在itemchange中就发现11 不正确 ,想取消 , 你可以试试 undo 这个函数
------解决方案--------------------
楼主的这个问题,我曾经弄过,我当时在datawindow中的事件:itemchanged中直接取被修改前是什么,而且只能是刚修改的时候可以起到作用,你可以对比下,在这个事件中,你不要使用accepttext,然后调用getitemXXX()和事件的参数data对比,这两个值用messagebox提示下,你就知道,两个值是不一样的,一个是修改后的值,一个是修改前的值

------解决方案--------------------
数据窗口本身不支持保存上一次修改的值的功能,建议楼主放弃这个想法,还是自己写代码去保存吧。
------解决方案--------------------
帮顶
------解决方案--------------------
如果是想取上一次的值的话,可以定义一个全局变量,记录一下上一次输入的值,这样 如果要撤销的话,直接读取这个变量的值就可以了。
  相关解决方案