以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  列权限问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=82939)

--  作者:douglas738888
--  发布时间:2016/3/28 15:04:00
--  列权限问题
老师看看,我的代码错在哪里,没有实现功能

If e.Col.Name = "流程2_校对" Then  \'如果修改的是流程2_校对列输入名字
    If e.Row.IsNull("流程2_校对") = False Then  \'如果已经有名字内容
       If e.Row.IsNull("流程2_完成") = True Then  \'如果该逻辑列没有勾选
        If _UserName <> "_UserName" Then  \'名字不是流程2_校对的名字
            e.Cancel = True  \'那么禁止编辑,勾选逻辑列流程2_完成
Else
    MessageBox.show(
"你无校对权限!")
        End If
    End If
  End If
End If

想实现的是,如果流程2_校对列内的名字不是登录名,无权勾选流程2_完成的逻辑列
[此贴子已经被作者于2016/3/28 15:09:07编辑过]

--  作者:大红袍
--  发布时间:2016/3/28 15:14:00
--  
If e.Col.Name = "流程2_校对" Then  \'如果修改的是流程2_校对列输入名字
    If e.Row.IsNull("流程2_校对") = False Then  \'如果已经有名字内容
        If e.Row("流程2_完成") = True Then  \'如果该逻辑列没有勾选
            If _UserName <> e.Row("流程2_校对") Then  \'名字不是流程2_校对的名字
                e.Cancel = True  \'那么禁止编辑,勾选逻辑列流程2_完成
            Else
                MessageBox.show("你无校对权限!")
            End If
        End If
    End If
End If
[此贴子已经被作者于2016/3/28 16:34:14编辑过]

--  作者:douglas738888
--  发布时间:2016/3/28 15:51:00
--  
老师再看看测试例子,我试着放了几个属性都不对,应放在哪里

PrepareEdit 帮助里提醒 是不能放的,会死循环

DataColChanging 不对

LoadUserSetting 也不对



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




--  作者:大红袍
--  发布时间:2016/3/28 15:53:00
--  
startEdit事件。
--  作者:douglas738888
--  发布时间:2016/3/28 16:27:00
--  
老师,我刚才的代码写的有点错误,If e.Col.Name = "流程2_校对" ,应改成"流程2_完成",现在是出现了提示窗后按确定,登录人员不是流程2_校对人员,

但是流程2_完成的逻辑列自动打钩了,应该登录用户不是流程2_校对的名字,逻辑列是不能打钩的。

If e.Col.Name = "流程2_完成" Then  \'如果修改的是流程2_完成列没有打钩           
    If e.Row.IsNull("流程2_校对") = False Then  \'如果已经有名字内容
        If e.Row("流程2_完成") = False Then  \'如果该逻辑列没有勾选
            If _UserName <> _UserName Then  \'名字不是流程2_校对的名字
               e.Cancel = False  \'那么禁止编辑和勾选逻辑列流程2_完成
            Else
                MessageBox.show("你无校对权限!")
            End If
        End If
    End If
End If
[此贴子已经被作者于2016/3/28 16:33:50编辑过]

--  作者:大红袍
--  发布时间:2016/3/28 16:34:00
--  
If e.Col.Name = "流程2_完成" Then  \'如果修改的是流程2_校对列输入名字
    If e.Row.IsNull("流程2_校对") = False Then  \'如果已经有名字内容
        If _UserName <> e.Row("流程2_校对") Then  \'名字不是流程2_校对的名字
            MessageBox.show("你无校对权限!")
            e.Cancel = True  \'那么禁止编辑,勾选逻辑列流程2_完成
        End If
    End If
End If

--  作者:douglas738888
--  发布时间:2016/3/29 9:10:00
--  
根据老师指导的代码,如果不增加 Like "*" & _UserName & "*",单人操控审核是对的

现在,流程2_完成列,为多值的多人审核,下面的代码应该怎样修改,我用%通配符也不对,请老师看看

If e.Col.Name = "流程2_完成" Then           \'如果修改的是流程2_校对列输入名字
    If e.Row.IsNull("流程2_校对") = False Then            \'如果已经有名字内容
        If _UserName <> e.Row("流程2_校对") Like "*" & _UserName & "*" Then        \'名字不是流程2_校对的名字
            MessageBox.show("你无校对权限!")
            e.Cancel = True  \'那么禁止编辑,勾选逻辑列流程2_完成
        End If
    End If
End If
[此贴子已经被作者于2016/3/29 9:20:42编辑过]

--  作者:大红袍
--  发布时间:2016/3/29 9:23:00
--  
If e.Row("流程2_校对") Like "*" & _UserName & "*" = False Then        \'名字不是流程2_校对的名字