Полное руководство по поиску полей в диалогах AX 2012: методы и примеры кода

Функция поиска по полям играет решающую роль в улучшении пользовательского опыта и точности данных в диалоговых формах Microsoft Dynamics AX 2012. Предоставляя пользователям возможность искать и выбирать значения из существующих записей, поиск по полям упрощает ввод данных и обеспечивает целостность данных. В этой статье мы рассмотрим различные методы реализации поиска полей в диалоговых окнах AX 2012, а также приведем примеры кода для каждого метода.

Метод 1: использование класса SysTableLookup
Класс SysTableLookup предоставляет мощный и гибкий механизм реализации функций поиска по полям. Вот пример использования этого класса в диалоговом окне AX 2012:

public void lookup()
{
    SysTableLookup    sysTableLookup;
    QueryBuildDataSource qbds;
    Query               query;

    sysTableLookup = SysTableLookup::newParameters(tablenum(CustTable), this);
    qbds = sysTableLookup.addLookupField(fieldnum(CustTable, AccountNum));
    sysTableLookup.parmQuery(query);
    sysTableLookup.performFormLookup();
}

Метод 2: использование класса DirPartyTableLookup
Если вам нужно выполнить поиск в записях сторон, вам подойдет класс DirPartyTableLookup. Вот пример реализации этого метода:

public void lookup()
{
    DirPartyTableLookup    dirPartyTableLookup;
    QueryBuildDataSource   qbds;
    Query                  query;

    dirPartyTableLookup = DirPartyTableLookup::construct(tablenum(CustTable), this);
    qbds = dirPartyTableLookup.addLookupField(fieldnum(CustTable, Party));
    dirPartyTableLookup.parmQuery(query);
    dirPartyTableLookup.performFormLookup();
}

Метод 3: использование пользовательской формы поиска
В некоторых случаях вам может потребоваться создать пользовательскую форму поиска, чтобы обеспечить более индивидуальный подход к пользователю. Вот пример реализации пользовательской формы поиска в AX 2012:

public void lookup()
{
    Args args = new Args();
    FormRun formRun;

    args.name(formstr(CustomLookupForm));
    formRun = classfactory.formRunClass(args);
    formRun.init();
    formRun.run();
    formRun.wait();
}

Реализация функции поиска полей в диалоговых окнах AX 2012 необходима для повышения производительности пользователей и точности данных. В этой статье мы рассмотрели различные методы поиска полей, в том числе использование классов SysTableLookup и DirPartyTableLookup, а также создание пользовательских форм поиска. Используя эти методы и настраивая их в соответствии со своими конкретными требованиями, вы можете улучшить взаимодействие с пользователем и упростить ввод данных в диалоговых окнах AX 2012.