以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  让用户处理不同的列无效  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=151514)

--  作者:lal021962
--  发布时间:2020/6/26 10:48:00
--  让用户处理不同的列无效

在项目的AfterOpenProject事件中设置代码:

Select Case User.Name
    Case "叶垚真","徐闻聪"
        Tables("销售定单主表").Cols.Remove("工厂销售总金额")
        Tables("销售定单主表").Cols.Remove("已付工厂款")
End Select

 

 

但执行无效,主窗口中仍然可见一下两列,请问原因


--  作者:lal021962
--  发布时间:2020/6/26 11:02:00
--  


以下内容是专门发给有点蓝浏览

 


[此贴子已经被作者于2021/2/5 21:20:27编辑过]

--  作者:linyunu1
--  发布时间:2020/6/26 11:27:00
--  
窗口AfterLoad
Select Case User.Name
    Case "叶垚真","徐闻聪"
        Tables(e.form.name & "_Table1").Cols.Remove("工厂销售总金额","已付工厂款")
End Select
--  作者:lal021962
--  发布时间:2020/6/26 16:47:00
--  

那假如是要求用户角色是业务员的时候,无法处理这两列,该如何写代码


--  作者:linyunu
--  发布时间:2020/6/26 17:05:00
--  
无法处理这两列是需要怎样无法处理?
If User.Roles = "业务员" Then
    Tables(e.form.name & "_Table1").Cols.Remove("工厂销售总金额","已付工厂款")
End If

--  作者:lal021962
--  发布时间:2020/6/26 22:08:00
--  

就是需要达成和之前你写的代码一样的效果,只不过把用户名筛选换成角色筛选:

Select Case User.Name
    Case "叶垚真","徐闻聪"
        Tables(e.form.name & "_Table1").Cols.Remove("工厂销售总金额","已付工厂款")
End Select

以上代码能够达成预期效果。

 

If User.Roles = "业务员" Then

    Tables(e.form.name & "_Table1").Cols.Remove("工厂销售总金额","已付工厂款")
End If
以上代码无法达成预期效果

 


--  作者:lal021962
--  发布时间:2020/6/26 22:16:00
--  

已经解决,将代码改成如下格式即可:

If User.isrole( "业务员" )=true Then

    Tables(e.form.name & "_Table1").Cols.Remove("工厂销售总金额","已付工厂款")
End If
 
谢谢帮助

--  作者:linyunu
--  发布时间:2020/6/26 22:18:00
--  
If User.IsRole("业务员") Then
    Tables(e.form.name & "_Table1").Cols.Remove("工厂销售总金额","已付工厂款")
End If