以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  求助:加载树权限问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=52693)

--  作者:jygyyl
--  发布时间:2014/6/20 15:46:00
--  求助:加载树权限问题
求教老师,我的加载树代码如下:
Dim Value()As String
Dim Filter As String
Value = e.Node.FullPath.Split("\\")
Select Case e.Node.Level
    Case 0
       Filter ="HGB402 = \'" & Value(0) & "\'"
    Case 1
        Filter ="HGB402 = \'" & Value(0) & "\' And Year(GB311) = " & Value(1)
    Case 2
        Filter ="HGB402 = \'" & Value(0) & "\' And Year(GB311) = " & Value(1) & " And Month(GB311) = " & Value(2) 
    End Select
DataTables("CSsmdj").LoadFilter = Filter
DataTables("CSsmdj").Load()

另外在项目属性AfterOpenProject中写入:

If User.Name = "管理员" Then

    DataTables("CSsmdj").LoadFilter = ""

Else

    DataTables("CSsmdj").LoadFilter = "HGB402 = \'" & User.Name & "\'"

   End If

DataTables("CSsmdj").Load()



想法是普通用户只能加载自己的数据,不能加载查看别人的数据。

现在的问题是只以有开发者和管理员身份登录可以双击节点加载数据,普通用户双击不加载数据,求各位老师不吝赐教!


--  作者:Bin
--  发布时间:2014/6/20 15:49:00
--  
If User.Type = UserTypeEnum.Administrator OrElse User.Type = UserTypeEnum.Developer Then
  
DataTables("CSsmdj").LoadFilter = Filter
    DataTables("CSsmdj").Load()
End If
--  作者:jygyyl
--  发布时间:2014/6/20 17:05:00
--  回复:(Bin)If User.Type = UserTypeEnum...
问题没有解决,将段代码写入 AfterOpenProject报错。

主要是加载树权限问题,即:开发者和管理员登陆可以加载所有用户的数据,其他用户只能加载自己的数据(即:"HGB402 = \'" & User.Name & "\'")。

我现在的问题是其他用户登陆双击加载树节点,没有实现加载数据自己数据!不知什么地方设置错误了?

--  作者:Bin
--  发布时间:2014/6/20 17:06:00
--  
是加到加载树代码里面去.
--  作者:Bin
--  发布时间:2014/6/20 17:07:00
--  
你这前后问题不一致
--  作者:有点甜
--  发布时间:2014/6/20 17:07:00
--  
 看你上面的代码,不会出现你这样的问题,做个例子发上来。
--  作者:Bin
--  发布时间:2014/6/20 17:08:00
--  
If User.Type <> UserTypeEnum.Administrator AndAlso User.Type <> UserTypeEnum.Developer Then
  
Filter= "(" & Filter & ") and HGB402 = \'" & User.Name & "\'"
End If

--  作者:jygyyl
--  发布时间:2014/6/20 17:10:00
--  回复:(Bin)是加到加载树代码里面去.
写到加载树代码里面也没有实现想要的效果!

Dim Value()As String
Dim Filter As String
Value = e.Node.FullPath.Split("\\")
Select Case e.Node.Level
    Case 0
       Filter ="HGB402 = \'" & Value(0) & "\'"
    Case 1
        Filter ="HGB402 = \'" & Value(0) & "\' And Year(GB311) = " & Value(1)
    Case 2
        Filter ="HGB402 = \'" & Value(0) & "\' And Year(GB311) = " & Value(1) & " And Month(GB311) = " & Value(2) 
    End Select
If User.Type = UserTypeEnum.Administrator OrElse User.Type = UserTypeEnum.Developer Then
DataTables("CSsmdj").LoadFilter = Filter
DataTables("CSsmdj").Load()
End If

--  作者:有点甜
--  发布时间:2014/6/20 17:13:00
--  
例子说话,你本来的代码也不会出现你所说的问题。
--  作者:jygyyl
--  发布时间:2014/6/20 17:21:00
--  回复:(Bin)If User.Type <> UserT...
Dim Value()As String
Dim Filter As String
Value = e.Node.FullPath.Split("\\")
Select Case e.Node.Level
    Case 0
        Filter ="HGB402 = \'" & Value(0) & "\'"
    Case 1
        Filter ="HGB402 = \'" & Value(0) & "\' And Year(GB311) = " & Value(1)
    Case 2
        Filter ="HGB402 = \'" & Value(0) & "\' And Year(GB311) = " & Value(1) & " And Month(GB311) = " & Value(2)
End Select
If User.Type <> UserTypeEnum.Administrator AndAlso User.Type <> UserTypeEnum.Developer Then
    Filter= "(" & Filter & ") and HGB402 = \'" & User.Name & "\'"
    DataTables("CSsmdj").LoadFilter = Filter
    DataTables("CSsmdj").Load()
End If

加载树代码改成上面的,开发者、管理员也不能加载数据了!