| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Мне пришлось реализовывать задачу фильрации Закупок по строкам закупок в форме Закупка. 
		
		
		
		
		
		
		
	Для этого я разместил на форме checkBox. И если я ставлю галку, то выполнялся ниженаписанный запрос, а если ее нет, то не выполнялся. Я написал в методе checkBox следующее PHP код: 
	
			
	Убираю - и появляется все. Но вот во второй раз и все последующие, когда я опять ставлю галку, уже ничего не исчезает и запрос этот уже не строиться. Т.е. через Info(PurchTable_DS.query().dataSourceNo(1).tostring()); я вижу что у меня в запросе только PurchTable и все! Почему и как это исправить?  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			При нажатии на галку ты каждый раз добавляешь новый источник, а удалять старые кто будет?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Изначально опубликовано dn  
При нажатии на галку ты каждый раз добавляешь новый источник, а удалять старые кто будет? PHP код: 
	
			
	подскажите, пожалуйста, как нужно правильно сделать?  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Это не поможет!  создай новый qbds с теми же параметрами.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Изначально опубликовано George Nordic  
Это не поможет! создай новый qbds с теми же параметрами.  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			попробуй: 
		
		
		
		
		
		
		
	PHP код: 
	
			
	 | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Когда работаешь с Query, очень полезно написать такой кусок кода: 
		
		
		
		
		
		
		
	PHP код: 
	
			
	 | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Нет, к сожалению, не помогает ... 
		
		
		
		
		
		
		
	Я через init() вижу следующие запросы Первый раз поставил галку SELECT * FROM PurchTable USING INDEX PurchIdx EXISTS JOIN * FROM PurchLine WHERE PurchTable.PurchId = PurchLine.PurchId все как надо Первый раз снял галку SELECT * FROM PurchTable USING INDEX PurchIdx Второй раз поставил галку SELECT * FROM PurchTable USING INDEX PurchIdx т.е. со второго раза у меня не создается моя связка ... Никак не пойму почему?  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Имелось в виду: 
		
		
		
		
		
		
		
	PHP код: 
	
			
	а лучше так: query.dataSourceNo(1).toString; то же самое только без лишнего мусора.  | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Использование exportXML() 
		
		
		
		
		
		
		
	показало, что у меня запросы добавляются друг за дружкой, а не подменяются. Т.е. как мне убирать предыдущий запрос? PHP код: 
	
			
	 | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			просто не стоит каждый раз при нажатии добавлять ЕЩЁ ОДИН DataSource, найди старый и сделай с ним, что душе угодно: 
		
		
		
		
		
		
		
	PHP код: 
	
			
	 | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Черт. сам перемудрил и Вас запутал. Мы как раз от этой строчки уйти пытались  
		
		
		
		
		
		
		
	![]() Попробуйте создать переменную - query и в нее при начальном ините query = new Query(PurchTable_DS.query()); тогда в PHP код: 
	
			
	Может, есть и проще способ...  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Изначально опубликовано ArturK  
Я выполняю следующее, когда снимаю галку PHP код: 
	
			
	а это нужно делать только один раз при первом нажатии (или вообще заранее).  | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Да, так все и происходит. 
		
		
		
		
		
		
		
	Может, в ините добавить qbds = PurchTable_DS.query().dataSourceNo(1).addDataSource(tableNum(PurchLine)); тогда код будет выглядеть так: PHP код: 
	
			
	 | 
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 PHP код: 
	
			
	 | 
| 
	
 | 
| 
			
			 | 
		#16 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасибо всем за помощь! 
		
		
		
		
		
		
		
	У меня все заработало так как надо...  | 
| 
	
 | 
| 
			
			 | 
		#17 | 
| 
			
			 ---------------- 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А теперь попробуй наложить фильтр по клиенту, а потом поставь галочку (фильтр по строкам)
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#18 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Может заодно и меня кто просветит.  
		
		
		
		
		
		
		
	Я тут разбираю аналогичную ситуацию (динамическое изменение DataSource), так вот в разбираемом мной коде предпочитают разнести правку Query и его замену в DataSource, т.е. логика примерно следующая: PHP код: 
	
			
	 | 
| 
	
 |