AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.09.2017, 15:35   #1  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Надо работать с классом SysTableLookup и создавать запрос динамически.
Вот вам пример. В параметр _formControl передаётся элемент ввода, чтобы связать с ним форму выпадающего списка, т.е. лукап. добавляется 2 фильтра по полям JournalType и BlockUserGroupId. А поля JournalName и Name будут показаны в лукапе.
X++:
private void journalName_Lookup(FormControl _formControl)
{
    SysTableLookup          sysTableLookup  = SysTableLookup::newParameters(tablenum(LedgerJournalName),_formControl);
    Query                   query           = new Query();
    QueryBuildDataSource    queryBuildDataSource        = query.addDataSource(tablenum(LedgerJournalName));
    QueryBuildRange         queryBuildRangeJournalType  = queryBuildDataSource.addRange(fieldnum(LedgerJournalName, JournalType));
    QueryBuildRange         queryBuildRangeUserGroupId  = queryBuildDataSource.addRange(fieldnum(LedgerJournalName, BlockUserGroupId));

    sysTableLookup.addLookupfield(fieldnum(LedgerJournalName, JournalName));
    sysTableLookup.addLookupfield(fieldnum(LedgerJournalName, Name));

    queryBuildRangeJournalType.value(queryValue(LedgerJournalType::Daily));
    queryBuildRangeUserGroupId.value(UserGroupList::groupsForUser());

    sysTableLookup.parmQuery(query);
    sysTableLookup.performFormLookup();
}
__________________
// no comments
Старый 11.09.2017, 13:14   #2  
vizir is offline
vizir
Участник
 
43 / 10 (1) +
Регистрация: 08.09.2017
Цитата:
Сообщение от dech Посмотреть сообщение
Надо работать с классом SysTableLookup и создавать запрос динамически
Второй день мучаюсь с этим классом и другими из аналогичных примеров, но пока не заработал запрос. Ну да ладно, буду пока что делать другое задание.

Очевидный вопрос: почему нельзя в while прогнать запрос к таблице, как я выше в примере показывал, и вывести необходимые строки(если можно, то скажите как, я не нашел способа), вместо того чтобы использовать вереницу классов?
Старый 11.09.2017, 14:43   #3  
MazZzDaI is offline
MazZzDaI
Участник
Аватар для MazZzDaI
 
44 / 35 (2) +++
Регистрация: 19.09.2013
Алгоритм работы примера с SysTableLookup включает в себя построение запроса к данным используя Query Framework, который впоследствии передаётся в SysTableLookup, ответственный за работу с выпадающим списком.
Если есть желание или необходимость использовать while select, то всё равно придётся использовать SysTableLookup но ко временной таблице

Последний раз редактировалось MazZzDaI; 11.09.2017 в 14:48.
Старый 18.09.2017, 15:49   #4  
vizir is offline
vizir
Участник
 
43 / 10 (1) +
Регистрация: 08.09.2017
Вернувшись к вопросу, с помощью коллег, таки нашелся рабочий вариант.

Переопределить lookup удалось только путем написания метода с именем примерно таким - Fld1_1_lookup().
В этом методе как раз и использовались классы из примера dech. Только вместо _formControl, приходящего снаружи, я использовал dialog.formRun().controlCallingMethod().

Почему то так и не получилось переопределить лукап путем вызова метода registerOverrideMethod. Прописал всё как надо, ошибок не было, но метод просто игнорировался(смотрел в отладчике, заходов в него просто не было), неизвестно почему. Если кто знает почему один лукап работает, а другой с аналогичным кодом - нет - пишите, мне очень интересно
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: Inconsistency between quantity in purchase order and quantity in inventory transaction. Blog bot DAX Blogs 0 31.01.2015 23:11
emeadaxsupport: AX for Retail 2012 R2: Working with Custom Fields for Receipts Blog bot DAX Blogs 0 16.02.2013 23:12
Вопросы новичка - взаимодействие2 форм Dona DAX: Программирование 2 12.07.2011 17:30
Navision Axapta 3.0 - Вопросы новичка Igor Beeone DAX: Программирование 2 01.10.2007 10:13
Вопросы от новичка CTAX DAX: Функционал 4 13.08.2002 13:25

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 13:40.