Foxtable(狐表)用户栏目专家坐堂 → [求助]内部用户转外部用户的权限管理问题?


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

主题:[求助]内部用户转外部用户的权限管理问题?

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


加好友 发短信
等级:小狐 帖子:371 积分:3120 威望:0 精华:0 注册:2013/7/13 15:49:00
[求助]内部用户转外部用户的权限管理问题?  发帖心情 Post By:2015/3/10 15:45:00 [只看该作者]

项目为自带用户及权限管理,现在按照帮助自己编写了用户及权限管理部分,请大神给看下,下面的代码改的对不对?

 

现有:

Dim s As String = Tables("利润单").Cols("订单状态").ComboList
If e.IsFocusCell
    If e.Col.Name  = "订单状态" AndAlso User.Group = "导游组"
        Tables("利润单").Cols("订单状态").ComboList = "2-财务审核"
    Else
        Tables("利润单").Cols("订单状态").ComboList = s
    End If
End If


Dim f As String = Tables("利润单").Cols("订单状态").ComboList
If e.IsFocusCell
    If e.Col.Name  = "订单状态" AndAlso User.Group= "办公室"
        Tables("利润单").Cols("订单状态").ComboList = "3-业务审核"
    Else
        Tables("利润单").Cols("订单状态").ComboList = f
    End If
End If


If e.Col.Name = "订单状态"  Then  '如果修改的是订单状态列
    If e.Row("订单状态") = "2-财务审核"  Then  '如果内容是"2-财务审核"
        If User.Group <>  "办公室"  Then  '且用户不是办公室
            e.Cancel = True  '那么禁止编辑
        End  If
    End  If
End  If

If e.Col.Name = "订单状态"  Then  '如果修改的是订单状态列
    If e.Row("订单状态") = "3-业务审核"  Then  '如果内容是"3-财务审核"
        If User.Group <>  "经理组"  Then  '且用户不是经理组
            e.Cancel = True  '那么禁止编辑
        End  If
    End  If
End  If

If e.Row("订单状态") = "1-新增订单"  Then  '如果内容是"1-新增订单"
    If e.Row("业务负责") <> User.Name Then  '且用户不是业务负责人
        e.Cancel =  True  '那么禁止编辑
    End  If
End  If


If e.Table.Current IsNot Nothing Then
    If Forms("利润订单窗口").Opened Then
        Dim a As WinForm.Button = Forms("利润订单窗口").Controls("新增利润明细按键")
        Dim b As WinForm.Button = Forms("利润订单窗口").Controls("删除利润单按键")
        Dim d As WinForm.Button = Forms("利润订单窗口").Controls("删除利润明细按键")
        Select Case e.Table.Current("订单状态")
            Case  "2-财务审核","3-业务审核","4-订单完成"
                a.Enabled = False
                b.Enabled = False
                d.Enabled = False
            Case Else
                a.Enabled = True
                b.Enabled = True
                d.Enabled = True
        End Select
    End If
End If


If e.Table.Current IsNot Nothing Then  '如果当前表中没有对应的内容,那么执行下边
    If Forms("利润订单窗口").Opened      '如果窗口打开
        If user.Name = e.Table.Current("业务负责") Then
            Forms("利润订单窗口").Controls("新增利润明细按键").Enabled = True
        Else
            Forms("利润订单窗口").Controls("新增利润明细按键").Enabled = False
        End If
    End If
End If

 

If e.Table.Current IsNot Nothing Then  '如果当前表中没有对应的内容,那么执行下边
    If Forms("利润订单窗口").Opened      '如果窗口打开
        Dim flag As Boolean = False
        For Each r As Row In Tables("利润单.利润明细单").Rows
            If r.IsNull("账单编号") = False  Then
                flag = True
                Exit For
            End If
        Next
        If flag = False AndAlso user.Name = e.Table.Current("业务负责") Then
            Forms("利润订单窗口").Controls("删除利润单按键").Enabled = True
        Else
            Forms("利润订单窗口").Controls("删除利润单按键").Enabled = False
        End If
    End If
End If

 

 

改为:

 

 

 

 

 

