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(), который заполняет себя с помощью приведенного выше кода, тогда вы можете просто выбрать эту таблицу (и она будет кэширована для сеанса):
- создайте таблицу SQL Temp (например, с именем, подобным MyTableLookup), добавьте столбец имени
добавьте такой метод:
public RefreshFrequency XDS()
{
MyTableLookup tableLookup; ttsbegin; // Use the above code to insert records into tableLookup ttscommit; return RefreshFrequency::PerSession;
}
привязать свою форму к MyLookupTable
Вы можете разработать стандартное EDT, связанное с таблицей UtilElement, правильно отфильтрованной. Это покажет список объектов и будет иметь одинаковую функциональность для всех связанных с таблицей текстовых полей.