Вызов метода редактирования из основного класса в X ++

Я хочу вспомнить значение метода edit, объявленного внутри формы из класса main. Как я могу это сделать?

[Form]
public class AdvancedCustomerSchedule extends FormRun
{        
    Sorting sorting;    

    edit Sorting edtSorting(boolean set, Sorting _sorting)
    {
        if (set)
        {
            sorting = _sorting;
        }
        return sorting;
    }
 }

и класс:

class AdvancedCustomerScheduleService 
{
  static void main(Args args)
  {
       //I want to call the method edtSorting here.
  }
}

ОБНОВЛЕНИЕ

FormRun callerForm;
if (args.caller() is FormRun)
        {
            callerForm = args.caller() as FormRun;

            if (formHasMethod(callerForm, identifierStr(edtSorting)))
            {
                str test  = callerForm.edtSorting();
                info(test);
            }
        }

person OiRc    schedule 01.10.2020    source источник


Ответы (1)


Для вызова методов, определенных в формах, вы обычно используете следующий шаблон:

...
FormRun callerForm;
...
if (_args.caller() is FormRun)
{
    callerForm = _args.caller();

    if (formHasMethod(callerForm, identifierStr(someMethod)))
    {
        callerForm.someMethod();
    }
    ...

Взгляните на класс DirPartyContactInfoFormHandler и его статический метод main в качестве примера.

person DAXaholic    schedule 01.10.2020
comment
когда я пытаюсь вызвать метод с callerForm.edtSorting();, я улавливаю исключение: он не может найти метод. Любая помощь? - person OiRc; 01.10.2020
comment
Вы указали все необходимые параметры? - person DAXaholic; 01.10.2020
comment
какие-либо предложения? - person OiRc; 01.10.2020
comment
Опять же, похоже, что вы не передаете никаких аргументов методу, который принимает два параметра. - person DAXaholic; 01.10.2020
comment
Извините, я забыл: D - person OiRc; 01.10.2020