Dim s As String = Tables("利润单").Cols("订单状态").ComboList
If e.IsFocusCell
    If e.Col.Name  = "订单状态" AndAlso _UserGroup = "导游组"
        Tables("利润单").Cols("订单状态").ComboList = "2-财务审核"
    Else
        Tables("利润单").Cols("订单状态").ComboList = s
    End If
End If


Dim f As String = Tables("利润单").Cols("订单状态").ComboList
If e.IsFocusCell
    If e.Col.Name  = "订单状态" AndAlso _UserGroup = "办公室"
        Tables("利润单").Cols("订单状态").ComboList = "3-业务审核"
    Else
        Tables("利润单").Cols("订单状态").ComboList = f
    End If
End If


If e.Col.Name = "订单状态"  Then  '如果修改的是订单状态列
    If e.Row("订单状态") = "2-财务审核"  Then  '如果内容是"2-财务审核"
        If _UserGroup <>  "办公室"  Then  '且用户不是办公室
            e.Cancel = True  '那么禁止编辑
        End  If
    End  If
End  If

If e.Col.Name = "订单状态"  Then  '如果修改的是订单状态列
    If e.Row("订单状态") = "3-业务审核"  Then  '如果内容是"3-财务审核"
        If _UserGroup <>  "经理组"  Then  '且用户不是经理组
            e.Cancel = True  '那么禁止编辑
        End  If
    End  If
End  If

If e.Row("订单状态") = "1-新增订单"  Then  '如果内容是"1-新增订单"
    If e.Row("业务负责") <> _UserName Then  '且用户不是业务负责人
        e.Cancel =  True  '那么禁止编辑
    End  If
End  If


If e.Table.Current IsNot Nothing Then
    If Forms("利润订单窗口").Opened Then
        Dim a As WinForm.Button = Forms("利润订单窗口").Controls("新增利润明细按键")
        Dim b As WinForm.Button = Forms("利润订单窗口").Controls("删除利润单按键")
        Dim d As WinForm.Button = Forms("利润订单窗口").Controls("删除利润明细按键")
        Select Case e.Table.Current("订单状态")
            Case  "2-财务审核","3-业务审核","4-订单完成"
                a.Enabled = False
                b.Enabled = False
                d.Enabled = False
            Case Else
                a.Enabled = True
                b.Enabled = True
                d.Enabled = True
        End Select
    End If
End If


If e.Table.Current IsNot Nothing Then  '如果当前表中没有对应的内容,那么执行下边
    If Forms("利润订单窗口").Opened      '如果窗口打开
        If _userName = e.Table.Current("业务负责") Then
            Forms("利润订单窗口").Controls("新增利润明细按键").Enabled = True
        Else
            Forms("利润订单窗口").Controls("新增利润明细按键").Enabled = False
        End If
    End If
End If

 

If e.Table.Current IsNot Nothing Then  '如果当前表中没有对应的内容,那么执行下边
    If Forms("利润订单窗口").Opened      '如果窗口打开
        Dim flag As Boolean = False
        For Each r As Row In Tables("利润单.利润明细单").Rows
            If r.IsNull("账单编号") = False  Then
                flag = True
                Exit For
            End If
        Next
        If flag = False AndAlso _userName = e.Table.Current("业务负责") Then
            Forms("利润订单窗口").Controls("删除利润单按键").Enabled = True
        Else
            Forms("利润订单窗口").Controls("删除利润单按键").Enabled = False
        End If
    End If
End If

 

 

给帮忙给看下,这个改法对不对,能不能起作用?谢谢!

还有个问题,这个权限是不是还受默认用户影响,默认用户应该怎么设置?

[此贴子已经被作者于2015/3/10 15:47:07编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/10 15:47:00 [只看该作者]

 就是这样改,有什么问题?

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


加好友 发短信
等级:小狐 帖子:371 积分:3120 威望:0 精华:0 注册:2013/7/13 15:49:00
  发帖心情 Post By:2015/3/10 16:00:00 [只看该作者]

感觉好像没有起作用,我感觉是不是和默认账户有关系,我设置的默认账户还在直接控制权限!

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2015/3/10 16:03:00 [只看该作者]

代码重复的太多了,看起来都晕。
先合并重复的代码,代码少了,理清逻辑关系就容易些。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/10 16:03:00 [只看该作者]

不可能,弹出看一下

 

Msgbox(_UserGroup)

Msgbox(_UserName)


 回到顶部