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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.08.2007, 17:48   #1  
Андрей К. is offline
Андрей К.
Постигающий
 
152 / 10 (1) +
Регистрация: 09.04.2007
? Поле для ввода критерия фильтрации
Задача такая:
нужно на форме с гридом поместить контрол, соответствующий определенному полю грида, в котором можно задать критерий фильтрации. причем с возможностью использования маски и выборв нескольких значений (как в стандартном фильтре)...подскажите,те , кто в этом разобрался, куда рыть, что делать?
Старый 08.08.2007, 17:54   #2  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
Update:
блинн, неусмотрел часть вопроса Сорри.

Это как на формах журналов ГК? В верхней части формы: Открыто/Разнесено?

Последний раз редактировалось Lemming; 08.08.2007 в 17:58.
Старый 08.08.2007, 17:56   #3  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Смотря какое поле, по сути, нужно просто сделать свой EDT, который наследовать от типа Range. (это, ессно, не обязательно, но проще, если все будет так).

На этом типе можно продублировать те relation, что и на основном поле (что в гриде). Или же, как альтернатива, переписать лукап у поля этого на форме.

Когда будете в ExecuteQuery накладывать фильтр, не используйте queryValue и ему подобные, чтобы не escapились спец.символы.

Вроде все.
Ничего сложного.
Старый 08.08.2007, 17:57   #4  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,253 / 980 (37) +++++++
Регистрация: 03.04.2002
Сравнительно просто, создаешь новый строковый тип данных (строка дли-и-инная), вешаешь на него свою лукап форму с перебитым closeSelect
__________________
Isn't it nice when things just work?
Старый 08.08.2007, 18:06   #5  
Андрей К. is offline
Андрей К.
Постигающий
 
152 / 10 (1) +
Регистрация: 09.04.2007
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Смотря какое поле....
поле с номерами статей типа 1, 1.1, 1.2.3 , 4.3 и т.п...
Старый 08.08.2007, 18:11   #6  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,253 / 980 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от kashperuk Посмотреть сообщение
На этом типе можно продублировать те relation, что и на основном поле (что в гриде).
Неможно. Будет старые значения затирать. Нужна лукап форма
__________________
Isn't it nice when things just work?
Старый 08.08.2007, 18:20   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Андрей К. Посмотреть сообщение
Задача такая:
нужно на форме с гридом поместить контрол, соответствующий определенному полю грида, в котором можно задать критерий фильтрации. причем с возможностью использования маски и выборв нескольких значений (как в стандартном фильтре)...подскажите,те , кто в этом разобрался, куда рыть, что делать?
Э-э-э... Это только первая часть. И вдобавок самая простая.

После того, как пользователям такое поле сделать, через некоторое время они обнаруживают, что в Аксапте есть замечательное окно для ввода любых критериев. И это окно открывается по клавишам Ctrl+F3 (или воронка на панели инструментов).

А то окошко позволяет запоминать фильтры, использовать различные связанные таблицы...

Вот тут то и начнется ад для программиста.
Пользователи непременно захотят, чтобы самодельное поле отображало текущий фильтр, где бы его ни ввели (либо в воле, либо в форме CTRL+F3)/

А если программист (не дай бог) еще и собственные фильтры будет накладывать...
То непременно захотят и их видеть тоже на форме...

В общем, посмотрите как это сделано на форме деловых отношений в CRM.
smmBusRelTable

Там решена как раз ваша часть задачи - вводить фильтр в поля на форме.

Но обратите внимание, что проще пользователей научить нажимать Ctrl+F3, нежели программировать.
Хотя... Если вам платят за это, то почему бы и нет?
__________________
полезное на axForum, github, vk, coub.
Старый 08.08.2007, 18:29   #8  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от macklakov Посмотреть сообщение
Неможно. Будет старые значения затирать. Нужна лукап форма
Для этого нужно установить свойство ReplaceOnLookup на контроле в значение No

Правда все равно своя форма лучше, потому что так есть ньюансы
Старый 08.08.2007, 18:49   #9  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от mazzy Посмотреть сообщение
Э-э-э... Это только первая часть. И вдобавок самая простая.

После того, как пользователям такое поле сделать, через некоторое время они обнаруживают, что в Аксапте есть замечательное окно для ввода любых критериев. И это окно открывается по клавишам Ctrl+F3 (или воронка на панели инструментов).

А то окошко позволяет запоминать фильтры, использовать различные связанные таблицы...

Вот тут то и начнется ад для программиста.
Пользователи непременно захотят, чтобы самодельное поле отображало текущий фильтр, где бы его ни ввели (либо в воле, либо в форме CTRL+F3)/

