|  04.10.2010, 11:58 | #1 | 
| Участник | Универсальный запоминатель пользовательских настроек DataSource. 
			
			Уважаемые коллеги, представляю вашему вниманию класс, позволяющий автоматически запоминать пользовательские настройки запроса (QueryRun) формы при ее закрытии, и последующем их автоматическом восстановлении при следующем запуске формы. Данные сохраняются в разрезе пользователей и компаний. По своей сути, является совершенно бестолковой вещью, т.к. существующий стандартный функционал (Ctrl+F3), позволяет сохранять и восстанавливать любые настройки в любое время. Однако, встречаются пользователи, которым бы хотелось пользоваться столь замечательной возможностью, но при этом не утруждать себя лишним клацаньем мышки )). Пользоваться очень просто. 
 
 
 
 Кода и логики в классе зашито минимум - всем давно известный функционал xSysLastValue, но для не сталкивавшихся с ним, может быть интересен для рассмотрения. Класс во вложении. Подходит как для Axapta 3.0, так и для AX2009 (для четверки не пробовал, но, думаю, проблем не будет). Спасибо за внимание  . Последний раз редактировалось mazzy; 04.10.2010 в 13:05. Причина: добавил слово "автоматически" в описание. | 
|  | |
| За это сообщение автора поблагодарили: lev (2). | |
|  04.10.2010, 12:39 | #2 | 
| Участник | 
			
			А чем отличается от xSysLastValue?
		 | 
|  | 
|  04.10.2010, 12:43 | #3 | 
| Участник | |
|  | 
|  04.10.2010, 12:56 | #4 | 
| Участник | 
			
			да, я понял. а чем ваш отличается от стандартного? что расширяет? какие преимущества дает?
		 | 
|  | 
|  04.10.2010, 13:00 | #5 | 
| Ищущий знания... | Цитата:   
				__________________ "Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем | 
|  | |
| За это сообщение автора поблагодарили: tricky (1). | |
|  04.10.2010, 13:03 | #6 | 
| Участник | Цитата:  . | 
|  | |
| За это сообщение автора поблагодарили: mazzy (5). | |
|  04.10.2010, 13:20 | #7 | 
| Участник | 
			
			Я так понял, восстанавливается сам Query? Т.е. если форма закрывается и на DS был наложен юзером какой-то фильтр, то при следующем открытии этот фильтр и будет восстановлен. Стандартное сохранение настроек вроде не накладывает фильтрА. Или я ошибся? | 
|  | 
|  04.10.2010, 13:25 | #8 | 
| Участник | Цитата: Под стандартным тут понимается функционал, вызываемый по Ctrl+F3 - позволяющий сохранять поименно пользовательские настройки фильтров. | 
|  | 
|  05.10.2010, 08:39 | #9 | 
| Участник | 
			
			У меня рац.предложение.  Как совершенно справедливо заметил tricky Цитата: Отсюда предложение - в предложенной tricky схеме автоматического востановления фильтра избавится от необходимости "перед super() в методе close() вставлять dev_SaveableQueryRun.formClosePre()"; В общем, дарю идею  . Дерзайте! | 
|  | |
| За это сообщение автора поблагодарили: tricky (1). | |
|  05.10.2010, 08:56 | #10 | 
| Участник | Цитата: 
		
			Сообщение от S.Kuskov
			   У меня рац.предложение.  Как совершенно справедливо заметил tricky Стандарный функционал к тому же и сам умеет запоминать последний используемый фильтр (он остаётся в списке сохранённых фильтров под именем "Ранее использованный запрос"). Отсюда предложение - в предложенной tricky схеме автоматического востановления фильтра избавится от необходимости "перед super() в методе close() вставлять dev_SaveableQueryRun.formClosePre()"; В общем, дарю идею  . Дерзайте! Как в расширенном фильтре у формы сделать, авто фильтрацию при запуске формы? 
				__________________ Axapta v.3.0 sp5 kr2 | 
