VFP - FoxPro - 文本框:如何区分空输入和 0 输入



我正在维护一个遗留的VFP应用程序。

有一个用于数字输入的文本框。 在验证事件中,我想检查用户是否输入了数字或将文本框留空。

如何检测用户离开字段时是否没有字符/数字?

不幸的是,我无法区分用户是输入了 0 还是完全删除了文本框中的字符。This.Value 在这两种情况下都是 0,VARTYPE(This.Value( 是 "N",EMPTY(This.Value( 是 .T。

背景:后来真正输入的数字应该作为数字进入数据库,而删除的输入字段应该存储为 .零。(是的,相应的表列接受空值(

你没有说文本框是否绑定到表列(即 ControlSource = mytable.myfield(,但我假设它是。

我认为如果文本框绑定到列,您将无法执行此操作。您必须取消绑定它,并手动处理在记录导航等上填充它。

然后,您可以按如下方式进行检查:

在 TextBox init(( 方法中:

this.NullDisplay = ''
return .t.

在 Valid(( 方法中:

Local llReturn
* -- In case it's a subclassed TextBox
llReturn = DoDefault()
* -- Assumes that the record pointer is on the right record in the table!
If llReturn 
If alltrim(this.Text) == ""
replace myfield with .null. in mytable
Else
replace myfield with Val(this.Text) in mytable
endif   
EndIf
Return llReturn     

相关内容

  • 没有找到相关文章

最新更新