Foxtable(狐表)用户栏目专家坐堂 → 列权限问题


  共有2022人关注过本帖树形打印复制链接

主题:列权限问题

帅哥哟,离线,有人找我吗?
douglas738888
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
列权限问题  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2016/3/28 15:51:00 [只看该作者]

老师再看看测试例子,我试着放了几个属性都不对,应放在哪里

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

DataColChanging 不对

LoadUserSetting 也不对



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




 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/28 15:53:00 [只看该作者]

startEdit事件。

 回到顶部
帅哥哟,离线,有人找我吗?
douglas738888
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/29 9:23:00 [只看该作者]

If e.Row("流程2_校对") Like "*" & _UserName & "*" = False Then        '名字不是流程2_校对的名字

 回到顶部