|
![]() |
#1 |
Axapta
|
Позиционированние происходит в \Classes\EventContextInformation\findTimed. Там вызывается findRecord датасорса формы. Соответственно, можно перекрыть этот файндРекорд и обработать ситуацию, спозиционировав самостоятельно. Может не самое лучшее решение, просто первое, что пришло в голову.
|
|
|
За это сообщение автора поблагодарили: AlexeyVS (1). |
![]() |
#2 |
Участник
|
Получилось вот что. По совету OIP. Немного перемаргивает при позиционировании, но работает.
findRecord переопределен в датасорсе источника оповещения X++: public boolean findRecord(Common _record) { boolean ret; Document docTable; Task taskTable; ; select firstonly taskTable where taskTable.RecId == _record.RecId; select firstonly docTable where docTable.DocumentId == taskTable.DocumentId; Document_ds.findRecord(docTable); this.research(); ret = super(_record); return ret; } |
|
![]() |
#3 |
Ищущий знания...
|
Цитата:
т.е. в итоге получится что-то типа: X++: public boolean findRecord(Common _record) { boolean ret; Document docTable; Task taskTable; ; element.lock(); select firstonly taskTable where taskTable.RecId == _record.RecId; select firstonly docTable where docTable.DocumentId == taskTable.DocumentId; Document_ds.findRecord(docTable); this.research(); ret = super(_record); element.unLock(); return ret; }
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
![]() |
#4 |
Участник
|
Рано я порадовался. После отработки позиционирования, в нижнем гриде фокус выставляется на первую запись. Хоть ошибки больше и нет, но позиционирование выполняется некорректно, если источник оповещения, например, вторая запись.
Причем позиционирование в переопределенном методе срабатывает правильно, это видно под отладкой. Но потом фокус съезжает. Последний раз редактировалось AlexeyVS; 13.04.2010 в 11:27. |
|
|
|