Foxtable(狐表)用户栏目专家坐堂 → 窗口录入数据当前行权限


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

主题:窗口录入数据当前行权限

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


加好友 发短信
等级:狐精 帖子:3082 积分:20596 威望:0 精华:0 注册:2016/3/28 16:57:00
窗口录入数据当前行权限  发帖心情 Post By:2017/3/13 16:59:00 [只看该作者]

老师,所有数据都是窗口录入,逻辑列为Ture时,只有管理员可以编辑,这个代码怎么写啊?

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


加好友 发短信
等级:六尾狐 帖子:1242 积分:9386 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By:2017/3/13 17:10:00 [只看该作者]

表的PrepareEdit事件代码:


If e.Row("逻辑") = True AndAlso User.Group <> "管理员" Then
    e.Cancel = True
End
If


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


加好友 发短信
等级:狐精 帖子:3082 积分:20596 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2017/3/13 18:16:00 [只看该作者]

我所有数据都是窗口录入,数据表本就是禁止编辑的,这样写不起作用。
帮助里面是这样的:
Dim ctl As WinForm.Control = e.Sender
Select
 Case ctl.BindingField 
    Case 
"
A.第一列""A.第二列""A.第三列"
        If User.Name = 
"
张三" Then
            ctl.ReadOnly = BooleanEnum.False 
'
允许编辑
        Else
            ctl.ReadOnly = BooleanEnum.True 
'
禁止编辑
        End If
    Case 
"
A.第四列""A.第五列""A.第六列"
        If User.Name = 
"
李四" Then
            ctl.ReadOnly = BooleanEnum.False 
'
允许编辑
        Else
            ctl.ReadOnly = BooleanEnum.True 
'
禁止编辑
        End 
If

End
 Select
要是我列很多,代码怎么简化啊?
[此贴子已经被作者于2017/3/13 18:19:33编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/13 19:00:00 [只看该作者]

Enter事件

 

If Tables("表A").current("第一列") = True Then
    e.sender.ReadOnly = BooleanEnum.True '不允许编辑
Else
    e.sender.ReadOnly = BooleanEnum.False '允许编辑
End If


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


加好友 发短信
等级:狐精 帖子:3082 积分:20596 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2017/3/14 10:02:00 [只看该作者]

有点色老师,这样没问题了,我还有两列保存时是默认当前用户和当前时间的,即使通过窗口修改不了,但是我点了保存后,登记人和登记日期还是会修改为当前用户,保存按钮代码如下:

 

With Tables("报名登记表")
    If .Current IsNot Nothing Then
        .Current.Save()
    End If
End With

Dim r As Row = Tables("报名登记表").Current
    r("登记人") =  _UserXingMing
    r("登记日期") = Date.Now

Forms("报名登记窗口").Close()

[此贴子已经被作者于2017/3/14 10:02:07编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106674 积分:542559 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/14 11:16:00 [只看该作者]

同样加上判断咯

 

if 有权限

Dim r As Row = Tables("报名登记表").Current
    r("登记人") =  _UserXingMing
    r("登记日期") = Date.Now

endif


 回到顶部