|  | 
|  16.09.2009, 15:46 | #1 | 
| Участник |  Фильтр по полю и lookup 
			
			Здравствуйте. Перекрыли метод lookup на поле датасорса, добавили всяких фильтров там, все работает. НО если в выпадающем списке сделать "Фильтр по полю" и ввести значение которое отфильтровалось (не видно в выпадающем списке), то он его находит. Что можно сделать???
		 
				__________________ Лучше сделать и жалеть, чем жалеть что не сделал | 
|  | 
|  16.09.2009, 16:04 | #2 | 
| Участник | 
			
			Можно сделать sql-ный фильтр по какому-нибудь ненужному пользователю полю, например по dataAreaId. X++: qbds.addrange(fieldnum(table1,dataAreaId)).value("field1=filter"); Такой фильтр пользователь снять не сможет. | 
|  | 
|  17.09.2009, 11:51 | #3 | 
| Участник | 
			
			А по подробней про locked можно?
		 
				__________________ Лучше сделать и жалеть, чем жалеть что не сделал | 
|  | 
|  17.09.2009, 12:11 | #4 | 
| Участник | X++: qbds.addrange(fieldnum(table1,dataAreaId)).value("field1=filter"); qbds.findRange(fieldnum(table1,dataAreaId)).status(RangeStatus::Locked); 
				__________________ aLL woRk aNd nO JoY MAKes jAck a dULL Boy | 
|  | 
|  17.09.2009, 12:21 | #5 | 
| Участник | X++: QueryBuildDataSource qbds; QueryBuildRange qbr; ; qbr = qbds.addrange(fieldnum(table1,dataAreaId)).value("field1=filter1 && field2=filter2"); qbr.status(1);//locked //или можно //qbr.status(2); //hidden | 
|  | 
|  16.09.2009, 16:29 | #6 | 
| Гость | 
			
			не забудьте еще validate перекрыть а то юзер он такой, не дали в лукапе выбрать - забъет тупо ручками =) | 
|  | 
|  17.09.2009, 12:33 | #7 | 
| NavAx | 
			
			на самом деле спасет только hidden, locked можно спокойно обойти, если сделать поиск по этому полю. точнее самый надежный вариант, это если приджоинить второй датасорс с такой же таблицой и фильтровать в нем, или не показывать на форме поля с фильтрами. всё остальное обходится через поиск. Последний раз редактировалось raz; 17.09.2009 в 12:43. Причина: 1 | 
|  | |
| За это сообщение автора поблагодарили: kalex_a (1). | |
|  17.09.2009, 12:55 | #8 | 
| Участник | 
			
			Так? X++: qbds.addrange(fieldnum(PurchTable_request,dataAreaId)).value("dat"); qbds.findRange(fieldnum(PurchTable_request,dataAreaId)).status(RangeStatus::Hidden); 
				__________________ Лучше сделать и жалеть, чем жалеть что не сделал | 
|  | 
|  17.09.2009, 13:11 | #9 | 
| Участник | Цитата: X++: qbds.addrange(fieldnum(PurchTable_request,dataAreaId)).value("PurchTable.InvoiceAccount = 012345") 
				__________________ aLL woRk aNd nO JoY MAKes jAck a dULL Boy | 
|  | 
|  17.09.2009, 13:09 | #10 | 
| Участник | 
			
			Для какого поля фильтр то надо сделать? Зачем фильтр 'dat'?
		 | 
|  | 
|  17.09.2009, 13:11 | #11 | 
| Участник | 
			
			тут можно посмотреть пример: \Forms\Address\Data Sources\Address\Methods\addQuerySalesTable 
				__________________ aLL woRk aNd nO JoY MAKes jAck a dULL Boy | 
|  | 
|  17.09.2009, 13:16 | #12 | 
| Участник | Цитата: 
		
			точнее самый надежный вариант, это если приджоинить второй датасорс с такой же таблицой и фильтровать в нем.
		
	 
				__________________ Лучше сделать и жалеть, чем жалеть что не сделал | 
|  |