Dynamics AX 2012 AOT Поиск объекта

У кого-нибудь есть пример кода поиска для объектов AOT? (или знаете, где найти тот, который они используют для окна свойств AX)

Мне нужно повторить функциональность, которую вы видите в нескольких полях в окне свойств. Поле ExtendedDataType является хорошим примером. Введите несколько букв, нажмите стрелку вниз, и появится отфильтрованный список объектов AOT ExtendedDataType.

Я пытался использовать treeNode findChildren для создания моего пользовательского списка поиска, но он очень медленный. Какой бы метод AX ни использовал, это происходит мгновенно.

Спасибо

2 ответа

Решение

Попробуй это:

Dictionary d = new Dictionary();
int i;
int cnt = d.tableCnt();
TableId tableId;
str nameForLookup;

for (i = 1; i <= cnt; i++)
{
    tableId = d.tablecnt2id(i);
    nameForLookup = tableid2name(tableId);
}

Запросы к таблицам Model/Util*Element не будут кэшироваться и будут относительно медленными из-за количества записей, которые они содержат.

Могут быть и другие факторы, замедляющие выполнение. Если вы работаете в 2012 году, для поиска вам может потребоваться создать временную таблицу с помощью метода XDS(), который заполняет себя с помощью приведенного выше кода, тогда вы можете просто выбрать эту таблицу (и она будет кэширована для сеанса):

  1. создайте таблицу SQL Temp (например, с именем, подобным MyTableLookup), добавьте столбец имени
  2. добавьте такой метод:

    public RefreshFrequency XDS()

    {

    MyTableLookup tableLookup;
    
    ttsbegin;
    // Use the above code to insert records into tableLookup
    ttscommit;
    
    return RefreshFrequency::PerSession;
    

    }

  3. привязать свою форму к MyLookupTable

Вы можете разработать стандартное EDT, связанное с таблицей UtilElement, правильно отфильтрованной. Это покажет список объектов и будет иметь одинаковую функциональность для всех связанных с таблицей текстовых полей.

Другие вопросы по тегам