以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 通过datacolchanging记录信息的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=120681) |
-- 作者:vincent92 -- 发布时间:2018/6/21 17:58:00 -- 通过datacolchanging记录信息的问题 我在狐表中有一列叫原值,然后后面有第一次原值、第二次原值、第三次原值…… 现在我想通过datacolchanging实现每次“原值”列的数值发生改变的时候,记录他的oldvalue和newvalue,举例如下: 第一次原值输入为1000,此时第一次原值=1000,第二次原值为空,第三次原值为空 第二次原值改变为2000,此时第一次原值=1000,第二次原值=2000,第三次原值为空 第三次原值改变为3000,此时第一次原值=1000,第二次原值=2000,第三次原值=3000 因为一共可能有五次到六次的改变,所以如果用if函数嵌套可能会比较麻烦,我想问问看能不能通过FOR NEXT的函数实现呢
|
-- 作者:有点甜 -- 发布时间:2018/6/21 18:12:00 -- 1、列名改成:原值1、原值2、原值3、原值4......
2、修改值的时候datacolchanged事件写代码
If e.DataCol.name = "原值" Then |
-- 作者:vincent92 -- 发布时间:2018/6/21 18:24:00 -- 谢谢,这个方案应该可行,但是我还遇到一个问题,现在我“原值”列的数值是通过表达式计算得到的,那这个数值变动能触发datacolchanged吗 |
-- 作者:有点甜 -- 发布时间:2018/6/21 18:26:00 -- 回复3楼,不能。表达式列不会触发datacolchanged。
看看 http://www.foxtable.com/webhelp/scr/2381.htm
|
-- 作者:vincent92 -- 发布时间:2018/6/21 19:26:00 -- 好吧,我再有一个问题,现在我原值1原值2的问题解决了,但是我想要在原值发生改变的时候跳出一个对话框,让我输入日期,分别为日期1、日期2、日期3 我原以为只要设定一个窗口就可以了,但是因为是datacolchanged触发的,我不知道生成窗口后怎么把日期输到当时发生改变的那行里面,有什么好的方法吗
|
-- 作者:有点甜 -- 发布时间:2018/6/21 20:27:00 -- 打开窗口之前记录行,如 vars("dr") = e.datarow
在窗口直接用,如
vars("dr")(”第一列") = 123 vars("dr")(”第二列") = 456 |