以文本方式查看主题

-  易表在线答疑  (http://egrid2000.com/dvbbs/index.asp)
--  用户社区  (http://egrid2000.com/dvbbs/list.asp?boardid=2)
----  网络应用中如何知道哪些用户更改了数据  (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=24037)

--  作者:刀郎羊
--  发布时间:2012/12/30 13:11:00
--  网络应用中如何知道哪些用户更改了数据
易表应用到网络,多人操作,如何即时知道是那些用户更改了数据,比如进行了增加行、删除行、修改单元格内容等,烦请高手赐教。
--  作者:wjq1072
--  发布时间:2012/12/30 15:07:00
--  
试试函数?editlog
--  作者:刀郎羊
--  发布时间:2012/12/30 17:17:00
--  

谢谢wjq1072老师!该函数只能知道哪个用户什么时间修改了某行记录,无法区分出增加了哪些记录、删除了哪些记录,更无法区分修改了哪一列哪一个单元格的记录。

目前,我采取了以下折衷的办法:

1、收回操作用户“删除行”及“删除隐藏行”的权限,并在系统中说明:如果误增加了记录并已存盘,则清除该行的内容,保留空行,下次进入系统时通过预处理公式清除空行。如果确实需要删除某行数据,则电告管理员审核并由管理员删除。这一折衷方案可防止操作用户删除了行而管理员却不知道情况。

2、在系统中建立一个原始数据表的备份表,并在原始数据表中增加一列,写入比对公式,如果该行数据在备份表中不存在,则比对列显示为“用户新增数据”。备份表操作用户不可见。这一折衷方案,可以让管理员随时知道用户增加了哪些数据。

3、在备份表的一些关键列之后分别增加判断列,设为逻辑型,写入公式,当用户对原始数据表的某单元格数据进行了修改时,可以通过判断列知道哪些原始数据发生了变化。

上述设计的缺点是增加了系统负荷。

 

 

[此贴子已经被作者于2012-12-30 17:18:25编辑过]

--  作者:wjq1072
--  发布时间:2012/12/30 20:48:00
--  

用户删除列怎么办?删除表怎么办?

参考??

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:8899.egd


--  作者:刀郎羊
--  发布时间:2012/12/30 22:05:00
--  
谢谢wjq1072老师!没想到还可以这样弄,开眼界了!先下载学习,不懂的地方再请求赐教。
[此贴子已经被作者于2012-12-30 22:05:02编辑过]

--  作者:wjq1072
--  发布时间:2012/12/30 22:40:00
--  

也可以简单一些!

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:8899.egd


--  作者:刀郎羊
--  发布时间:2012/12/30 23:18:00
--  

还是第一个方案符合我的意图,不过......

If([%A%]=[%B%],ClearGrid("辅助"),Eval("AddRow(""用户更改备份"",""编号,"+Substitute(ListFor("辅助","列名称",1),"|",",")+",记录"",[编号],["+Substitute(ListFor("辅助","列名称",1),"|","],[")+"],[记录])") And ClearGrid("辅助"))

这一部分太复杂了,看得头疼!如果方便,能否分段解读,诚表谢意!

 

按我现有水平理解,似乎[%A%]永远是等于[%B%]的(不解之处,见笑了)。

另外,Eval("AddRow(""用户更改备份"",""编号,"+Substitute(ListFor("辅助","列名称",1),"|",",")+",记录"",[编号],["+Substitute(ListFor("辅助","列名称",1),"|","],[")+"],[记录])") ,这一段......惭愧!

[此贴子已经被作者于2012-12-30 23:30:25编辑过]

--  作者:wjq1072
--  发布时间:2012/12/31 9:56:00
--  

1、%A%是一个表达式变量,是所在行的“记录”值,是随着你的操作变化而变化的;

2、%B%是由行预处理公式赋值的,是所在行“记录”的初始值,是不随着你的操作变化而变化的;

3、所以就出现了二种情况:所在行的“记录”值不变,%A%=%B%;所在行的“记录”值变化了,%A%<>%B%。

4、当%A%<>%B%时,公式的结果就是在“用户更改备份”增加一行。

5、增加的内容就是使用“辅助表”中“列名称”来表示。

6、“辅助表”中“列名称”是有“主表”各列的操作公式得到的。

7、关于Eval表达式的用法,可以参考论坛相关贴子。

再参考:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:备份用户修改.egd

[此贴子已经被作者于2013-1-2 18:27:31编辑过]

--  作者:刀郎羊
--  发布时间:2013/1/2 13:29:00
--  
非常感谢wjq1072老师,辛苦您了。关于这方面的内容,论坛中好象还没有,建议置顶!
[此贴子已经被作者于2013-1-2 13:31:00编辑过]