|
28.04.2011, 13:20 | #1 |
Постигающий
|
Можно ли запретить пользовательский фильтр на форме?
поскольку все необходимые пользователю фильтры были "вынесены" на форму, нужда в кнопке с воронкой отпала (в том числе и фильтр по выделенному полю)
Точнее необходима защита от дурака , чтоб пользователь не мог фильтровать как ему захочется, кроме как используя вынесенный на форму функционал фильтрации используется Ax 2009 спасибо |
|
28.04.2011, 13:25 | #2 |
MCT
|
Что сразу приходит в голову, так это запретить редактирование
X++: actDate.status(RangeStatus::Locked); X++: actDate.status(RangeStatus::Hidden);
__________________
Axapta book for developer |
|
28.04.2011, 13:25 | #3 |
MCT
|
если у вас RU5 или старше посмотрите как такая задача решена на стандартной форме
Банк / Импортированная выписка. Там и фильтры вынесены отдельно и филтр по сетке доуступен
__________________
Sometimes there is a moment as you are awakening - when you become aware of the real world around you, - but you are still dreaming. - You may think you can fly but you do better not try. |
|
28.04.2011, 13:43 | #4 |
Постигающий
|
|
|
28.04.2011, 13:48 | #5 |
MCT
|
это и есть полный путь, начиная с главное меню
название формы BankClientImportedStatement_RU она была добавлена в ru5
__________________
Sometimes there is a moment as you are awakening - when you become aware of the real world around you, - but you are still dreaming. - You may think you can fly but you do better not try. |
|
28.04.2011, 13:57 | #6 |
Постигающий
|
|
|
28.04.2011, 14:02 | #7 |
MCT
|
Цитата:
невозможно перекрыть те фильтры, которые заданы в "вынесенных" фильтрах. т.е. если я задал фильтры по дате в верхней части формы в вынесенных фильтрах, я уже не смогу перекрыть этот фильтр ни фильтром по полю, ни фильтром по выделению, ни расширенным фильтром. а вот добавить другой фильтр, в дополнение к "вынесенным" фильтрам,к примеру фильтр по контрагенту, я могу - это как раз и кажется мне правильным и удобным
__________________
Sometimes there is a moment as you are awakening - when you become aware of the real world around you, - but you are still dreaming. - You may think you can fly but you do better not try. |
|
28.04.2011, 13:30 | #8 |
NavAx
|
Если надо закрыть только расширенный фильтр, а фильтрацию по полям оставить, то можно попробовать закомментировать вызов super() в методе prompt() нужного datasource.
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты... |
|
|
За это сообщение автора поблагодарили: Андрей К. (1). |
28.04.2011, 13:37 | #9 |
Постигающий
|
Цитата:
годится! но конечно хотелось бы залочить возможность фильтровать из контекстного меню полей Последний раз редактировалось Андрей К.; 28.04.2011 в 13:41. |
|
28.04.2011, 13:31 | #10 |
Axapta
|
Как вариант, если надо чтобы только конкретная кнопка не работала, можно перекрыть метод task:
X++: public int task(int _taskId) { int ret; if (_taskId != 2837 && _taskId != 2844) ret = super(_taskId); return ret; } |
|
03.05.2011, 14:19 | #11 |
Участник
|
|
|
03.05.2011, 18:00 | #12 |
Участник
|
Цитата:
Цитата:
Последний раз редактировалось gl00mie; 03.05.2011 в 19:32. Причина: пропустил одно слово |
|
|
За это сообщение автора поблагодарили: mazzy (5). |
04.05.2011, 07:19 | #13 |
Участник
|
полностью согласен.
хочу только добавить: Цитата:
если пользователь изменит фильтр нормальными средствами (Ctrl+F3), то нужно корректно отобразить этот фильтр в контролах на форме (иначе будет очень досадное расхождение, которое приводит к очень досадным недоразумениям с пользователями). но программисты часто выставляют на форме не критерий (с запятыми, звездочками, восклицательными знаками и пр.), а одно контрол с одним значением. Даже если программист выставит на форму критерий, то часто не занимаются обновлением критериев из query. и т.д. кроме того, бывают стандартные формы (зачастую из локализации), которые страдают болезнью контролы-как-фильтры. в результате и возникает задача "запретить". хотя конечно лучше переделать так, чтобы пользователи могли использовать расширенные фильтры. |
|
04.05.2011, 11:37 | #14 |
Участник
|
Цитата:
Сообщение от mazzy
если пользователь изменит фильтр нормальными средствами (Ctrl+F3), то нужно корректно отобразить этот фильтр в контролах на форме (иначе будет очень досадное расхождение, которое приводит к очень досадным недоразумениям с пользователями). но программисты часто выставляют на форме не критерий (с запятыми, звездочками, восклицательными знаками и пр.), а одно контрол с одним значением. Даже если программист выставит на форму критерий, то часто не занимаются обновлением критериев из query. и т.д.
|
|
04.05.2011, 11:41 | #15 |
Участник
|
Цитата:
чтобы дать ему понять не обязательно делать обратный парсинг. достаточно задисейблить контролы. но ведь и этого не делается. |
|
04.05.2011, 11:46 | #16 |
Участник
|
Отсюда напрашивается вывод: не надо вообще делать контролы-фильтры на форме, за исключением, разве что, простейших случаев (журналы открытые/разнесенные/все) Потому что иначе получается неоправданно сложное и дорогое решение частной задачи, которая в системе уже решена в общем случае как минимум двумя способами: за счет расширенного фильтра и фильтра по grid'у.
|
|
|
За это сообщение автора поблагодарили: mazzy (2). |
04.05.2011, 12:08 | #17 |
Участник
|
Не помню где читал такое мнение:
Цитата:
Сделай систему, в которой сможет работать даже дурак, и только дурак захочет в ней работать.
|
|
|
За это сообщение автора поблагодарили: S.Kuskov (1). |
Теги |
как правильно, фильтр, форма |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|