Foxtable(狐表)用户栏目专家坐堂 → 窗口权限设置


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

主题:窗口权限设置

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


加好友 发短信
等级:婴狐 帖子:46 积分:452 威望:0 精华:0 注册:2021/5/14 14:05:00
窗口权限设置  发帖心情 Post By: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

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


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


加好友 发短信
等级:婴狐 帖子:46 积分:452 威望:0 精华:0 注册:2021/5/14 14:05:00
  发帖心情 Post By: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声明成什么?这个实在搞不明白,请老师明示,多谢!


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


加好友 发短信
等级:婴狐 帖子:46 积分:452 威望:0 精华:0 注册:2021/5/14 14:05:00
  发帖心情 Post By:2021/6/3 10:27:00 [显示全部帖子]

老师:这样改也不可以。出现错误提示,怎么解决?
图片点击可在新窗口打开查看

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


加好友 发短信
等级:婴狐 帖子:46 积分:452 威望:0 精华:0 注册:2021/5/14 14:05:00
  发帖心情 Post By: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

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



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


加好友 发短信
等级:婴狐 帖子:46 积分:452 威望:0 精华:0 注册:2021/5/14 14:05:00
  发帖心情 Post By:2021/6/3 11:43:00 [显示全部帖子]

老师:改后,有内容的是不能正常输入了,可是没有内容的,只能输入2个,其它的全不能正常输入,说明在判断是否为空值的时候,不全正确,求指点。

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


加好友 发短信
等级:婴狐 帖子:46 积分:452 威望:0 精华:0 注册:2021/5/14 14:05:00
  发帖心情 Post By:2021/6/3 12:54:00 [显示全部帖子]

老师:代码放在窗口的全局事件的:Enter

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


加好友 发短信
等级:婴狐 帖子:46 积分:452 威望:0 精华:0 注册:2021/5/14 14:05:00
  发帖心情 Post By:2021/6/3 15:53:00 [显示全部帖子]

谢谢老师:不好意思,又有一个新问题:在窗口输入内容时,鼠标离开一个txtBox时,鼠标能否自动跳入下一个待输入框内。怎么设置方可达到此效果,还望老师见教。

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


加好友 发短信
等级:婴狐 帖子:46 积分:452 威望:0 精华:0 注册:2021/5/14 14:05:00
  发帖心情 Post By:2021/6/3 21:11:00 [显示全部帖子]

老师:晚上好!保护数据表不被重复输入的问题解决了,谢谢老师。但是如果输入错误,需要修改怎么办,想增加一个控件,命名:修改,不知怎么写代码,放在哪个事件合适,请指点。

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


加好友 发短信
等级:婴狐 帖子:46 积分:452 威望:0 精华:0 注册:2021/5/14 14:05:00
  发帖心情 Post By:2021/6/4 10:26:00 [显示全部帖子]

谢谢老师
每个txtBOXet 用下面的代码禁止编辑后,再用修改的代码无效
Dim ctl As WinForm.Control = e.Sender
If Tables("样品平行样").Current.isnull("第一针") =True Then  '确认是空值
    ctl.ReadOnly = BooleanEnum.False '可以编辑
Else
    ctl.ReadOnly = BooleanEnum.True '禁止编辑
End If

再在窗口建立一个修改的控件,用下面的代码进行设置后,点“修改”不能修改:

修改按钮

vars("u") = true

 

文本框Enter事件

if vars("u") = true then return

原来的Enter事件代码

 

文本框leave事件

if e.sender.text > "" then vars("u") = false

请问老师,这个怎么处理?
[此贴子已经被作者于2021/6/4 16:38:09编辑过]

 回到顶部