Foxtable(狐表)用户栏目专家坐堂 → 如何用表的字段限制窗口的按键?


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

主题:如何用表的字段限制窗口的按键?

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
如何用表的字段限制窗口的按键?  发帖心情 Post By:2023/3/23 22:01:00 [只看该作者]

如何用表的字段限制窗口的按键?需求如下
如果 表A的(审核)字段=True
窗口1的按键1,为可编辑
窗口1的按键2,为不可编辑
窗口1的按键3,为不可编辑
否则
窗口1的按键1,为不可编辑
窗口1的按键2,为可编辑
窗口1的按键3,为可编辑

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


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/3/23 22:17:00 [只看该作者]

表A,currentchanged事件

if e.table.current isnot nothing andalso forms("窗口1").opened then
if e.table.current("审核")=true
forms("窗口1").controls("按键1").enabled = true
forms("窗口1").controls("按键2").enabled = false
……
else
forms("窗口1").controls("按键1").enabled = false
forms("窗口1").controls("按键2").enabled = true
……
end if
end if

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/3/24 9:56:00 [只看该作者]

'表A,PrepareEdit事件

If e.Table.current IsNot Nothing AndAlso forms("窗口1").opened Then
    If e.Table.current("审核") = True Then
        forms("窗口1").controls("按键1").enabled = True
        forms("窗口1").controls("按键2").enabled = False
        forms("窗口1").controls("按键3").enabled = False
    Else
        forms("窗口1").controls("按键1").enabled = False
        forms("窗口1").controls("按键2").enabled = True
        forms("窗口1").controls("按键3").enabled = True
    End If
End If

老师,我想,要表A的审核,是全部审核,生效,如何实现?


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


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/3/24 10:21:00 [只看该作者]

2楼已经说了这种代码放到currentchanged事件,不要乱用

要表A的审核,是全部审核,生效,如何实现?】没看懂什么意思

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/3/24 11:18:00 [只看该作者]


此主题相关图片如下:窗口限制.jpg
按此在新窗口浏览图片

2楼已经说了这种代码放到currentchanged事件.放在那里使用比较不方便,放在PrepareEdit事件是可以用,但条件不满足

需求:打开窗口1后检测到表A的审核列是否全True时,对窗口1上的按键1、按键2、按键3进行限制
如果 表A的(审核)字段=True
窗口1的按键1,为可编辑
窗口1的按键2,为不可编辑
窗口1的按键3,为不可编辑
否则
窗口1的按键1,为不可编辑
窗口1的按键2,为可编辑
窗口1的按键3,为可编辑

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


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/3/24 11:39:00 [只看该作者]

datacolchanged事件

if e.datacol.name = "审核" andalso forms("窗口1").opened then
if e.newvalue = false orelse e.datatable.compute("count(审核)","审核=false") > 0 then
forms("窗口1").controls("按键1").enabled = false
……
else
forms("窗口1").controls("按键1").enabled = true
……
end if
end if

窗口afterload事件
if datatables("表A").compute("count(审核)","审核=false") > 0 then
forms("窗口1").controls("按键1").enabled = false
……
else
forms("窗口1").controls("按键1").enabled = true
……
end if
[此贴子已经被作者于2023/3/24 11:40:22编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/3/24 12:14:00 [只看该作者]

老师,测试一下,全审核列=全true执行,效果是可以, 审核列=false,只要有一个记录是审核列=false就生效,不是全审核列=全false,才生效。
如何实现全审核列=全false,才生效?就是表A的全审核列=全true时生效或全审核列=全false时生效

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


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/3/24 13:38:00 [只看该作者]

悖论,这个逻辑是冲突的。不可能实现

 回到顶部