以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口权限设置  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=169098)

--  作者:xgzcx
--  发布时间:2021/6/2 16:28:00
--  窗口权限设置
老师:请教一个窗口权限设置问题。数据表中的行有内容时,怎么通过窗口权限来决定该行不能输入内容。说明书介绍了数据表设置权限的方式,窗口不可以。

Dim txtBox As WinForm.TextBox
txtBox = e.Form.Controls(
"txtSale")
If
User.Group = "录入员" Then
    txtBox.ReadOnly = BooleanEnum.
True
Else

    txtBox.ReadOnly = BooleanEnum.Default

End
If

不是通过使用人员的权限来设置,而是通过该数据表的行有没有内容来设置。


--  作者:有点蓝
--  发布时间:2021/6/2 16:31:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=166142&replyID=139816&skin=1

If txtBox.text > "" Then

--  作者:xgzcx
--  发布时间:2021/6/3 9:17:00
--  
老师:早上好!几种方法我都反复试过,结果是不可以。对于窗口中输入的权限管理,还是表格的权限管理,整个都是从用户的角度来进行的。但是对于数据已经记录的,不能在下一次输入数据时将原有数据覆盖的保护,这个是软件最基本的保障。

Dim ctl As WinForm.Control = e.Sender
Select
Case ctl.BindingField
    Case
"
A.第一列", "A.第二列", "A.第三列"
        If txtBox.text >"" 
Then
            ctl.ReadOnly = BooleanEnum.False
\'
允许编辑
        Else
            ctl.ReadOnly = BooleanEnum.True
\'
禁止编辑
        End If
End Select

显示错误:txtBox声明成什么?这个实在搞不明白,请老师明示,多谢!


--  作者:有点蓝
--  发布时间:2021/6/3 9:21:00
--  
Dim ctl As WinForm.Control = e.Sender
Select
 Case ctl.BindingField
    Case 
"
A.第一列""A.第二列""A.第三列"
        If ctl.text ="" 
Then
            ctl.ReadOnly = BooleanEnum.False 
\'
允许编辑
        Else
            ctl.ReadOnly = BooleanEnum.True 
\'
禁止编辑
        End If
End Select
[此贴子已经被作者于2021/6/3 9:21:51编辑过]

--  作者:xgzcx
--  发布时间:2021/6/3 10:27:00
--  
老师:这样改也不可以。出现错误提示,怎么解决?
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2021/6/3 10:39:00
--  
Dim ctl As WinForm.textbox = e.Sender


--  作者:xgzcx
--  发布时间:2021/6/3 10:56:00
--  
老师:改了,还是不可以,出现错误:
老师:我用这个代码之后窗口是不能输入了,但是增加行时又报错了。所有的窗口都不能输入,目的达到了。

Dim ctl As WinForm.Control = e.Sender

If Tables("表A").Current.DataRow.SQLGetValue("某列").Gettype.Name = "DBNull" Then  \'确认是空值

    ctl.ReadOnly = BooleanEnum.False \'可以编辑

Else

    ctl.ReadOnly = BooleanEnum.True \'禁止编辑

End If

老师:这个问题出在哪儿,不明白。



--  作者:有点蓝
--  发布时间:2021/6/3 11:05:00
--  

Dim ctl As WinForm.Control = e.Sender

If Tables("表A").Current.isnull("某列") =true Then  \'确认是空值

    ctl.ReadOnly = BooleanEnum.False \'可以编辑

Else

    ctl.ReadOnly = BooleanEnum.True \'禁止编辑

End If


--  作者:xgzcx
--  发布时间:2021/6/3 11:43:00
--  
老师:改后,有内容的是不能正常输入了,可是没有内容的,只能输入2个,其它的全不能正常输入,说明在判断是否为空值的时候,不全正确,求指点。
--  作者:有点蓝
--  发布时间:2021/6/3 11:45:00
--  
代码放在什么事件的?