Foxtable(狐表)用户栏目专家坐堂 → MYSQL源限制按键问题


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

主题:MYSQL源限制按键问题

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
MYSQL源限制按键问题  发帖心情 Post By:2023/8/26 15:48:00 [显示全部帖子]

MYSQL源   限制按键问题,
需求:如果主表的主表单号为空,明细表的明细单号为空时,窗口上的新增按键,可以新增,新增按键为可编辑,窗口可关闭,否则,窗口上的新增按键,不可以新增,新增按键为不可编辑,窗口不可关闭。如何实现?

注:明细表的明细单号,如果10条记录,须10条都为空或10条不为空,只要有一条记录不满足,则所条件不满足

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/8/29 18:52:00 [显示全部帖子]

if e.Table.Current.isnull("主表单号") andalso Tables("明细表").compute("count(明细单号)","明细单号is not null") = 0 then
e.form.controls("新增").enabled = true
else
e.form.controls("新增").enabled = false
endif
上面代码报错,如何解决?

NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:登记主表,CurrentChanged
详细错误信息:
未将对象引用设置到对象的实例。






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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/8/29 20:12:00 [显示全部帖子]


If e.Table.Current Is Nothing Then '如果Current为Nothing
    Return '则返回
End
 If

if e.Table.Current.isnull("主表单号") andalso Tables("明细表").compute("count(明细单号)","明细单号is not null") = 0 then
e.form.controls("新增").enabled = true
else
e.form.controls("新增").enabled = false
endif
执行上面代码,调试是红代码报错,如何解决?

NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:登记主表,CurrentChanged
详细错误信息:
未将对象引用设置到对象的实例。

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/8/30 0:50:00 [显示全部帖子]

需求:如果明细表的明细单号为空时,窗口上的新增按键为不可编辑,否则,窗口上的新增按键,可以新增
注:明细表的明细单号,如果10条记录,须10条都为空或10条不为空,只要有一条记录不满足,则所条件不满足

执行下面代码,没报错,但失效,达不到需求,如何解决?
'If DataTables("登记明细").compute("count(订单单号)", "订单单号 is not null") > 0 Then
'    forms("登记窗口").controls("新增").enabled = True
'    forms("登记窗口").controls("保存").enabled = True
    
'Else
'    forms("登记窗口").controls("新增").enabled = False
'    forms("登记窗口").controls("保存").enabled = False
    
'End If

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/8/30 14:42:00 [显示全部帖子]

老师,模拟关联,当前窗口的当前明细表,比如有10条记录须10条不为空,才能新增按键为可编辑 ,否则,新增按键为不可编辑,部分为空或有一条为空,新增按键为不可编辑



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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/8/30 16:32:00 [显示全部帖子]

一、If DataTables("登记明细").compute("count(订单单号)", "订单单号 is not null") > 0 Then

二、If DataTables("登记明细").compute("count(订单单号)", "订单单号 is null") = 0 Then
一个订单单号不为0,一个订单单号为0?这是个意思?

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/8/30 16:48:00 [显示全部帖子]

代码放在窗口的全局事件,alueChanged事件,无效

执行下面代码,窗口打开,登记明细表的订单单号的数据为空,不为空,都可编辑,不是需求
If DataTables("登记明细").compute("count(订单单号)", "订单单号 is null") = 0 Then
'    forms("登记窗口").controls("新增").enabled = True
'    forms("登记窗口").controls("保存").enabled = True
    
'Else
'    forms("登记窗口").controls("新增").enabled = False
'    forms("登记窗口").controls("保存").enabled = False
    
'End If

执行下面代码,窗口打开,登记明细表的订单单号的数据不为空,都可编辑,不是需求
If DataTables("登记明细").compute("count(订单单号)", "订单单号 is null") = 0 Then
'    forms("登记窗口").controls("新增").enabled = False
'    forms("登记窗口").controls("保存").enabled = False
    
'Else
'    forms("登记窗口").controls("新增").enabled = True
'    forms("登记窗口").controls("保存").enabled = True
    
'End If





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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/9/1 12:49:00 [显示全部帖子]

老师,测试,还是失效


[此贴子已经被作者于2023/9/1 14:48:10编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/9/1 15:52:00 [显示全部帖子]

BeforeClose

在关闭窗口前执行。

e参数属性:

Form:       表示要关闭的窗口
Cancel:     逻辑型,设为True,将禁止关闭窗口。
CloseMode:  整数型,如果是通过Form的Close方法关闭窗口,则返回1,否则返回0。


下面这话,是不建议使用?

如果任何时候Cancel参数都返回True的话,那么窗口将永远不能关闭,直到强行中止进程,所以在代码中使用Cancel参数的时候,一定要慎重。




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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/9/1 16:10:00 [显示全部帖子]

需求:如果登记明细的订单单号为空,提示录入,不能关闭窗口,如果登记明细的订单单号为不空,则可以关闭窗口

执行下面代码,窗口将永远不能关闭,如何解决?

If DataTables("登记明细").compute("count(订单单号)", "订单单号 is null") = 0 Then
    MessageBox.Show("请输入订单单号!", "提示", MessageBoxButtons.OK , MessageBoxIcon.Information)
    e.Cancel = True'
End If

 回到顶部
总数 13 1 2 下一页