以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 不让使用者编辑别人录入的内容,这段代码怎么不起作用呢?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=128775)

--  作者:龙潭春早
--  发布时间:2018/12/14 18:42:00
--  [求助] 不让使用者编辑别人录入的内容,这段代码怎么不起作用呢?

一、任务:除了开发者,不允许使用者编辑别人录入的内容

二、在StartEdit事件中,加上代码:

If User.Type <> UserTypeEnum.Developer Then
    
    If e.Table.Cols.Contains("录入者") AndAlso User.Name <> e.Row("录入者") Then \'如果使用者不是录入者

        e.Cancel = True \'那么不允许编辑当前行

    Else
        e.Cancel = False \' 允许编辑当前行
        
    End If

三、问题:使用者还是可以编辑、删除别人编辑的内容。

         感觉不应该啊!



--  作者:y2287958
--  发布时间:2018/12/14 19:25:00
--  
If User.Type <> UserTypeEnum.Developer Then
    e.Cancel = True \'那么不允许编辑当前行
End If

--  作者:有点蓝
--  发布时间:2018/12/14 20:51:00
--  
1楼代码编辑肯定是不可以的,测试没有问题。至于删除行要到BeforeDeleteDataRow事件控制
--  作者:bashanren
--  发布时间:2018/12/14 21:30:00
--  
请问有点蓝老师,如何将自定义的users表中的某个人,如“张三”这个普通用户变为UserTypeEnum用户?谢谢!!
--  作者:龙潭春早
--  发布时间:2018/12/14 21:32:00
--  
1、嗯 删除行是在 BeforeDeleteDataRow 里设置的,使用正常。

这样的:

If User.Type <> UserTypeEnum.Developer Then
    If e.DataTable.DataCols.Contains("录入者") AndAlso User.Name <> e.DataRow("录入者") 
        e.Cancel = True \'那么不允许编辑
    End If
End If

2、我们也觉得 1楼 的代码没错,但是我们实测的时候,确实能编辑、还能删除。

让另外城市的同事上网帮助测试,也是这样。

很奇怪!

我们再看一看。


--  作者:有点蓝
--  发布时间:2018/12/14 22:07:00
--  
上传具体实例测试
--  作者:bashanren
--  发布时间:2018/12/14 22:09:00
--  
请问老师,如何将自定义的users表中的某个人,如“张三”这个普通用户变为UserTypeEnum用户?谢谢!!


--  作者:有点蓝
--  发布时间:2018/12/14 22:17:00
--  
以下是引用bashanren在2018/12/14 22:09:00的发言:
请问老师,如何将自定义的users表中的某个人,如“张三”这个普通用户变为UserTypeEnum用户?谢谢!!

没看懂您的意思。另外自己的问题请尽量新建贴提问