以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]加载时显示合法数据 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=23898) |
||||
-- 作者:chnfo -- 发布时间:2012/9/23 21:43:00 -- [求助]加载时显示合法数据 使用条件:局域网内使用。 使用场景:几个部门都要登记发生的办公费用。 要求:各个部门进入之后,只能看到、而且只能登记本部门的费用。 如果设计一个窗口,通过窗口的加载条件是可以做到的。 不过做窗口呢,要增加一些代码,不用窗口,能不能做到?
|
||||
-- 作者:小猪鑫鑫 -- 发布时间:2012/9/24 9:21:00 -- 楼主这个是可以做到的,问题的前题是您要先启用自定义登录系统才行,也就是说给每个人分配帐户(_Username)与组别(_UserGroup),然后在您需要统计的部门费用表中增加一列部门列,这样任何一个人登录,他的所属部门被保存到了_UserGroup中,所以我们就可以在部门费用表中的 PrepareEdit 事件中填加代码
If e.Col.Name = "部门" AndAlso e.Row("部门") <> _UserGroup Then
这样不是一个部门的人就不能处理该部门的数据了
然后填加的时候,你就在 DataRowAdding 事件中填加 e.datarow("部门") =_UseGroup 这样他填加的也是本部门的数据,试试吧,看看行不行 |
||||
-- 作者:lin_hailun -- 发布时间:2012/9/24 9:43:00 -- 使用条件:局域网内使用。 使用场景:几个部门都要登记发生的办公费用。 要求:各个部门进入之后,只能看到、而且只能登记本部门的费用。
用户登录以后,根据用户的信息,决定显示的数据数据就可以了。 |
||||
-- 作者:chnfo -- 发布时间:2012/9/24 10:28:00 -- 上面的做法做到了只能登记本部门的记录,但好象不能做到“只能看到”本部门的记录。 我想,是不是要在项目属性里的MainTableChanged事件里,加上代码过滤就OK If MainTable.Name = "收货单" Then Tables("收货单").Filter = "OrgID = \'" & UserGroup & "\'" End If 这样,登陆的用户根本看不到其他机构登记的费用了。 [此贴子已经被作者于2012-9-24 10:55:51编辑过]
|