以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  权限冲突  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=79406)

--  作者:一笑
--  发布时间:2015/12/30 16:54:00
--  权限冲突
工作列中有3种内容"部门例会布置工作" 、 "公司例会布置工作"、"个人工作总结"
PrepareEdit写入:
第一段代码希望:当责任人有用户( _Username )、且工作属于"个人工作总结" 时,则才能对"进度","完成情况","工作内容"这3列进行修改。
Select Case e.Col.Name
    Case "进度","完成情况","工作内容"
        If e.Row("责任人") Like "*" & _Username & "*" And e.Row("工作") = "个人工作总结" Then
            e.Cancel = False
        Else
            e.Cancel = True
        End If
End Select

这一段是设想:当工作属于"部门例会布置工作" 或 "公司例会布置工作"时,只有具有“审核”权限的人才能对这3列进行修改

Select Case e.Col.Name
    Case "责任人","完成时间","工作内容"
        If Functions.execute("Shouquan", "周工作", "审核") And (e.Row("工作") = "部门例会布置工作" Or e.Row("工作") = "公司例会布置工作") Then
            e.Cancel = False
        Else
            e.Cancel = True
        End If
        If e.Row("工作") = "个人工作总结" Then
            e.Cancel = False
        End If        
End Select

实际运行时,单独运行,权限争取,如两段放在一起则发现权限冲突,如何实现设想,如何修改,谢谢

--  作者:大红袍
--  发布时间:2015/12/30 17:02:00
--  

e.cancel = True
Select Case e.Col.Name
    Case "进度","完成情况","工作内容"
        If e.Row("责任人") Like "*" & _Username & "*" And e.Row("工作") = "个人工作总结" Then
            e.Cancel = False
        End If
End Select

Select Case e.Col.Name
    Case "责任人","完成时间","工作内容"
        If Functions.execute("Shouquan", "周工作", "审核") And (e.Row("工作") = "部门例会布置工作" Or e.Row("工作") = "公司例会布置工作") Then
            e.Cancel = False
        End If
        If e.Row("工作") = "个人工作总结" Then
            e.Cancel = False
        End If       
End Select


--  作者:一笑
--  发布时间:2016/1/2 9:04:00
--  
测试了还是不行,有冲突,
另外,not like 语句报错,不能用吗?求解,
 If e.Row("责任人") not Like "*" & _Username & "*" And e.Row("工作") = "个人工作总结" Then 
谢谢

[此贴子已经被作者于2016/1/2 20:34:36编辑过]

--  作者:大红袍
--  发布时间:2016/1/3 22:41:00
--  

不可能,做例子上来。

 

 If e.Row("责任人") not Like "*" & _Username & "*" And e.Row("工作") = "个人工作总结" Then 

 

改成

 

 If e.Row("责任人") Like "*" & _Username & "*" = False And e.Row("工作") = "个人工作总结" Then 


--  作者:一笑
--  发布时间:2016/1/3 22:52:00
--  
如下代码有效吗:
If Functions.execute("Shouquan", "周工作", "审核")  = False Then
--  作者:大红袍
--  发布时间:2016/1/3 23:43:00
--  

是否有效,你可以在命令窗口执行

 

msgbox(Functions.execute("Shouquan", "周工作", "审核"))