| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Фильтр join'а в другую форму
			 
			
			Доброго времени суток! 
		
		
		
		
		
		
			Необходимо передать в другую форму DataSource первой с наложенными пользователем фильтрами. Для этого передаю Query. Нюанс тот, что таблица - outer join 2-х таблиц, а во второй форме мне необходимо заполнять значения второй таблицы, в которой может не быть записей. Не смотря на то, что использую ttsbegin, ttscommit и query.dataSourceNo(2).update(true) () выдается сообщение о том, что запись не выбрана для обновления. Что можно сделать? 
				__________________ 
		
		
		
		
	Являться частью базы знаний, дабы не изобретать велосипед Делать больше, чем говорить  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			up!
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Являться частью базы знаний, дабы не изобретать велосипед Делать больше, чем говорить  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я так думаю народ в шоке от таких "архитектурных решений" поэтому и молчит  
		
		
		
		
		
		
		
	![]() Если есть какая-то возможность, просто сделайте попроще интерфейс.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Согласен.  
		
		
		
		
		
		
			![]() Тогда расскажу о том, чего хочется достичь – возможно, есть более простое решение. На 1-й форме – таблица, которую пользователь может фильтровать при помощи стандартных средств. Вторая форма выполняет т.н. «групповое обновление» таблицы в первой, т.е. при её вызове пользователь при помощи checkbox и textbox может определить, какие поля и какие значения первой таблицы заполнить, и по нажатию OK все записи в соотв. полях таблицы должны заполниться одинаковыми значениями. Так выглядит 2-ая форма: 
				__________________ 
		
		
		
		
	Являться частью базы знаний, дабы не изобретать велосипед Делать больше, чем говорить  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Не с ценами ли балуетесь?  
		
		
		
		
		
		
		
	![]() так и так Вам по Query перебирать все записи. Следите, неапротив которые установлены checkboxы и заполняйте только их!  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Иллюстрацию присоединять не хочет; попробую файл...
		 
		
		
		
			
				__________________ 
		
		
		
		
	Являться частью базы знаний, дабы не изобретать велосипед Делать больше, чем говорить  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Не с ценами ли балуетесь?  
так и так Вам по Query перебирать все записи. Следите, неапротив которые установлены checkboxы и заполняйте только их! ![]() Query как раз и используется для того, чтобы не перебирать все записи. 
				__________________ 
		
		
		
		
	Являться частью базы знаний, дабы не изобретать велосипед Делать больше, чем говорить  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Может я чего-то не так понял, но во второй форме вообще данные из первой не нужны, вторая форма это что-то вроде диалога (и, кстати, можно ее было и сделать в виде RunBaseDialog) 
		
		
		
		
		
		
		
	Но если уж хочется использовать нарисованную форму, я бы все сделал через класс. Т.е. есть класс "обновления себестоимости". У него есть свой query (queryRun) который мы получаем из 1-й формы. В форме-2 на closed мы вешаем методы, передающие значения контролов классовым внутренним переменным. А потом запускаем метод класса, который, используя query из первой формы и параметры из 2-й, проводит необходимую нам групповую операцию.  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Может я чего-то не так понял, но во второй форме вообще данные из первой не нужны, вторая форма это что-то вроде диалога (и, кстати, можно ее было и сделать в виде RunBaseDialog) 
Но если уж хочется использовать нарисованную форму, я бы все сделал через класс. Т.е. есть класс "обновления себестоимости". У него есть свой query (queryRun) который мы получаем из 1-й формы. В форме-2 на closed мы вешаем методы, передающие значения контролов классовым внутренним переменным. А потом запускаем метод класса, который, используя query из первой формы и параметры из 2-й, проводит необходимую нам групповую операцию. 
				__________________ 
		
		
		
		
	Являться частью базы знаний, дабы не изобретать велосипед Делать больше, чем говорить  | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			На вскидку, проверяй неравенство 0 recid строки второй таблицы перед обновлением, а в противном случае делай insert, если это требуется.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			На вскидку, проверяй неравенство 0 recid строки второй таблицы перед обновлением, а в противном случае делай insert, если это требуется.
		
	 
				__________________ 
		
		
		
		
	Являться частью базы знаний, дабы не изобретать велосипед Делать больше, чем говорить  | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Код (неработающий) выглядит так: 
		
		
		
		
		
		
			PHP код: 
	
			
	
				__________________ 
		
		
		
		
	Являться частью базы знаний, дабы не изобретать велосипед Делать больше, чем говорить  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Выскажу пару соображений. Извини, нет возможности сейчас проверить. 
		
		
		
		
		
		
		
	1) Первые две строчки после ttsbegin поменять местами. Ты создаешь queryRun по query, а затем модифицируешь query. Я сильно сомневаюсь, что эта модификация скажется на QueryRun. 2) Можно попробовать вызвать standardCostTable.selectForUpdate(true); 3) Возможно стоит перенисти ttsbegin чуть ниже, сразу перед циклом (хотя вроде это и не принципиально) 4) Попробуй закоментировать insert - будет вылезать ошибка?  | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ничего не помогает. У кого-нибудь есть свежие мысли?
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Являться частью базы знаний, дабы не изобретать велосипед Делать больше, чем говорить  | 
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Класс QueryBuildDataSource метод update( boolean _value ).
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#16 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Может, попробовать 
		
		
		
		
		
		
			PHP код: 
	
			
	
				__________________ 
		
		
		
		
	Андрей.  | 
| 
	
 |