![]() |
#9 |
Участник
|
![]() Цитата:
Сообщение от S.Kuskov
![]() Скорее всего имелся в виду самый обычный lookup c гридом из нескольких полей. Если так то ответ нет, стандартно такое сделать не получиться. Стандартный механизм работы c lookup окнами не предаставляет доступ программисту к процессу получения значения из lookup формы. Можно запрограммировать передачу значения, но вот запрограммировать получение этого значения на основной форме не выйдет.
Если речь идет об обычном lookup - то получить значения курсора выбранной в lookup позиции в вызывающей форме в большинстве случаев все-же возможно, для этого нужно лишь получить экземпляр FormRun этой lookup формы, а дальше извлечь из него текущий курсор необходимого источника данных. Попробую схематично набросать то что имелось в виду: 1. В classDeclaration определяется переменная для сохранения дескриптора lookup формы: X++: public class FormRun extends ObjectRun { FormRun lookupFormRun ; } X++: public void performFormLookup(FormRun _form, FormControl _formControl) { super(_form, _formControl); lookupFormRun = _form ; } X++: Common lookupCursor ; ; ... super() ; if( lookupFormRun && lookupFormRun.closedOk() ) { // выбор из lookup формы lookupCursor = lookupFormRun .dataSource().cursor() ; ... // обработка данных извлеченного курсора ... } else { // 'ручной' ввод ... } ... lookupFormRun = null ;
__________________
Dynamics AX 4.0 SP2 |
|
|
За это сообщение автора поблагодарили: kitty (1), S.Kuskov (1), Player1 (2), Cardagant (1), SuperStar88 (1). |