|
02.06.2015, 17:46 | #1 |
Участник
|
Сортировка строк формы-lookup
Всем привет,
Столкнулся с интересной ситуацией. Необходимо произвести сортировку формы HcmWorkerLookup по имени работника, то есть по полю DirPerson.Name. очевидно, что эта задача проста, просто в запрос на этой форме добавить поле сортировки и данные грида будут отсортированы, однако, добавил поле, в запросе датасорса вижу, что ORDER BY прописывается верно, но при открытии формы выпадающим списком визуальная сортировка в гриде сбрасывается, хоть и сохраняется пометка (стрелка) в колонке, что сортировка должна быть. Если открыть форму напрямую из АОТ, сортировка работает верно. А дальше самое интересное, создаю пустую форму, добавляю на неё тот же запрос вышеупомянутой формы, после выношу поле Name в грид дизайна и подставляю её как лукап форму нужному ЭДТ, открываю форму из контрола лукапом и получаю ту же неверную сортировку. Открытие формы из АОТ предоставляет верную сортировку. Прошу подсказать, может кто-то сталкивался с таким поведением. Что это может быть? Спасибо! Последний раз редактировалось Cardagant; 02.06.2015 в 17:50. |
|
02.06.2015, 17:50 | #2 |
Участник
|
Прошу перенести тему в AX разработку, по ошибке не там создал, спасибо!
|
|
03.06.2015, 07:34 | #3 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: Cardagant (2). |
03.06.2015, 10:34 | #4 |
Участник
|
Ссылка очень полезная, спасибо. Но не совсем понимаю как применить это к обычной форме-лукапу, не SysTableLookup
Что вроде сброса лукап рекорда для Args? X++: element.args().lookupRecord(null); Последний раз редактировалось Cardagant; 03.06.2015 в 10:48. |
|
03.06.2015, 10:57 | #5 |
Участник
|
Сброс лукап рекорда помогает. Спасибо!
Можно также запоминать запись перед обнулением и производить datasource.FindRecord() для поиска данной записи в гриде для активации. Но из собственного опыта на большом количестве записей это будет работать не очень быстро. Есть ли альтернативы? Последний раз редактировалось Cardagant; 03.06.2015 в 11:09. |
|
03.06.2015, 11:55 | #6 |
Участник
|
Позиционироваться по отсортированному ключу, т.е. в вашем случае по Name. Т.е. заполнять/перезаписывать свойства args.lookupField и args.lookupValue().
Как пример: Фича с findRecord() в лукап-форме ContactPersonLookup Из недостатков: если будут дубликаты в наименовании, то позиционирование будет не точным. |
|
Теги |
lookup |
|
|