以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  锁定行,录入窗口还可录入和修改  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=78891)

--  作者:刘异
--  发布时间:2015/12/19 17:56:00
--  锁定行,录入窗口还可录入和修改

老师好:

1、我锁定行后,在录入窗口中不可录入和修改,可以达到目的。

2、但是,按帮助在录入窗口中进行授权,比如在,全局事件Enter事件中设置代码:

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

 

即使锁定行,还是可以录入和修改。

 

3、我要的是如果行锁定,对录入窗口授权后,录入窗口也不可录入和修改。这个应该怎么做呢?


--  作者:狐狸爸爸
--  发布时间:2015/12/19 17:59:00
--  

加一个判断吧:

 

Dim ctl As WinForm.Control = e.Sender
If Tables("表A").Current.Locked = True Then \'如果锁定了行
    ctl.Readonly  = BooleanEnum.True \'禁止编辑
Else \'否则进行其他判断
    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
End If


--  作者:刘异
--  发布时间:2015/12/19 18:27:00
--  

多谢


--  作者:time
--  发布时间:2018/5/22 21:44:00
--  
我锁定行后,在录入窗口中不可录入和修改,可以达到目的。
请问您是怎样实现的?

--  作者:有点蓝
--  发布时间:2018/5/22 22:16:00
--  
1、临时去掉锁定:http://www.foxtable.com/webhelp/scr/0427.htm

然后编辑完毕,再重新锁定

2、不用锁定,完全通过代码处理:http://www.foxtable.com/webhelp/scr/2342.htm