以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]窗口输入光标控制与如何限制字符数  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=115323)

--  作者:hrlong
--  发布时间:2018/3/5 11:33:00
--  [求助]窗口输入光标控制与如何限制字符数

通过下面的窗口输入数据,输入‘系统单号’,回车,输入‘配货员工’,回车,光标回到‘系统单号’
系统订单列里面有设置‘禁止重复’,输入重复数据会报警。报警后,光标会跳到‘配货员工’;

请问老师
如何设置,使得,输入重复数据报警时,关闭报警窗口后,光标还是停留在‘系统单号’输入框?
配货员工那里怎么限制输入字符数?比如限制字符数为6,输入超过6个字符,回车后,跳出报警“配货员工输入错误,请重新输入”,关闭报警窗口后,光标还是停留在‘配货员工’输入框




===================================================================================

图片点击可在新窗口打开查看此主题相关图片如下:问题.png
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2018/3/5 11:37:00
--  

编写 validating事件

 

http://www.foxtable.com/webhelp/scr/0736.htm

 


--  作者:hrlong
--  发布时间:2018/3/5 12:44:00
--  
我把代码复制到那个事件中了,
‘系统单号’输入框能成功实现;
但是,‘配货员工’那里会自动截短到6个字符填入数据库;
比如输入1234567,会报警说字符超过,将截短到6个,确定后,光标被强制留在‘配货员工’输入框;但是123456这个已经填入数据库了,并且已经增加了一行;

ps.
我在leave事件加了

 Tables("配货").AddNew()

增加一行的代码




--  作者:有点甜
--  发布时间:2018/3/5 14:20:00
--  

1、贴出你写的代码,并不是照搬帮助文档的代码啊。

 

2、代码改成如

 

If e.sender.Text > "" AndAlso e.sender.text.length > 6 Then

    msgbox("输入错误")

    e.cancel = true

End If


--  作者:hrlong
--  发布时间:2018/3/5 17:21:00
--  

谢谢,我把你发的代码改成这样,可以实现了




If e.sender.Text > "" AndAlso e.sender.text.length < 6 Then

    Tables("配货").AddNew()

    Else

    msgbox("输入错误")

    e.cancel = True

End If