|  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:30 | #4 | 
| NavAx | 
			
			Если надо закрыть только расширенный фильтр, а фильтрацию по полям оставить, то можно попробовать закомментировать вызов super() в методе prompt() нужного datasource.
		 
				__________________ Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты...   | 
|  | |
| За это сообщение автора поблагодарили: Андрей К. (1). | |
|  28.04.2011, 13:31 | #5 | 
| Axapta | 
			
			Как вариант, если надо чтобы только конкретная кнопка не работала, можно перекрыть метод task: X++: public int task(int _taskId) { int ret; if (_taskId != 2837 && _taskId != 2844) ret = super(_taskId); return ret; } | 
|  | 
|  28.04.2011, 13:37 | #6 | 
| Постигающий | Цитата: годится! но конечно хотелось бы залочить возможность фильтровать из контекстного меню полей Последний раз редактировалось Андрей К.; 28.04.2011 в 13:41. | 
|  | 
|  28.04.2011, 13:43 | #7 | 
| Постигающий | |
|  | 
|  28.04.2011, 13:48 | #8 | 
| 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 | #9 | 
| Постигающий | |
|  | 
|  28.04.2011, 14:02 | #10 | 
| 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. | 
|  | 
|  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). | |
| Теги | 
| как правильно, фильтр, форма | 
|  | 
| 
 |