以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 开通全局表事件自动关闭项目问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=52816)

--  作者:wumingrong1
--  发布时间:2014/6/23 17:48:00
--  [求助] 开通全局表事件自动关闭项目问题
我在项目事件的Initialize写入一下命令:

For Each dt As DataTable In DataTables
    dt.GlobalHandler.DataColChanged = True \'开通全局表事件"DataColChanged"
Next

For Each da As DataTable In DataTables
    da.GlobalHandler.DataRowAdding = True \'开通全局表事件"DataRowAdding"

Next

For Each de As DataTable In DataTables
    de.GlobalHandler.DataRowAdded = True \'开通全局表事件"DataRowAdded"

Next


然后分别在全局表事件:

1、DataColChanged中写入

e.DataRow("操作记录_修改人员") = _Username  \'纪录该条纪录是哪个人员录入的\'

e.DataRow("操作记录_修改日期") = Date.now


2、

DataRowAdding中写入:

e.DataRow("操作记录_增加人员") = _Username  \'纪录该条纪录是哪个人员录入的\'

e.DataRow("操作记录_增加日期") = Date.now


3、

DataRowAdded中写入:

e.DataRow("分公司") = _user分公司



当我在表中新增一行时、项目自动关闭。问题出在哪啦?


--  作者:Bin
--  发布时间:2014/6/23 17:51:00
--  
表事件的DataColChanged是否有写代码?

你这情况是死循环了

把例子发出来看看

--  作者:wumingrong1
--  发布时间:2014/6/24 8:48:00
--  

1、DataColChanged中写入

e.DataRow("操作记录_修改人员") = _Username  \'纪录该条纪录是哪个人员录入的\'

e.DataRow("操作记录_修改日期") = Date.now



估计应该是这个问题,但不知道怎么处理。

[此贴子已经被作者于2014-6-24 8:49:08编辑过]

--  作者:Bin
--  发布时间:2014/6/24 8:51:00
--  
单单这个代码不应该会造成死循环.把项目传上来我分析一下看看吧
--  作者:Bin
--  发布时间:2014/6/24 8:52:00
--  

试试这样


e.DataRow("操作记录_修改人员") = _Username  \'纪录该条纪录是哪个人员录入的\'

if e.datacol.name <> "操作记录_修改日期" then

e.DataRow("操作记录_修改日期") = Date.now

end if


--  作者:wumingrong1
--  发布时间:2014/6/24 9:02:00
--  
OK,谢谢。

还有一个问题,如果我希望在全局表事件中设定某个用户登录后,该用户只能对所有表进行查看、查询;不允许进行增加、修改、删除等操作。该怎么做?

If User.Type <> UserTypeEnum.Developer AndAlso User.Type <> UserTypeEnum.Administrator AndAlso _UserGroup <> "特级管理员"  AndAlso _UserGroup <> "一级管理员"  AndAlso _UserGroup <> "二级管理员"  Then
    
允许正常操作

Else

只能对所有表进行查看、查询;不允许进行增加、修改、删除等操作

end if

--  作者:Bin
--  发布时间:2014/6/24 9:04:00
--  
http://www.foxtable.com/help/topics/1600.htm