我有一个网格一个 RealEdit ,我设置自动声明是。
名称为 myRealEdit , DataSource 为 myTable ,字段为 myRealField
在修改方法中,我想获取值,我需要执行 IF 控件。
如果值为0,则更改已归档的值如果该值不为0 抛出输入的值并恢复先前的值。
我在修改方法中使用了此代码:
public boolean modified()
{
boolean ret;
real storedValue;
ret = super();
storedValue = myTable.myRealField; // there is another way to get the value ?
if (myRealEdit.valueStr() == "0")
//accept the value
if (!myRealEdit.valueStr() != "0")
{
myRealEdit.realValue(storedValue);
}
return ret;
}
如果值不为0(零),则不恢复先前的值。
我必须使用其他方法吗?还有另一种方法可以获得真正的价值吗?
感谢您的建议,
享受!!
答案 0 :(得分:1)
由于您在答案中使用text = text.replace('\\n', '')
方法,我想您希望将此字段验证放在控件级别(而不是数据源或表级别)。
正如@Jan B. Kjeldsen在评论中建议的那样,您应该使用modified
方法进行此验证。仅当您要添加除字段值修改之外执行的某些逻辑时,才使用validate
方法。
modified
方法可能类似于
validate
答案 1 :(得分:0)
我找到了一种可行的方法,
我使用了这段代码:
public boolean modified()
{
boolean ret;
if (myRealEdit.valueStr() == "0")
{
//accept the value
ret = super();
}
if (!myRealEdit.valueStr() != "0")
{
info("Value not permit");
// nothing to do
}
return ret;
}
这样,当且仅当我的值为0时,我修改了值。
我需要获取或读取刚刚在修改后的方法中从 myRealEdit 插入的Real值。
如果社区插入了评论或改进,则会提供更多信息。