以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  入手权限操作,请教如何根据多条件进行判断,符合条件的载入相关数据!  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=56880)

--  作者:李孝春
--  发布时间:2014/9/14 15:55:00
--  入手权限操作,请教如何根据多条件进行判断,符合条件的载入相关数据!

入手权限操作,请教如何根据多条件进行判断,符合条件的载入相关数据!恳请各位老师多多指导下

 

 


此主题相关图片如下:qq图片20140915153438.jpg
按此在新窗口浏览图片

 

在员工资料表中有机构,部门,组别,岗位,姓名 五个字段

在其他数据表(如:门店销售单)中都有一个字段  录入人员

现在想当用户名张三登陆之后,张三可以查看门店1下其所在业务部门第一组的全部组员的数据

如果该组下的李四登陆之后,则只能看见李四自己的数据

 

 

 

If e.Row("录入人员") <> User.Name Then
e.Cancel =
True
End If

这样在编辑某个订单前,会自动判断负责此订单的业务员是否和登录用户名相同,如果不同,则取消编辑。

 

 

If e.Row("部门") <> User.Group Then
e.Cancel =
True
End
If

 

这样在编辑某行前,会自动判断负责此行的部门列是否和登录用户所属分组相同,如果不同,则取消编辑。


 

[此贴子已经被作者于2014-9-14 15:56:19编辑过]

--  作者:有点甜
--  发布时间:2014/9/14 15:57:00
--  

 参考 http://www.foxtable.com/help/topics/2256.htm

 


--  作者:李孝春
--  发布时间:2014/9/14 16:03:00
--  回复:(有点甜) 参考 http://www.foxtable.com...

If User.group = "第一组" Then
    DataTables("订单").LoadFilter = ""
Else
   
DataTables("订单").LoadFilter = "组别 = \'" & User.group & "\'"
End
If
DataTables
("订单").Load()

 

这样是实现如果是第一组 就导入全部数据  不是第一组就获取当前组别进行导入数据

 

但是没有实现我要的多条件组合判断导入 不知道是不是我吧问题想复杂了

 

先判断机构

 

再判断部门

 

再判断组别

 

再判断岗位

 

再判断姓名


--  作者:有点甜
--  发布时间:2014/9/14 16:06:00
--  

 你其它表,不是只有录入者一列么?所以你写条件的时候,直接判断user.name就行了。


--  作者:李孝春
--  发布时间:2014/9/14 16:21:00
--  回复:(有点甜) 你其它表,不是只有录入者一列...

 

If User.Name = "张经理" Then
DataTables("订单").LoadFilter = ""
Else
DataTables("订单").LoadFilter = "业务员 = \'" & User.Name & "\'"
End
If
DataTables
("订单").Load()

 

相当麻烦的 如果我按照这个思路来设计 这个是按照张经理登陆后导入所有数据  但是假设张经理数据第一组 是组长  那好说

 

但是张经理不是组长 是组员的时候呢?

 

想实现一个判断 就是如何从当前表中的的录入人员来进行判断 当前人员属于什么机构 部门 组别 岗位然后再进行数据导入

 

由于姓名字段内容多 所以不可能一一的在项目代码中全部固定 需要灵活自动判断

 

还希望有点甜老师多多指导 周末愉快


--  作者:有点甜
--  发布时间:2014/9/14 16:25:00
--  

 但是你的订单表只有一列录入者的信息啊,除非你把用户的所有信息都记录着,不然无法实现你的功能。

 

 1、订单表记录足够信息;2、根据user.name、user.group等信息,对应的加载订单表,或者查找用户表后,加载订单表


--  作者:李孝春
--  发布时间:2014/9/14 16:52:00
--  回复:(有点甜) 但是你的订单表只有一列录入者...

有点甜老师 我根据你的思路 选择了将订单表增加对应的四个字段  当录入人员变动后 自动查找用户表中的数据 对应填写四个字段的内容

 

查找用户表后,加载订单表 

 

 


--  作者:李孝春
--  发布时间:2014/9/14 16:53:00
--  回复:(有点甜) 但是你的订单表只有一列录入者...

有点甜老师 我根据你的思路 选择了将订单表增加对应的四个字段  当录入人员变动后 自动查找用户表中的数据 对应填写四个字段的内容

 

查找用户表后,加载订单表 

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

上面的项目例子 求指导 如何动态根据当前登录名 自动判断并导入所在组的数据 根据岗位不同显示的数据不同

 

组长显示所在组的全部数据 组员现在其自己的数据


--  作者:有点甜
--  发布时间:2014/9/14 17:01:00
--  
 

Dim fdr As DataRow = DataTables("用户").Find("姓名 = \'" & user.Name & "\'")
Dim filter As String = "1=2"
If fdr IsNot Nothing
    If fdr("岗位") = "组长" Then
        Dim names As String = DataTables("用户").GetComboListString("姓名", "组别 = \'" & fdr("组别") & "\'").Replace("|", "\',\'")
        filter = "录入人员 in (\'" & names & "\')"
    Else
        filter = "录入人员 = \'" & user.Name & "\'"
    End If
End If

DataTables("订单").LoadFilter = filter
DataTables("订单").Load()


--  作者:李孝春
--  发布时间:2014/9/14 17:18:00
--  回复:(有点甜)?Dim fdr As DataRow = DataT...

首先 感谢有点甜老师

 

Dim filter As String = "1=2" 这个代码是啥意思呢 呵呵

 

 

代码运行后能够实现非组长查看自己的数据

 

但是组长由于部门不同 但是组别会想同 比如都有第1组 结果显示的是全部数据表

 

求纠正下 将机构 部门 组别这三个判断一起配合使用  继续学习中

 

 


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

例子数据完善过了 麻烦老师看看
[此贴子已经被作者于2014-9-14 17:19:32编辑过]