|  26.07.2002, 17:31 | #1 | 
| Moderator |  Поиск в Grid по полю из другой таблицы 
			
			Здравствуйте! Есть 2 таблицы, первая содержит поле (код) из второй. В гриде - записи из первой таблицы. Как реализовать сабжевый поиск/фильтрацию, например, по названию из второй таблицы? Если используется display-метод, то по умолчанию не работает (может, кто-то знает, как сделать?). Пробовал помещать поле Название из 2-го datasource, связанного InnerJoin`ом с 1-м, в грид, но при этом начинаются глюки при создании в форме новой записи. Сложный фильтр (через Ctrl+F3) не предлагать  , нужно все прямо на форме. 
				__________________ Андрей. | 
|  | 
|  26.07.2002, 20:01 | #2 | 
| Участник | 
			
			Попробуй сделать специальный функционал по добавлению новой записи, типа кнопочку "Добавить.." сбоку пририсовать.  Так уберешь (или добавишь  ) глюки по добавлению новой записи. А все остальное, как ты написал. | 
|  | 
|  29.07.2002, 12:51 | #3 | 
| Участник | 
			
			Самое главное, не забудь, что у пользователя может и не быть прав на вторую таблицу   А также не забудь, что вторую таблицу могут и выключить. Ну и так далее. | 
|  | 
|  31.07.2002, 18:41 | #4 | 
| Moderator |   
			
			Глючит мой способ. Тут обнаружил после создания очередной записи (создание новой записи сделал через отдельную форму), что эта самая УЖЕ СОЗДАННАЯ запись появляется в форме НЕ СРАЗУ после ее (формы) открытия, а лишь после каких-либо манипуляций в форме, скроллирования записей и т.д. Че-то с этим InnerJoin'ом не так...
		 
				__________________ Андрей. | 
|  | 
|  31.07.2002, 20:01 | #5 | 
| Участник | 
			
			И reread() на datasource не помогает? ---------- from Developer's Guide If you want to refresh the form with records that were inserted in a method or job that was called, then you should use research ---------- | 
|  | 
|  31.07.2002, 20:06 | #6 | 
| Moderator |   
			
			Дык, вновь созданная запись-то появляется в форме, а когда форму закрыл-открыл - нету записи   . Поскроллировал - появилась... 
				__________________ Андрей. | 
|  | 
|  31.07.2002, 20:42 | #7 | 
| Участник | 
			
			Может это с кэшированием одной из таблиц связано... Посмотри что там у них в свойстве caheLookup, может с ним надо поиграться. А я вот быстренько накидал примерчик: в форме отображается созданная таблица с полем типа ItemId и innerJoin на InventTable. Если в свойствe Mandatory поля ItemId стоит yes, то все работает на ура без всяких кнопочек. может я чего недоглядел? | 
|  | 
|  01.08.2002, 11:07 | #8 | 
| Moderator | 
			
			Попробовал тоже быстренько набросать примерчик с InventTable... Ну не создает новую запись без кнопки, хоть ты тресни... Пытается, судя по сообщениям об ошибке, создать запись также и в InventTable, хотя на InventTable_DS запрещено создание записей. Вот, можете полюбоваться...
		 
				__________________ Андрей. | 
|  | 
|  01.08.2002, 13:02 | #9 | 
| ---------------- | 
			
			Предлагаю перекрыть modified на поле ItemId PHP код: 
			 | 
|  | 
|  01.08.2002, 16:36 | #10 | 
| Moderator |  О пропадании записей в гриде. 
			
			Оказывается, в пропадании записей виновато магическое сочетание "использование InnerJoin и окрашивание записей в разные цвета" (метод displayOption() на DataSource)! Причем пропадание записей на форме наблюдалось только если все записи сразу не отображались при открытии (не влезали в форму). Ну и до кучи, пропадали только записи начиная с 20-й по счету (независимо от размеров формы)! Сильно? Убрал цветовую раскраску - пока все работает. 
				__________________ Андрей. | 
|  |