如何在Form的Grid中从RealEdit获取和设置Real值?

时间:2015-08-28 07:00:17

标签: forms axapta dynamics-ax-2012 x++

我有一个网格一个 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(零),则不恢复先前的值。

我必须使用其他方法吗?还有另一种方法可以获得真正的价值吗?

感谢您的建议,

享受!!

2 个答案:

答案 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值。

如果社区插入了评论或改进,则会提供更多信息。