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:33   #3  
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   #4  
Start is offline
Start
Участник
 
39 / 9 (1) +
Регистрация: 21.07.2015
Адрес: Москва
Цитата:
Сообщение от ZVV Посмотреть сообщение
Перекрытие lookup() или performFormLookup() методов.
Множество подобных примеров можно найти в системе.
Более точный ответ зависит от используемого вами инструмента (RunBase, SysOperation, просто Dialog?).
RunBase
Старый 19.11.2015, 10:39   #5  
Start is offline
Start
Участник
 
39 / 9 (1) +
Регистрация: 21.07.2015
Адрес: Москва
Цитата:
Сообщение от axm2013 Посмотреть сообщение
Например можно lookup сделать свой на фильтруемое поле.
а можно пример или поточнее?
Старый 19.11.2015, 10:50   #6  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
305 / 873 (30) +++++++
Регистрация: 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   #7  
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:03   #8  
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: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, 11:10   #10  
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:10   #11  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
305 / 873 (30) +++++++
Регистрация: 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, 16:32   #12  
Start is offline
Start
Участник
 
39 / 9 (1) +
Регистрация: 21.07.2015
Адрес: Москва
Цитата:
Сообщение от ZVV Посмотреть сообщение
Очевидно не там. Это делается один раз после создания диалога.
точно, не по тому пути пошёл.

Всем спасибо!
всё получилось.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
обновить на 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, время: 20:55.