А если программист (не дай бог) еще и собственные фильтры будет накладывать...
То непременно захотят и их видеть тоже на форме...

В общем, посмотрите как это сделано на форме деловых отношений в CRM.
smmBusRelTable

Там решена как раз ваша часть задачи - вводить фильтр в поля на форме.

Но обратите внимание, что проще пользователей научить нажимать Ctrl+F3, нежели программировать.
Хотя... Если вам платят за это, то почему бы и нет?
А мы такие фильтры делали более приоритетными, чем пользовательские.
То есть если он выбирает фильтр, то вместо QueryRun используется Query и его пользовательские фильтры сбрасываются.

Все были за.
Правда и фильтры у нас посложение были, а не просто по полю из грида.
Старый 08.08.2007, 18:57   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от kashperuk Посмотреть сообщение
...и его пользовательские фильтры сбрасываются.
Тогда сразу вопрос: на кой ляд создавать пользовательские фильтры, которые сбрасываются и НЕ РАБОТАЮТ?

Может таки научить пользователей нажимать Ctrl+F3?
__________________
полезное на axForum, github, vk, coub.
Старый 08.08.2007, 19:11   #11  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,253 / 980 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от mazzy Посмотреть сообщение
Тогда сразу вопрос: на кой ляд создавать пользовательские фильтры, которые сбрасываются и НЕ РАБОТАЮТ?

Может таки научить пользователей нажимать Ctrl+F3?
На форме, кончено, ценность таких фильтров сомнительна. Но вообще они имеют право на жизнь. К примеру, в настройках нужно указать дапазон счетов, к которым будет применим специфический алгоритм. Указывать их по одному, в связанной таблице долго, черевато ошибками и добавляя новый субсчет нужно не забыть проставить его в эту таблицу. Гораздо проще указать, к примеру "01*", а в алгоритме просто подставлять этот критерий
__________________
Isn't it nice when things just work?

Последний раз редактировалось macklakov; 08.08.2007 в 19:16.
Старый 08.08.2007, 19:16   #12  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,253 / 980 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Для этого нужно установить свойство ReplaceOnLookup на контроле в значение No

Правда все равно своя форма лучше, потому что так есть ньюансы
Она попытается найти значение в связанной таблице, не найдет, ругнется. Это и есть ньюанс?
__________________
Isn't it nice when things just work?
Старый 08.08.2007, 19:17   #13  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от macklakov Посмотреть сообщение
Она попытается найти значение в связанной таблице, не найдет, ругнется. Это и есть ньюанс?
А для этого достаточно в validate вернуть true
Нюанс, что при открытии формы лукапа значения фильтруются по введенному в данный момент значению. (правда это не всегда так, поэтому не скажу)
Старый 08.08.2007, 19:25   #14  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от macklakov Посмотреть сообщение
Указывать их по одному, в связанной таблице долго, черевато ошибками и добавляя новый субсчет нужно не забыть проставить его в эту таблицу.
А вот с этим совершенно согласен.
__________________
полезное на axForum, github, vk, coub.
Старый 08.08.2007, 19:25   #15  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,253 / 980 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от kashperuk Посмотреть сообщение
А для этого достаточно в validate вернуть true
Это уже на поле datasourc-а? Хитро
__________________
Isn't it nice when things just work?
Старый 08.08.2007, 19:27   #16  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от macklakov Посмотреть сообщение
Это уже на поле datasourc-а? Хитро
Ну, на контроле самом, если быть точным. Ведь фильтры эти не привязаны к источнику.
Но все равно поддерживаю лукап форму или переписанный просто лукап.
Старый 09.08.2007, 10:11   #17  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от macklakov Посмотреть сообщение
На форме, кончено, ценность таких фильтров сомнительна. Но вообще они имеют право на жизнь. К примеру, в настройках нужно указать дапазон счетов, к которым будет применим специфический алгоритм. Указывать их по одному, в связанной таблице долго, черевато ошибками и добавляя новый субсчет нужно не забыть проставить его в эту таблицу. Гораздо проще указать, к примеру "01*", а в алгоритме просто подставлять этот критерий
Вроде такое штатно используется в механизме трасляции.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Сторно ввода в эксплуатацию ОС Rivez DAX: Функционал 16 25.08.2009 10:46
сопоставление оплат клиента, переносов сальдо-поле накладная в общем журнале? Aquarius DAX: Функционал 3 28.01.2009 12:51
вычисляемое поле ZhanR DAX: Программирование 8 28.09.2006 10:25
Пользовательский генератор строк-перечислений для критерия запроса в Axapta Gustav DAX: База знаний и проекты 20 08.09.2006 13:01
Удобное поле ввода даты renat DAX: Программирование 11 13.03.2003 13:03

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

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

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