以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  用户权限问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=65944)

--  作者:ayiken
--  发布时间:2015/3/26 10:45:00
--  用户权限问题
老师你好!
在例子中设了两个用户名,一名是医生,一名是护士,医生组只能编辑“住院记录”和“上级医师查房记录”等两个表,护士只能编辑“护理评估和护理记录单”等两个表,还有他们(医生和护士)按部门分类,例子中有个“部门管理表”(可以按部门编号)来区别。
请问用户角色和权限方面的代码怎样写?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:病历maxeh.rar


--  作者:有点甜
--  发布时间:2015/3/26 10:47:00
--  

 看完开发指南,权限管理

 

http://www.foxtable.com/help/topics/2253.htm

 


--  作者:ayiken
--  发布时间:2015/3/26 11:01:00
--  
这个说明我都看了几遍,说实话写代码方面的知识在初步阶段,所以需要老师的帮助,恳求看看我的例子
一楼的例子不全,请看看这个例子
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:病历maxeh.rar



--  作者:有点甜
--  发布时间:2015/3/26 11:02:00
--  

 LoadUserSetting加入类似代码

 

[此贴子已经被作者于2015/3/26 11:06:51编辑过]

--  作者:ayiken
--  发布时间:2015/3/26 11:05:00
--  
谢谢
--  作者:有点甜
--  发布时间:2015/3/26 11:07:00
--  

 代码写错了,改成这样

 

If user.Type <> UserTypeEnum.Developer Then
    For Each dt  As DataTable In DataTables
        dt.AllowEdit = False
    Next
    If user.Roles = "医生平台" Then
        DataTables("住院记录").AllowEdit = True
        DataTables("上级医师查房记录").AllowEdit = True
    Else If user.Roles = "护士平台" Then
        DataTables("护理评估").AllowEdit = True
        DataTables("护理记录单").AllowEdit = True
    End If
End If


--  作者:ayiken
--  发布时间:2015/3/26 13:03:00
--  
用上面代码以医生用户进入(例子中医生用户名“马合萨提”)还是可编辑护士平台的表,我想的是医生用户进入的时候不显示护士平台相关的表
(我设了两个用户名:马合萨提-组-医生;角色-医生平台。古丽娜孜-组-护士;角色护士平台,密码:123)

--  作者:有点甜
--  发布时间:2015/3/26 14:10:00
--  

If user.Type <> UserTypeEnum.Developer Then
    For Each dt  As Table In Tables
        dt.AllowEdit = False
       
        dt.Visible = False
    Next
    If user.Roles = "医生平台" Then
        Tables("住院记录").AllowEdit = True
        Tables("上级医师查房记录").AllowEdit = True
       
        Tables("住院记录").Visible = True
        Tables("上级医师查房记录").Visible = True
       
    Else If user.Roles = "护士平台" Then
        Tables("护理评估").AllowEdit = True
        Tables("护理记录单").AllowEdit = True
       
        Tables("护理评估").Visible = True
        Tables("护理记录单").Visible = True
    End If
End If


--  作者:ayiken
--  发布时间:2015/3/26 16:27:00
--  
以上代码切换用户时管用,但是在第一次用医生(护士)用户名登录时,起不了作用(显示出所有表),我把上满代码填写在项目属性中的LoadUserSetting里
--  作者:有点甜
--  发布时间:2015/3/26 16:36:00
--  

 呃,测试,是没有问题的,可能是你afteropenproject的代码影响了。

 

 删除里面的代码,留一句

 

BaseMainform.Controls("C1Ribbon1").Font = New Font("TilKom Ekran Qara",9)