以文本方式查看主题 - 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 不是通过使用人员的权限来设置,而是通过该数据表的行有没有内容来设置。 |
-- 作者:有点蓝 -- 发布时间: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 显示错误: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 -- 代码放在什么事件的? |