|  | |
| За это сообщение автора поблагодарили: tricky (2). | |
|  05.10.2010, 09:08 | #11 | 
| Участник | |
|  | 
|  05.10.2010, 09:31 | #12 | 
| Участник | Цитата: 
		
			Сообщение от AndyD
			   Уже давно реализовано Как в расширенном фильтре у формы сделать, авто фильтрацию при запуске формы?  . А что касается того, что стандартный функционал способен сам запоминать последний используемый запрос - я думал об этом. Но заметил такую особенность: последний используемый запрос сохраняется в том случае, если мы вызываем форму "Запрос" по Ctrl+F3 или же по кнопке на панели. Однако если мы просто по правой кнопке мыши по полю установим фильтр - то это изменение не запомнится. Или я чего-то не так делаю? К тому же, этот класс изначально писался для простенького справочника, но для "тройки", а вот там функционала "Ранее использованный запрос" отсутствует, во всяком случае - у нас (SP3). | 
|  | 
|  05.10.2010, 10:19 | #13 | 
| Участник | 
			
			Если кому интересно, прикрепил обновленный класс - теперь учитывается то обстоятельство, вызывается ли эта форма через переход к основной таблице или в качестве lookup-формы. Еще раз спасибо AndyD. Последний раз редактировалось tricky; 05.10.2010 в 10:26. | 
|  | 
|  05.10.2010, 12:38 | #14 | 
| Участник | 
			
			На самом деле, было бы удобно сделать галку "Фильтр по умолчанию" и открывать не последний фильтр, а именно отмеченный.  Похожую задачу даже ставил разработчикам на одном проекте, но т.к., начиная с 4.0, можно добавить в меню избранное любую форму и настроить фильтр по умолчанию стандартной функцией, решили не делать модификацию. 
				__________________ Ivanhoe as is.. | 
|  | 
|  05.10.2010, 12:48 | #15 | 
| Участник | Цитата: 
		
			Сообщение от Ivanhoe
			   На самом деле, было бы удобно сделать галку "Фильтр по умолчанию" и открывать не последний фильтр, а именно отмеченный.  Похожую задачу даже ставил разработчикам на одном проекте, но т.к., начиная с 4.0, можно добавить в меню избранное любую форму и настроить фильтр по умолчанию стандартной функцией, решили не делать модификацию. | 
|  | 
|  05.10.2010, 13:00 | #16 | 
| Участник | 
			
			В форме сохраните фильтр, добавьте форму в избранное. Потом откройте редактирование избранного, выберите форму и там будет кнопка для выбора фильтра по-умолчанию.
		 
				__________________ Ivanhoe as is.. | 
|  | |
| За это сообщение автора поблагодарили: tricky (2). | |
|  05.10.2010, 13:06 | #17 | 
| Administrator | 
			
			в 4.0 и выше при нажатии на кнопку добавить в избранное можно выбрать из списка запрос, сохраненный при форме, добавляемой в избранное. Если запрос не сохранен при форме - то конечно ничего выбрать нельзя ("Ранее использованный запрос" не считается сохраненным) Ну и конечно - это все актуально только для тех форм, которые вызываются непосредственно из меню, а не через кнопку или еще как-то. UPD опередили 
				__________________ Возможно сделать все. Вопрос времени | 
|  | |
| За это сообщение автора поблагодарили: tricky (1). | |
|  05.10.2010, 13:10 | #18 | 
| Участник | Цитата: 
		
			Сообщение от tricky
			   Спасибо большое, за наводку. К своему стыду, я совершенно не подумал, что форма может вызываться при переходе к основной таблице или же использоваться в качестве Lookup-формы. Да если быть откровенным, не учтено то, что на форме может быть не один основной датасоурс, а несколько, не связанных между собой.... В общем там требуется еще работа напильником   . | 
|  | |
| За это сообщение автора поблагодарили: tricky (1). | |
|  05.10.2010, 13:13 | #19 | 
| Участник | Цитата:  Ой, наврал. Учтено  . Последний раз редактировалось tricky; 05.10.2010 в 13:20. | 
|  | 
| Теги | 
| queryrun, syslastvalue, xsyslastvalue, законченный пример, полезное, сохраниние настроек | 
|  | 
| 
 |