|
![]() |
#1 |
Administrator
|
Цитата:
Вот код из АХ 2009 (\Classes\SysTableLookup\formRun): X++: args = new Args(); args.object(form); if(useLookupValue && !tmpBuffer) //highlighting existing value doesn't work with temp tables { args.lookupField(lookupField); switch (callingControl.handle()) { case classnum(FormStringControl): callingStringControl = callingControl; args.lookupValue(callingStringControl.text()); break; } } formRun = classfactory.formRunClass(args); form = formRun.form();
__________________
Возможно сделать все. Вопрос времени |
|
![]() |
#2 |
Участник
|
Цитата:
А у Вас Ax3.0 SP 3? В трешке у нас насколько я помню таких глюков не было. И по стрелочке список вверх поднимался и колесиком тоже.
Спасибо за решение! |
|
![]() |
#3 |
Участник
|
Подскажите, как отсортировать строки по определённому полю временной таблицы в lookup-списке?
|
|
![]() |
#4 |
Ищущий знания...
|
Цитата:
![]()
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
![]() |
#5 |
Участник
|
Цитата:
В запросе, который строится в Вашем методе lookUp'а, добавьте сортировку по нужному полю
Временную таблицу как раз и пришлось использовать из-за того, что в одном запросе вернуть результат в виде одного поля нельзя: значение берётся то из одной таблицы, то из другой (речь о ФИО, которые некоторые сотрудники меняют, и предыдущее(ие) значение(ия) которого хранятся в отдельной таблице). |
|
![]() |
#6 |
Ищущий знания...
|
Цитата:
Сообщение от DesertBrowser
![]() Не все поля берутся из результатов одного запроса. Некоторые значения заменяются на другие, в результате чего строки, первоначально отсортированные, частично теряют алфавитный порядок.
Временную таблицу как раз и пришлось использовать из-за того, что в одном запросе вернуть результат в виде одного поля нельзя: значение берётся то из одной таблицы, то из другой (речь о ФИО, которые некоторые сотрудники меняют, и предыдущее(ие) значение(ия) которого хранятся в отдельной таблице). в sysTableLookup вы передаете запрос по этой таблице (в коде это строка sysTableLookup.parmQuery(query)) ?
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
![]() |
#7 |
Участник
|
Делаю так, получаю ошибку при открытии лукапа"Функция SysTableLookup.formRun была неверно вызвана":
X++: qbds11 = q1.addDataSource(tablenum(emplTitleOrgTmp)); qbds11.addSortField(fieldnum(emplTitleOrgTmp,name)); sysTableLookup.parmTmpBuffer(emplTitleOrgTmp); //sysTableLookup.parmTableID(tablenum(emplTitleOrgTmp)); эту строку закомментировала sysTableLookup.parmQuery(q1); //вставляю эту строку sysTableLookup.parmCallingControl(_formControl); sysTableLookup.addLookupfield(fieldNum(EmplTitleOrgTmp, Name)); sysTableLookup.addLookupfield(fieldNum(EmplTitleOrgTmp, Titleid)); sysTableLookup.addLookupfield(fieldNum(EmplTitleOrgTmp, Title)); sysTableLookup.addLookupfield(fieldNum(EmplTitleOrgTmp, Organization)); sysTableLookup.addLookupfield(fieldNum(EmplTitleOrgTmp, documentnum)); frmRun = sysTableLookup.formRun(); frmRun.args().lookupValue(''); callingStringControl = _formControl; callingStringControl.performFormLookup(frmRun); |
|
|
|