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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.11.2015, 10:23   #1  
Start is offline
Start
Участник
 
39 / 9 (1) +
Регистрация: 21.07.2015
Адрес: Москва
Фильтр на поле диалога
Поле диалога- расширенный тип по таблице.
Задача накладывать на него фильтр в зависимости от другого поля.
Событие изменения другого поля знаю, а фильтр как наложить?
Старый 19.11.2015, 10:26   #2  
axm2013
Гость
 
n/a
Например можно lookup сделать свой на фильтруемое поле.
Старый 19.11.2015, 10:39   #3  
Start is offline
Start
Участник
 
39 / 9 (1) +
Регистрация: 21.07.2015
Адрес: Москва
Цитата:
Сообщение от axm2013 Посмотреть сообщение
Например можно lookup сделать свой на фильтруемое поле.
а можно пример или поточнее?
Старый 19.11.2015, 10:50   #4  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
268 / 829 (28) +++++++
Регистрация: 23.10.2012
Для DAX 2012:
Метод registerOverrideMethod для DialogField.
Dynamics AX custom lookup in dialog
Для предыдущих версий - не верю, чтобы этой информации не было ранее изложено на форуме:
Перекрыть dialogPostRun
X++:
public void dialogPostRun(DialogRunbase _dialog)
{
    ;
    super(_dialog);
    _dialog.dialogForm().formRun().controlMethodOverload(true);
    _dialog.dialogForm().formRun().controlMethodOverloadObject(this);
}
Инициализация поля
X++:
dlgFld = new DialogField(dialog, IdentifierName, FieldId); // где FieldId выдуманный ID поля 
dlgFld.init(dialog);
Свой метод:
X++:
protected boolean fld***_1_modified() // где *** это выдуманный FieldId
{
...
return true;
}

Последний раз редактировалось Товарищ ♂uatr; 19.11.2015 в 11:01.
За это сообщение автора поблагодарили: Alucardkds (1).
Старый 19.11.2015, 11:00   #5  
Start is offline
Start
Участник
 
39 / 9 (1) +
Регистрация: 21.07.2015
Адрес: Москва
Цитата:
Сообщение от Товарищ ♂uatr Посмотреть сообщение
Для DAX 2012:
Метод registerOverrideMethod для DialogField.
Dynamics AX custom lookup in dialog
registerOverrideMethod можно вызвать только один раз на modifide другого поля. Когда я второй раз изменяю значение, т.е. вызываю modified, то пишет, что переопределить метод можно один раз. Или я не там пишу...
Старый 19.11.2015, 11:10   #6  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Start Посмотреть сообщение
registerOverrideMethod можно вызвать только один раз на modifide другого поля. Когда я второй раз изменяю значение, т.е. вызываю modified, то пишет, что переопределить метод можно один раз. Или я не там пишу...
Очевидно не там. Это делается один раз после создания диалога.
__________________
Zhirenkov Vitaly
Старый 19.11.2015, 11:03   #7  
Start is offline
Start
Участник
 
39 / 9 (1) +
Регистрация: 21.07.2015
Адрес: Москва
Цитата:
Сообщение от Товарищ ♂uatr Посмотреть сообщение
Для DAX 2012:
Метод registerOverrideMethod для DialogField.
Dynamics AX custom lookup in dialog
Для предыдущих версий - не верю, чтобы этой информации не было ранее изложено на форуме:
Перекрыть dialogPostRun
X++:
public void dialogPostRun(DialogRunbase _dialog)
{
    ;
    super(_dialog);
    _dialog.dialogForm().formRun().controlMethodOverload(true);
    _dialog.dialogForm().formRun().controlMethodOverloadObject(this);
}
Инициализация поля
X++:
dlgFld = new DialogField(dialog, IdentifierName, FieldId); // где FieldId выдуманный ID поля 
dlgFld.init(dialog);
Свой метод:
X++:
protected boolean fld***_1_modified() // где *** это выдуманный FieldId
{
...
return true;
}
Это скорее на тему как реагировать на изменение поля. Это уже написано. меня интересует что внутри fld***_1_modified() писать, чтобы отсеялись записи по фильтру поля Fld5 в зависимости от значения fld***_1
Старый 19.11.2015, 11:10   #8  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
268 / 829 (28) +++++++
Регистрация: 23.10.2012
Цитата:
Сообщение от Start Посмотреть сообщение
Это скорее на тему как реагировать на изменение поля. Это уже написано. меня интересует что внутри fld***_1_modified() писать, чтобы отсеялись записи по фильтру поля Fld5 в зависимости от значения fld***_1
Я, кстати, обманул, в данном случае нужен fld***_1_lookup().
Исходя из описания задачи:
http://devexpp.blogspot.com.br/2012/...om-lookup.html и добавить условия по значению ключевого поля.

Последний раз редактировалось Товарищ ♂uatr; 19.11.2015 в 11:21.
За это сообщение автора поблагодарили: Start (1).
Старый 19.11.2015, 11:08   #9  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Start Посмотреть сообщение
а можно пример или поточнее?
Можно делать это двумя способами
Если у вас 2012, то примеры:
- Class BudgetTransactionMultiPost - способ, более привычный для старых версий, ключевой метод dialogPostRun()
- Class CustPaymReconciliationImport_SE_BGAG - более модный способ через регистрацию обработчиков
__________________
Zhirenkov Vitaly
За это сообщение автора поблагодарили: Start (1).
Старый 19.11.2015, 10:33   #10  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Start Посмотреть сообщение
Поле диалога- расширенный тип по таблице.
Задача накладывать на него фильтр в зависимости от другого поля.
Событие изменения другого поля знаю, а фильтр как наложить?
Перекрытие lookup() или performFormLookup() методов.
Множество подобных примеров можно найти в системе.
Более точный ответ зависит от используемого вами инструмента (RunBase, SysOperation, просто Dialog?).
__________________
Zhirenkov Vitaly
Старый 19.11.2015, 10:36   #11  
Start is offline
Start
Участник
 
39 / 9 (1) +
Регистрация: 21.07.2015
Адрес: Москва
Цитата:
Сообщение от ZVV Посмотреть сообщение
Перекрытие lookup() или performFormLookup() методов.
Множество подобных примеров можно найти в системе.
Более точный ответ зависит от используемого вами инструмента (RunBase, SysOperation, просто Dialog?).
RunBase
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
обновить на grid поле с display методом ymv2000 DAX: Программирование 4 15.01.2015 17:04
Как наложить фильтр на поле Дата-время Отшельник DAX: Функционал 10 06.01.2015 08:57
Фильтр по полю стирает данные в этом поле Cardagant DAX: Программирование 14 28.04.2012 16:16
сопоставление оплат клиента, переносов сальдо-поле накладная в общем журнале? Aquarius DAX: Функционал 3 28.01.2009 12:51
фильтр lookupа на запросе диалога oleg_e DAX: Программирование 6 12.11.2007 11:01

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 12:04.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.