Передача объекта управления в метод - PullRequest
0 голосов
/ 21 марта 2012

Я занимаюсь разработкой в ​​Ax 2012. У меня есть элементы управления stringEdit в форме, которая содержит информацию того же типа и совместно использует EDT. Я делаю проверку на EDT в классе. Я вызываю класс из метода проверки в форме. Я использую тот же метод в форме для всех элементов управления stringEdit, которые нуждаются в этой проверке. Я выбрасываю метод проверки в форме из метода проверки каждого элемента управления.

Мой вопрос: как передать измененный (и требующий проверки) элемент управления методу проверки? Мой метод проверки в форме выглядит следующим образом:

public void checkNumber(FormStringControl _cntrl)
{
        MyValidationClass     valClass = new MyValidationClass(); 
    ;

    if(!valClass.validateNumber(_cntrl.text()))
    {
        _cntrl.text("");     
    }
}

*** У меня проблема с передачей текущего контроля вышеуказанному методу

Метод validate для элемента управления выглядит следующим образом:

public boolean validate()
{
    boolean ret;
    //ret = super();
    ret = element.checkNumber(this);
    return ret;
}

У меня проблема с передачей текущего элемента управления, который я изменяю, методу checkNumber. Если я не могу передать «this» методу проверки, что мне тогда передавать?

1 Ответ

1 голос
/ 21 марта 2012

Можно передать this, но вы также должны вызвать super():

public boolean validate()
{
    return super() && element.checkNumber(this);
}

Или:

public boolean validate()
{
    return super() && new MyValidationClass.validateNumber(this.text());
}

Попробуйте вместо этого использовать статический метод (вуправляющая таблица): MyTable::validateNumber(this.text())

Попробуйте вместо этого использовать validateField в таблице:

public boolean validateField(fieldIdToCheck)
{
    boolean ret = super(fieldIdToCheck);
    switch (fieldIdToCheck)
    {
        case fieldNum(Table,Field):
            ret = MyValidationClass::validateNumber(table.Field) && ret;
            break;
    }
    return ret;
}

Тогда вам не нужно вносить изменения в формы, и выможно использовать авто группы.

...