Foxtable(狐表)用户栏目专家坐堂 → [求助]如何判断可视化授权用户不可见的列不能取消隐藏?


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

主题:[求助]如何判断可视化授权用户不可见的列不能取消隐藏?

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


加好友 发短信
等级:一尾狐 帖子:418 积分:3209 威望:0 精华:0 注册:2010/2/24 13:33:00
[求助]如何判断可视化授权用户不可见的列不能取消隐藏?  发帖心情 Post By:2010/7/14 18:39:00 [显示全部帖子]

各位老师:

可视化授权中有不可见权限的控制,但对于列,用户可以取消隐藏即可破解此不可见,请问如何批量做真的不可见呢?

我查了咱论坛,狐爸说过用Cols

方法名 说明
Remove 从Table中移除指定的列
Contains 用于判断是否包括指定名称的Col

来解决,这样需要都写出列的列名来,请问老师,能不能指点一些思路,对于表中用户很多、列很多的情况下,能够用最短的代码来完成这种 工作呢?如果能帮写段代码那就更好了,呵呵,万分感谢!

还有狐爸说过有好多方法,能不能给菜鸟多指点一些?

还有用禁菜单的方法,但用户有时为了方便查看不同的列,还有用户真用到隐藏和取消隐藏功能。

能不能有比较完美的方法呢?

 

另外狐爸下一版开发版能不能默认禁用 禁用开发和禁止设置数据源?菜鸟一不小心忘了关闭这两个功能,一是用户查看到了数据库连接密码,二是用户居然通过调取外部表来改动数据...有够BT...汗...

另外能不能通过程序的版本号来回收旧程序,指定哪版在有新版发布后禁止旧版程序连接数据呢?

 

通过慢慢的学习狐表越发感觉狐表越来越强大,能实现的东东太多了,呵呵...前几天微软公司来电话,问我们用什么MS的OFFICE产品,我说用的是fOXTABLE,解决了MS的共享问题,我还告诉他们咱们论坛地址呢。呵呵,微软说,那真要去看看喽,微软会虚心学习好的软件的,呵呵...

[此贴子已经被作者于2010-7-14 18:43:52编辑过]

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


加好友 发短信
等级:一尾狐 帖子:418 积分:3209 威望:0 精华:0 注册:2010/2/24 13:33:00
  发帖心情 Post By:2010/7/15 10:53:00 [显示全部帖子]

感谢楼上两位老师,看懂了狐爸给提供的方法了,加了行

Tables(dr("表名")).Cols.Remove((dr("列名"))

我测试一下...

 

3楼LXL老师说的把新版本存到数据库里面,是发布过的程序?还是程序版本号呢?能不能帮忙举个小例呢?谢谢老师了...


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


加好友 发短信
等级:一尾狐 帖子:418 积分:3209 威望:0 精华:0 注册:2010/2/24 13:33:00
  发帖心情 Post By:2010/7/15 21:18:00 [显示全部帖子]


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

狐爸,我用您提供的代码,出错了,这是为何?


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


加好友 发短信
等级:一尾狐 帖子:418 积分:3209 威望:0 精华:0 注册:2010/2/24 13:33:00
  发帖心情 Post By:2010/7/15 21:19:00 [显示全部帖子]

哦,原来是这样啊,等明天到单位试下...

也就是以后发布的都写上AfterOpenProject事件中检查数据库中的版本号?

 

[此贴子已经被作者于2010-7-15 21:20:37编辑过]

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


加好友 发短信
等级:一尾狐 帖子:418 积分:3209 威望:0 精华:0 注册:2010/2/24 13:33:00
  发帖心情 Post By:2010/7/16 9:24:00 [显示全部帖子]

哦 ,看到了,呵呵Remove((dr("列名"))
一直在找右括号,没发现原来是左括号-_-||| 我需要提高认真度了...再次谢谢狐爸

((


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


加好友 发短信
等级:一尾狐 帖子:418 积分:3209 威望:0 精华:0 注册:2010/2/24 13:33:00
  发帖心情 Post By:2010/7/16 10:36:00 [显示全部帖子]

If User.Type = UserTypeEnum.User Then
    For Each dr As DataRow In DataTables("授权表").Select("用户名 = '" & User.Name & "'" )
        If
dr.IsNull("列名")
Then
       
    Tables(dr("表名")).Visible = Not dr("不可见")
            Tables
(dr("表名")).AllowEdit = Not dr("不可编辑")

        Else
            If Tables(dr("表名")).Cols.Contains(dr("列名"))= True Then
                Tables(dr("表名")).Cols(dr("列名")).AllowEdit = Not dr("不可编辑"
               
Tables(dr("表名")).Cols.Remove((dr("列名"))
            End If
        End
If
    Next
End
If

狐爸,我用以上代码,怎么列除了我做了个表达式引用 _Identify自动编号的列加载了,其他的都不加载了呢?

这个是不是判断列不可见,就不加载了呢?

[此贴子已经被作者于2010-7-16 10:37:26编辑过]

 回到顶部