当前位置: 代码迷 >> PB >> 关于数据窗口中的任何1列的数据修改的记录
  详细解决方案

关于数据窗口中的任何1列的数据修改的记录

热度:22   发布时间:2016-04-29 06:08:42.0
关于数据窗口中的任何一列的数据修改的记录?
就是将数据窗口中任何一列的数据变化,都能insert日志一条记录(有改变的列记录 ,没有改变的就不用记录了)
比如下列的dw中
id      name   js    tj      zl
bh001   鞋子   10    1.22    0.12

现在将【鞋子】 改为【衣服】 

在日志中要能记录这么一条记录:某某人将name由【鞋子】改为【衣服】

该怎么做才好呢?
------解决方案--------------------
getitemstring之类的函数有第三个参数的,就是指定要取的缓冲区,你看一下pb的help
------解决方案--------------------
用datawindow.object.primary.current.name[i] 和 datawindow.object.primary.orignal.name[i]
比较就知道你是否真的修改了name数据

dwcontrol.object.primary.current.name[i] 是主缓冲区当前数据
dwcontrol.object.primary.orignal.name[i] 是主缓冲区原始数据,从数据库里检索的时候,这里保存着从数据库里检索出来的原始数据。

也可以用
dwcontrol.GetItemString (i,'name',primary!,True) 
获取主缓冲区当前数据
dwcontrol.GetItemString (i,'name',primary!,False) 
获取冲区原始数据

要获取其他缓冲区只需把primary改为 delete,filter
  相关解决方案