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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.12.2013, 22:13   #1  
pedrozzz is offline
pedrozzz
Молодой, подающий надежды
Аватар для pedrozzz
MCBMSS
Лучший по профессии 2015
 
164 / 218 (8) ++++++
Регистрация: 18.02.2010
Адрес: Краснодар
Для 2009 старше RU5 можно перекрыть метод lookup по аналогии с примером в теме Расширенные возможности отслеживания событий на диалогах классов-наследников RunBase

В 2012 можно использовать метод контрола registerOverrideMethod()
X++:
dlgFactureExtId.registerOverrideMethod(methodStr(FormStringControl, lookup), methodStr(MyClass, dlgFactureExtId_lookup), this);
__________________
Кононов Пётр
За это сообщение автора поблагодарили: Dzha (1).
Старый 04.12.2013, 19:52   #2  
Alex Pavluk is offline
Alex Pavluk
Участник
 
6 / 10 (1) +
Регистрация: 15.11.2013
Создаю динамическую форму :

protected Object dialog(DialogRunbase dialog, boolean forceOnClient)
.....
dlgFactuDocId = dialog.addFieldValue(typeid(ZEU_FactuDocId), factureDocId); //Fld2_1
.....
dlgFactureExtIdNumSeq = dialog.addFieldValue(typeid(NumberSequenceGroupId), factureexternalId); //Fld5_1
dlgZEU_SourceFacture = dialog.addFieldValue(typeid(FactureExternalId_RU), ZEU_SourceFacture);
dlgZEU_CorrectionReason = dialog.addFieldValue(typeid(ZEU_CorrectionReason), ZEU_CorrectionReason);
dlgZEU_SourceFacture.visible(false);
dlgZEU_CorrectionReason.visible(false);
dialog.allowControlMethodOverload_RU(true);
.....


Создаю обработку на выбор LookUp :

protected boolean Fld2_1_modified()
{
boolean ret=True;
;

if (!(ZEU_FactureDoc::find(dlgFactuDocId.value()).DocType == ZEU_DocType::RK))
{
dlgZEU_SourceFacture.visible(true);
dlgZEU_CorrectionReason.visible(true);
}
else
{
dlgZEU_SourceFacture.visible(false);
dlgZEU_CorrectionReason.visible(false);
}

// for Repaint dialog
dialog2.dialogOnClient_RU().updateServer();
dialog2.updateClient(dialog2.dialogOnClient_RU());
return ret;
}


Суть в том, что при выборе LookUp Fld2_1 надо проверять выбранное значение
и соответственно делать видимыми/невидимыми два поля ввода.
Проблемы :
1. dlgFactuDocId.value() - пустое
2. Если включен блок // for Repaint dialog, то визуально эти два поля появляются
на форме, но при этом текст Fld2_1 становится пустым
3. Если не включен блок // for Repaint dialog, то визуально эти два поля НЕ появляются
на форме, и при этом текст Fld2_1 не пустой (хотя dlgFactuDocId.value() все равно пустой)

Что я не так делаю ?
Теги
lookup filter, lookupvalue

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Поля из разных таблиц в динамической Lookup-форме samolalex DAX: Программирование 8 06.06.2011 20:20
Kashperuk Ivan: Lookup form returning more than one value Blog bot DAX Blogs 0 29.01.2010 18:05
gatesasbait: How to define a custom lookup form for an extended datatype Blog bot DAX Blogs 0 09.07.2008 22:05
Создание Lookup формы Maxim Gorbunov DAX: База знаний и проекты 9 26.06.2007 16:44
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

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