Foxtable(狐表)用户栏目专家坐堂 → [原创]菜单代码问题


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

主题:[原创]菜单代码问题

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


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
[原创]菜单代码问题  发帖心情 Post By:2015/1/28 10:16:00 [显示全部帖子]

老师,我在表中设置有“选择行”列为逻辑列和“审核”列为字符列,菜单中有“审核”和“取消审核”按钮,我设置了如下代码,意思是当“选择行”为勾选时,点击“审核”按钮,则在勾选的行的“审核”列填上审核人的姓名,但下面的代码有问题,请老师指点,谢谢。

 

If User.IsRole("投融资_主管") Then
    For Each r As Row In Tables("贷款信息总表")
     If e.DataCol.Name = "选择行" AndAlso e.DataRow("选择行") = True Then
       r("FH") = User.Name
       r.Save()
     End If
    Next
END IF

 

提示有错误。

[此贴子已经被作者于2015-1-28 10:17:02编辑过]

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


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2015/1/28 10:41:00 [显示全部帖子]

表的PrepareEdit事件代码

1、禁止张三和李四编辑第一列、第二列和第三列。
2、禁止王五和赵六编辑第四列、第五列和第六列。

Select Case User.Name
    Case
"张三",
"李四"
       
Select Case e.Col.Name
            Case
"第一列","第二列","第三列"

                e.Cancel =
True
       
End Select
   
Case "王五", "赵六"
       
Select Case e.Col.Name
            Case
"第四列","第五列","第六列"

                e.Cancel =
True
       
End Select
End
Select 
老师,上述代码如果把 e.Cancel = True改为 e.Cancel = FALSE是不是就意思相反,只允许张三李四能编辑第一第二第三列,王五赵六能编辑四五六列呢??

 

还有,下面的代码:

If e.Row("JBDW") <> User.Group OrElse e.Row("录入人") <> User.NAME OrElse E.Row.IsNULL("fh") = False Then '在编辑某行前,会自动判断负责此行的部门列是否和登录用户所属分组相同,如果不同,则取消编辑.
    e.Cancel = True
End If
If e.Col.Name = "选择行" Then
    If User.Name <> "张经理" Then
        e.Cancel = True
    End If
End If
我要把第二段的用户名改为用户角色怎么改呢,

第一段和第二段有冲突吗??

第一段表示只有用户和单位相同,且审核列为空时才能编辑,

第二段表示只有主管才能对“选择行”列进行编辑,并对勾选的行进行审核。

如果有冲突,要使其不冲突,怎么改呢,请老师帮个忙,谢谢!!

 


[此贴子已经被作者于2015-1-28 10:46:41编辑过]

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


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2015/1/28 10:52:00 [显示全部帖子]

以下是引用有点甜在2015-1-28 10:44:00的发言:
If e.Row("JBDW") <> User.Group OrElse e.Row("录入人") <> User.NAME OrElse E.Row.IsNULL("fh") = False Then '在编辑某行前,会自动判断负责此行的部门列是否和登录用户所属分组相同,如果不同,则取消编辑.
    e.Cancel = True
End If
If e.Col.Name = "选择行" Then
    If User.Roles <> "张经理" Then
        e.Cancel = True
    End If
End If

 

感觉这两段放在一起有冲突,实际操作也行不通,除了本人其他人都不能编辑,第二段不起作用,第一段已经把第二段排除了,谢老师帮我解决一下办法,谢谢!!就是第二段是第一段中的例外。。。


[此贴子已经被作者于2015-1-28 10:55:08编辑过]

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


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2015/1/28 11:02:00 [显示全部帖子]

但是老师,改成这样后,在审核人审核之前非本人编辑的行又可以被其他人进行编辑修改啊
[此贴子已经被作者于2015-1-28 11:02:55编辑过]

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


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2015/1/28 11:09:00 [显示全部帖子]

我的逻辑是:

比如表A有一列是“选择行”列为逻辑值列,还有一列是“审核”列,除“选择行”列当编辑人是经理时,他可以编辑“选择行”列,并进行审核,但他不能编辑修改其他列,其他列由经办人编辑的,经理只是审核作用,根据“选择行”的数量审核哪些行,但对其他列的值是不能修改的。当经理审核后,经办人也不能进行任何编辑,除非在审核前或取消审核后,经办人可以编辑。经理在未审核的条件下可以编辑“选择行”列,其他任何人任何条件下是不能编辑的,只能查看。

[此贴子已经被作者于2015-1-28 11:11:26编辑过]

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


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2015/1/28 11:33:00 [显示全部帖子]

太感谢了

 回到顶部