以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 代码的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=56441) |
-- 作者:爱相随 -- 发布时间:2014/9/5 10:49:00 -- 代码的问题 老师,我想在项目事件项目的AfterOpenProject事件中设置代码,使打开的表ZJSQB,根据表中“付款单位”列的值和登录用户的角色不同看不见不同的列。比如:当ZJSQB表的“付款单位”列的值是“高科控股集团”,且登录的用户的角色是“子公司财务”时,则他看不见“财务1”“财务2”“财务3”这三列,当“付款单位”列的值是其他值时,则用户角色为“总工办”或“集团财务”“业务副总”“资金副总”“董事长”等看不见“审核”“意见”“第十列”“第十一列”。下面的代码不对,错在哪里呢,请老师指导 If e.DataTableName = "ZJSQB" Then’如果打开的是ZJSQB If e.DataCol.Name
= "付款单位" Then‘如果变化的是付款单位列 Dim K As String = e.DataRow("付款单位")‘定义为字符串 Select Case
K Case
"高科控股集团" If User.IsRole ("子公司财务") Then Tables("ZJSQB").Cols.Remove("财务1") Tables("ZJSQB").Cols.Remove("财务4") If User.IsRole( "总工办") OrElse User.IsRole( "集团财务")OrElse
User.IsRole( "业务副总")OrElse User.IsRole(
"资金副总")OrElse User.IsRole( "集团董事长")Then Tables("ZJSQB").Cols.Remove("总工办") Tables("ZJSQB").Cols.Remove("JTZGB3")
Tables("ZJSQB").Cols.Remove("集团财务1") Tables("ZJSQB").Cols.Remove("JTCWB3") Tables("ZJSQB").Cols.Remove("集团副总") Tables("ZJSQB").Cols.Remove("董事长2") Tables("ZJSQB").Cols.Remove("董事长3") END IF END SELECT END IF END IF
|
-- 作者:有点甜 -- 发布时间:2014/9/5 10:55:00 -- 无法做到你这种限制的,这样做也是没有意义的。
每一行的单位都可以不同,点不同行,那么就能看到不同的列,无法做到你预想的看不到数据的效果。 |
-- 作者:爱相随 -- 发布时间:2014/9/5 10:57:00 -- 那如果改成:当ZJSQB表的“付款单位”列的值是“高科控股集团”,且登录的用户的角色是“子公司财务”时,则他不能编辑“财务1”“财务2”“财务3”这三列,当“付款单位”列的值是其他值时,则用户角色为“总工办”或“集团财务”“业务副总”“资金副总”“董事长”等不能编辑“审核”“意见”“第十列”“第十一列”。且不能编辑的列变成灰色,这样可以吗?? [此贴子已经被作者于2014-9-5 10:58:00编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/9/5 11:01:00 -- 去编写prepareEdit事件
http://www.foxtable.com/help/topics/2255.htm
|
-- 作者:爱相随 -- 发布时间:2014/9/5 11:06:00 -- 这样做是是使流程能够通用,像我们单位的流程确实有点复杂,我们公司的项目分两种,一种是由集团核算,但现场管理是由各子公司管理,还有一种就是由子公司核算管理的项目。如果由子公司核算管理的项目,则审核流程是不经过集团总部的相关部门,但如果是由集团核算,子公司管理的项目,则是由子公司申请发起流程,子公司财务部门不参加审批流程,子公司的其他部门要参加流程,然后集团总部相关部门要参加流程。这样就是,登录人所属的工作组是子公司,而付款单位是集团总部,所属工作组不一致。审批流程就有区别。付款单位和发起单位是一致的,一般不通过集团相关部门审核;如果发起是子公司,付款由集团总部付款的,则前面的流程减掉子公司的财务部门,后面再加上集团的相关部门。 [此贴子已经被作者于2014-9-5 11:08:53编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/9/5 11:08:00 -- 自己看4楼。 |
-- 作者:有点甜 -- 发布时间:2014/9/5 11:11:00 -- 如果是要隐藏列,就去编写表的currenChanged事件
Dim r As Row = e.Table.Current [此贴子已经被作者于2014-9-5 11:11:55编辑过]
|
-- 作者:爱相随 -- 发布时间:2014/9/5 14:07:00 -- 老师,我想通过菜单功能打开相关的表,比如菜单按钮是项目信息,点击后则打开项目信息表,其他表不显示,请问怎么处理,谢谢 |
-- 作者:有点甜 -- 发布时间:2014/9/5 14:38:00 -- For Each t As Table In Tables |