|  20.01.2009, 12:50 | #1 | 
| Участник | Простой QueryRun не работает 
			
			Такой вопрос возник. Есть таблица своя. Пытаюсь к ней join inventJournalTable сделать не выходит. Не выходит так как разные EDT. Для примера привожу джобик свою таблицу заменил на InventTrans. X++: static void Job28(Args _args) { InventTrans inventTrans; Query query; QueryBuildDataSource qbdsInventTrans; QueryBuildDataSource qbdsInventJournalTable; QueryRun queryRun; Qty qty; ; query = new Query(); qbdsInventTrans = query.addDataSource(tablenum(InventTrans)); qbdsInventTrans.addRange(fieldnum(InventTrans, ItemId)).value('00-808-MS'); qbdsInventJournalTable = qbdsInventTrans.addDataSource(tablenum(InventJournalTable)); qbdsInventJournalTable.relations(false); qbdsInventJournalTable.joinMode(JoinMode::ExistsJoin); qbdsInventJournalTable.addLink(fieldnum(InventTrans,TransRefId),fieldnum(InventJournalTable,JournalId)); queryRun = new QueryRun(query); //info(query.dataSourceNo(1).toString()); while (queryRun.next()) { inventTrans = queryRun.get(tablenum(InventTrans)); qty += inventTrans.Qty; } info(int2str(qty)); } 
				__________________ Энергия молодых и неравнодушных способна изменить мир к лучшему. | 
|  | 
|  20.01.2009, 13:04 | #2 | 
| Боец | 
			
			Вроде все должно работать на первый взгляд...  Посмотрите, правильный ли запрос строится: X++: info(qbdsInventTrans.toString()); | 
|  | 
|  20.01.2009, 13:11 | #3 | 
| Участник | 
			
			Да запрос то правильный выходит, но пустой. Цитата: 
		
			SELECT * FROM InventTrans WHERE ((ItemId = 00-808-MS)) EXISTS JOIN * FROM InventJournalTable WHERE InventTrans.TransRefId = InventJournalTable.JournalId
		
	 Можете у себя запустить, будет тоже самое. Ax 3.0 sp4 
				__________________ Энергия молодых и неравнодушных способна изменить мир к лучшему. | 
|  | 
|  20.01.2009, 13:20 | #4 | 
| Боец | 
			
			Ну, если запрос правильный, значит, возможно, нет записей подходящих под него... Попробуйте для начала убрать рэнж по ItemId, может в нем проблема... А в цикл он заходит? может просто sum(Qty) = 0 ?!   Последний раз редактировалось DSPIC; 20.01.2009 в 13:23. | 
|  | 
|  20.01.2009, 13:24 | #5 | 
| Участник | 
			
			Да range я поставил чтоб быстрее запрос отрабатывал. Можете его вообще убрать всё останется так же. Говорю же дело в том что EDT разные, хоть длина и совпадает, но этот факт оказывает такое воздействие. 
				__________________ Энергия молодых и неравнодушных способна изменить мир к лучшему. | 
|  | 
|  20.01.2009, 13:32 | #6 | 
| Участник | 
			
			У EDT этих полей правое выравнивание, но РАЗНАЯ длина (20 и 10 символов соответственно) Отсюда и проблема. UPD. Если конечно сами типы не меняли. Проверил на дефолте. 
				__________________ Существует 10 типов людей: одни понимают двоичную систему, другие - нет. Последний раз редактировалось Weez; 20.01.2009 в 13:34. | 
|  | 
|  20.01.2009, 13:32 | #7 | 
| Боец | 
			
			А млин, понял...  На всякий случай, если тупой не только я: Таблицы не джойнятся, т.к. поля, по которым идет связка этих таблиц, имеют разную длину.... | 
|  | 
|  20.01.2009, 13:41 | #8 | 
| Участник | |
|  | 
|  20.01.2009, 13:46 | #9 | 
| Участник | 
			
			У меня тоже одинаковая длина и там и там 30 символов но не отрабатывает.
		 
				__________________ Энергия молодых и неравнодушных способна изменить мир к лучшему. | 
|  | 
|  20.01.2009, 13:46 | #10 | 
| Участник | Цитата: У меня и там и там 30 символов. 
				__________________ Энергия молодых и неравнодушных способна изменить мир к лучшему. | 
|  | 
|  20.01.2009, 13:54 | #11 | 
| Участник | 
			
			А какая версия Axapt-ы?
		 
				__________________ Энергия молодых и неравнодушных способна изменить мир к лучшему. | 
|  | 
|  20.01.2009, 13:59 | #12 | 
| NavAx | 
			
			а добавить InventJournalTrans религия не позволяет. по стандару выравнивание разное у TransRefId и JournalId. ps Помогите разобраться с QueryBuildDataSource Последний раз редактировалось raz; 20.01.2009 в 14:04. | 
|  | |
| За это сообщение автора поблагодарили: miklenew (3). | |
|  20.01.2009, 14:15 | #13 | 
| Участник | Цитата: Выравнивание пробовал делать одинаковое не помогло. Спасибо. Интересная ссылка. Решил по другому сделать. 
				__________________ Энергия молодых и неравнодушных способна изменить мир к лучшему. | 
|  | 
|  20.01.2009, 14:17 | #14 | 
| Участник | |
|  | 
| Теги | 
| queryrun, программно | 
|  | 
| 
 |