关于itemchanged的疑问?该如何处理
关于itemchanged的疑问?
想实现dw_1中每次增加或者修改一条数据后,把dw_1中增加或者修改的这条数据中的
columnB,columnC,columnD与数据库中另一个表2中的columnB,columnC,columnD相
比较,如果三个column对应相同,就把表2中的columnE放入dw_1中的columnE。
因为itemchanged是触发于每个字段column改变的,如果像我这样想对应每条数据的增加修改放在哪个事件比较合适?
------解决方案--------------------
增加窗口函数 wf_set_columnE(long row)
想实现dw_1中每次增加或者修改一条数据后,把dw_1中增加或者修改的这条数据中的
columnB,columnC,columnD与数据库中另一个表2中的columnB,columnC,columnD相
比较,如果三个column对应相同,就把表2中的columnE放入dw_1中的columnE。
因为itemchanged是触发于每个字段column改变的,如果像我这样想对应每条数据的增加修改放在哪个事件比较合适?
------解决方案--------------------
增加窗口函数 wf_set_columnE(long row)
- C/C++ code
if row < 1 or row > dw_1.rowcount() then return //以下假设 columnB等都是char类型的 string columnB, columnC, columnD, columnE columnB = dw_1.getitemstring(row, 'columnB') columnC = dw_1.getitemstring(row, 'columnC') columnD = dw_1.getitemstring(row, 'columnD') select top 1 columnE into :columnE from 表2 where columnB = :columnB AND columnC = :columnC AND columnD = :columnD using sqlca; if sqlca.sqlcode = -1 then return dw_1.setitem(row, 'columnE', columnE)
------解决方案--------------------
在itemchanged 中作判断的时候要注意 [当前列] ,也就是 dwo.name
也就是当前列的值不能使用getitem来获取, 要使用data 这个属性
------解决方案--------------------