|  01.09.2005, 11:07 | #1 | 
| Участник | Проблемы с OuterJoin 
			
			Модифицировал форму SalesTable, добавив в нее новый DataSource с самопальной таблицей RMEPrintHistory. Новый DataSource (RMEPrintHistory) соединяется с DataSource (SalesTable) c типом связи OuterJoin. В таблице RMEPrintHistory в узле Relations, указана таблица SalesTable, далее в условии соединения задано SalesTable.salesid== RMEPrintHistory.salesid and RMEPrintHistory.documentstatus == 28 (Facture_Ru) Отношение между таблицами SalesTable и RMEPrintHistory один ко многим . Все работает без проблем. Но стоит применить фильтрацию к гриду , и условие RMEPrintHistory.documentstatus == 28 (Facture_Ru) словно слетает и вылезают все записи для которых верно SalesTable.salesid== RMEPrintHistory.salesid. Голову сломал, в чем может быть дело ... не пойму. Если кто сталкивался с подобным, помогите! | 
|  | 
|  01.09.2005, 11:08 | #2 | 
| Участник | 
			
			...
		 | 
|  | 
|  01.09.2005, 11:09 | #3 | 
| Участник | 
			
			....
		 | 
|  | 
|  01.09.2005, 11:24 | #4 | 
| Участник | 
			
			Можно посмотреть какая команда реально приходит на сервер SQL c помощью монитора SQL Аксапты или профайлера SQL Server
		 | 
|  | 
|  01.09.2005, 11:53 | #5 | 
| Участник | 
			
			Посмотрел в профайлере ..... До фильтрации PHP код: 
			PHP код: 
			Почему ? | 
|  | 
|  01.09.2005, 11:57 | #6 | 
| Участник | 
			
			По-моему вы строите релейшен не на той таблице. Попробуйте на SalesTable построить рейлейшн на  RMEPrintHistory
		 | 
|  | 
|  01.09.2005, 12:11 | #7 | 
| Участник | 
			
			А в форме запроса для фильтрации есть строка с DocumentStatus = 28 ?
		 | 
|  | 
|  01.09.2005, 12:15 | #8 | 
| Участник | 
			
			2 Bega DocumentStatus принадлежит подчиненной таблице. Чтобы отфильтровать по нему явно надо связать таблицы в фильтре и выбирать уже по RMEPrintHistory.DocumentStatus | 
|  | 
|  01.09.2005, 12:18 | #9 | 
| Участник | 
			
			У меня есть похожий случай, в форме фильтра строка с полем по которому есть связь типа "поле ссылки фиксировано" отображается сразу, ее не надо добавлять пользователю
		 | 
|  | 
|  01.09.2005, 12:21 | #10 | 
| Участник | 
			
			может попробовать сбросить настройки пользователя ?
		 | 
|  | 
|  01.09.2005, 12:22 | #11 | 
| Участник | 
			
			По-моему я делал все правильно (все-таки основной таблицей является SalesTable). Но все же попробовал перенести релэйшн в Salestable ... Получил два запроса без условия B.DOCUMENTSTATUS=28 до фильтрации PHP код: 
			после фильтрации PHP код: 
			Вопрос в том, почему при фильтрации условие B.DOCUMENTSTATUS=28 словно корова съедает ... Цитата: 
		
			А в форме запроса для фильтрации есть строка с DocumentStatus = 28 ?
		
	 | 
|  | 
|  01.09.2005, 12:35 | #12 | 
| Участник | Цитата: 
		
			DocumentStatus принадлежит подчиненной таблице. Чтобы отфильтровать по нему явно надо связать таблицы в фильтре и выбирать уже по RMEPrintHistory.DocumentStatus
		
	 | 
|  | 
|  01.09.2005, 12:47 | #13 | 
| Участник | 
			
			Извиняюсь, что внес сумятицу в вопрос. Невнимательно прочитал вопрос и посчитал, что много записей в SalesTable   | 
|  | 
|  01.09.2005, 12:53 | #14 | 
| Участник | 
			
			Я расчитывал, что выборка будет идти по следующему алгоритму без фильтрации PHP код: 
			PHP код: 
			 | 
|  | 
|  01.09.2005, 13:01 | #15 | 
| Участник | 
			
			Сейчас проверил. Поле связи фиксировано действительно присутствует в фильтре и устанавливатеся явно. При этом связанная таблица также явно указывается. Т.е. возможно вы убираете этот критерий из запроса? Могли бы вы показать скриншот самого запроса?
		 | 
|  | 
|  01.09.2005, 13:19 | #16 | 
| Участник | 
			
			Спасибо за помощь. Да, фиксированное поле присутсвует в виде условия ( которое можно удалить). Проблемы были из-за настроек пользователя. Подхватывался ранее настроенный запрос. После сброса настроек и удаления ранее сохраненных запросов фиксированное поля появилось. Вот бы его еще удалять нельзя было =) | 
|  | 
|  01.09.2005, 13:25 | #17 | 
| Участник | Цитата: 
		
			Изначально опубликовано ATimTim  Нет там такого условия. Но там также нет и условия равенства salesid, однако оно попадает запрос ... Цитата: 
		
			Изначально опубликовано ATimTim  Вот бы его еще удалять нельзя было =) | 
|  | 
|  01.09.2005, 13:28 | #18 | 
| Участник | 
			
			Посмотрите здесь http://www.axforum.info/forums/showt...8623#post78623 это обсуждалось только вчера для журналов
		 | 
|  | 
|  01.09.2005, 13:28 | #19 | 
| Участник | Цитата: 
		
			Чтобы его нельзя было удалить необходимо ему установить статус Locked или Hidden
		
	 | 
|  | 
|  01.09.2005, 15:51 | #20 | 
| Участник | 
			
			К сожалению без программирования я не знаю способа. Но могу предложить как это сделать для всей системы. Класс SysQueryForm, метод buildRange 1. Необходимо добавить следующую вложенную функцию PHP код: 
			PHP код: 
			PHP код: 
			 | 
|  |