Search code examples
formsaxaptadynamics-ax-2012x++

How to get and set Real value from RealEdit in a Form's Grid ?


I have in a Grid a RealEdit , I set the autodeclaration YES.

The name is myRealEdit , DataSource is myTable and the Field is myRealField.

In the modified method I want to get the value, I need to do a IF control.

IF the value is 0 change the Filed's value IF the value is not 0 throws the value entered and restores the previous value.

I used this code, in modified method:

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;
}

If the value is not 0 (zero) don't restore the previous value.

I have to use another method ? There is another way to get the real value ?

Thanks in advice,

enjoy!!


Solution

  • Since you are using the modified method in your answer, I suppose you want to put this field validation on the control level (instead of the datasource or table level).

    As @Jan B. Kjeldsen suggested in his comment, you should use the validate method to do this validation. Use the modified method only if you want to add some logic that is executed in addition to the field value modification.

    The validate method could look similar to

    public boolean validate()
    {
        return this.realValue() == 0 && super() || checkFailed(strFmt("Value %1 is not permitted", this.realValue())); 
        // TODO please replace this with a Label and explain to the user why the value is not permitted and what he or she can do to resolve this
    }