以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  窗口录入数据当前行权限  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=97504)

--  作者:cd_tdh
--  发布时间:2017/3/13 16:59:00
--  窗口录入数据当前行权限
老师,所有数据都是窗口录入,逻辑列为Ture时,只有管理员可以编辑,这个代码怎么写啊?
--  作者:wyz20130512
--  发布时间:2017/3/13 17:10:00
--  

表的PrepareEdit事件代码:


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


--  作者:cd_tdh
--  发布时间: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编辑过]

--  作者:有点色
--  发布时间: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
--  发布时间: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编辑过]

--  作者:有点蓝
--  发布时间:2017/3/14 11:16:00
--  

同样加上判断咯

 

if 有权限

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

endif