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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.03.2011, 16:43   #1  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Скорее всего имелся в виду самый обычный lookup c гридом из нескольких полей. Если так то ответ нет, стандартно такое сделать не получиться. Стандартный механизм работы c lookup окнами не предаставляет доступ программисту к процессу получения значения из lookup формы. Можно запрограммировать передачу значения, но вот запрограммировать получение этого значения на основной форме не выйдет.
К том уже, если я правильно вас понял, при таком подходе вы принуждаете пользователя пользоваться lookup'ом, и лишаете ручного ввода. Не создавайте себе лишних проблем. Инициализируйте второе поле в методе modifiedField первого.
Старый 18.03.2011, 14:22   #2  
in.dc is offline
in.dc
Участник
 
29 / 53 (2) ++++
Регистрация: 09.04.2009
? извлечение через FormRun?
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Скорее всего имелся в виду самый обычный lookup c гридом из нескольких полей. Если так то ответ нет, стандартно такое сделать не получиться. Стандартный механизм работы c lookup окнами не предаставляет доступ программисту к процессу получения значения из lookup формы. Можно запрограммировать передачу значения, но вот запрограммировать получение этого значения на основной форме не выйдет.
Позволю себе не согласиться с данным утверждением.
Если речь идет об обычном lookup - то получить значения курсора выбранной в lookup позиции в вызывающей форме в большинстве случаев все-же возможно, для этого нужно лишь получить экземпляр FormRun этой lookup формы, а дальше извлечь из него текущий курсор необходимого источника данных.

Попробую схематично набросать то что имелось в виду:
1. В classDeclaration определяется переменная для сохранения дескриптора lookup формы:
X++:
public class FormRun extends ObjectRun
{
    FormRun             lookupFormRun ;
}
2. Перекрывается метод performFormLookup нужного поля в котором сохраняем экземпляр вызываемой lookup' формы
X++:
public void performFormLookup(FormRun _form, FormControl _formControl)
{
    super(_form, _formControl);
    lookupFormRun = _form ;
}
3. в modified производится анализ:
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).
Старый 24.04.2013, 13:15   #3  
kitty is offline
kitty
Участник
 
383 / 30 (2) +++
Регистрация: 24.05.2005
Спасибо за предложенное работающее решение.
Возник такой вопрос:
Метод performFormLookup() вызывается только если лукап перекрыт, тк это метод класса SysTableLookup.

Если же лукап стандартный(автоматически созданный аксаптой по relation на таблице), можно ли как-то добраться до выбранной в нем записи?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
PatrickChua: Change the combobox options in RunbaseBatch class Blog bot DAX Blogs 0 04.05.2009 14:05
Самоблокировка ComboBox контролла Delfins DAX: Программирование 2 17.01.2008 00:17
PatrickChua: Change the combobox options in RunbaseBatch class Blog bot DAX Blogs 0 28.10.2006 18:14
Fred Shen: Change the combobox options in RunbaseBatch class Blog bot DAX Blogs 0 28.10.2006 16:40
ComboBox и Enum ArturK DAX: Программирование 1 01.03.2004 16:19

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

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

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