Foxtable(狐表)用户栏目专家坐堂 → 狐表对权限的管理比较分散,能不能像EXCEL服务器那样集中定义对一个表的权限


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

主题:狐表对权限的管理比较分散,能不能像EXCEL服务器那样集中定义对一个表的权限

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


加好友 发短信
等级:婴狐 帖子:24 积分:296 威望:0 精华:0 注册:2011/6/7 21:15:00
狐表对权限的管理比较分散,能不能像EXCEL服务器那样集中定义对一个表的权限  发帖心情 Post By:2011/6/18 0:55:00 [只看该作者]

项目事件为BeforeLoadInnerTable,我想实现业务员只能加载自己登记的客户数据,但如果当前用户是“管理组”则都可以加载,下面的代码我看不出有什么问题,但在打开数据库的时候却提示是错误的,我应该怎么写这个代码呢?还有如何实现动态过滤呢,比如上级可以看到或有此权限的人可以看到,我目前的感觉是狐表对权限的管理比较分散,EXCEL服务器相对来说能够比较集中的定义对一个表的权限,狐表任何一个小小的问题都必须根据一个事件设置权限,不知是不是我不够熟悉所致。

 

If e.DataTableName = "客户登记表"
    e.Filter = "[业务员] = '" & e.User.Name & "' Or e.User.Group = '管理组'"
End If


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/18 7:48:00 [只看该作者]

呵呵,你的代码不是没有问题,而是很有问题,你的意思应该是如果用户分组是管理组,加载所有数据,否则只加载登录用户负责的行,那么代码应该是:
 
If e.DataTableName = "客户登记表" Then
    If e.User.Group <> "管理组" Then '如果不是管理组
        e.Filter = "[业务员] = '" & e.User.Name & "'"   '则设置加载条件
    End If
End If
 
刚开始犯这种错误是正常的,慢慢就熟练了。
 
在狐表,大到一个表,小到一个单元格,都可以设置权限,比你说的软件强很多,好好从这里开始看:
http://help.foxtable.com/topics/2253.htm


正是因为有事件,你才可以随心所欲,如果想用表格集中授权,也不是不可以,帮助就有例子。
 
其实不仅是权限管理,从录入、查询、到统计、分析,到界面设计和逻辑表述,再到报表输出,无不比你说的软件强一个等级。

[此贴子已经被作者于2011-6-18 7:50:02编辑过]

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


加好友 发短信
等级:婴狐 帖子:24 积分:296 威望:0 精华:0 注册:2011/6/7 21:15:00
  发帖心情 Post By:2011/6/18 18:29:00 [只看该作者]

非常感谢您的回复,狐表确实比EXCEL服务器要更强、更美、更完善,我个人相信狐表的市场也一定会赶超EXCEL服务器。

另外,我还有一个问题,就是我做了“客户登记表、客户联系人、客户沟通记录”这三个表,客户登记表与客户联系人、客户沟通记录分别做了关联,我现在想在添加客户记录的时候,当选择客户名称已后,客户联系人只显示客户名称跟我所选的客户名称相同的联系人,我通过在列表项目选择,然后过滤掉跟我所选的客户名称不相同的联系人,表达式中却没当前表的选择项目,我应该怎么现实?

 

 


图片点击可在新窗口打开查看此主题相关图片如下:未标题-1.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:未标题-2.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/18 18:53:00 [只看该作者]

你可以看看这个例子:

http://help.foxtable.com/topics/1459.htm

 


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


加好友 发短信
等级:婴狐 帖子:24 积分:296 威望:0 精华:0 注册:2011/6/7 21:15:00
  发帖心情 Post By:2011/6/20 9:16:00 [只看该作者]

我同时设定了两个IF,只有“管理组”和“财务部”的用户进去是正常的,其它用户进去会提示下面的错误,是为什么?

 

If e.DataTableName = "客户登记表" Then
    If e.User.Group <> "管理组" Then '如果不是管理组
        If e.User.Group <> "财务部" Then
            e.Filter = "[业务员] = '" & e.User.Name & "'"   '则设置加载条件
        End If
    End If
End If

 


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

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/20 9:20:00 [只看该作者]

1、这个表中确定有业务员列?

2、如果确定有,将你的表传上来,我帮你检查一下原因.


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


加好友 发短信
等级:婴狐 帖子:24 积分:296 威望:0 精华:0 注册:2011/6/7 21:15:00
  发帖心情 Post By:2011/6/21 13:36:00 [只看该作者]

我将“客户登记表”中的“客户名称”做为“客户沟通记录表”的一个列表项目,在过沟条件中我希望“客户登记表”中的“业务员”等于系统登录名称,表达式应该怎样写呢?

 

 

[业务员] = User.Name,是这样,还是在表达式中根本无法这样过滤呢?


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/21 14:06:00 [只看该作者]

在项目事件AfteropenProject设置代码:

 

Tables("表名").Cols("列名").ComboList = DataTables("客户登记表").GetComboListString("客户名称", "业务员 = '" & User.Name & "'")

 

具体参考:

http://help.foxtable.com/topics/1435.htm

 

[此贴子已经被作者于2011-6-21 14:35:23编辑过]

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


加好友 发短信
等级:婴狐 帖子:24 积分:296 威望:0 精华:0 注册:2011/6/7 21:15:00
  发帖心情 Post By:2011/6/21 14:57:00 [只看该作者]

在列的项目列表里还需不需要填呢,我填上去,好像还是不行呢,你看看下面我改的代码:

 

Tables("客户沟通记录").Cols("客户名称").ComboList = DataTables("客户登记表").GetComboListString("客户名称", "业务员 = '" & User.Name & "'")


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/21 14:58:00 [只看该作者]

列表项目不需要填了,有上面的代码就行了。

搞不定就传文件上来。


 回到顶部
总数 14 1 2 下一页