![]() |
#1 |
Moderator
|
![]()
Здравствуйте!
Есть 2 таблицы, первая содержит поле (код) из второй. В гриде - записи из первой таблицы. Как реализовать сабжевый поиск/фильтрацию, например, по названию из второй таблицы? Если используется display-метод, то по умолчанию не работает (может, кто-то знает, как сделать?). Пробовал помещать поле Название из 2-го datasource, связанного InnerJoin`ом с 1-м, в грид, но при этом начинаются глюки при создании в форме новой записи. Сложный фильтр (через Ctrl+F3) не предлагать ![]()
__________________
Андрей. |
|
![]() |
#2 |
Участник
|
Попробуй сделать специальный функционал по добавлению новой записи, типа кнопочку "Добавить.." сбоку пририсовать.
Так уберешь (или добавишь ![]() |
|
![]() |
#3 |
Участник
|
Самое главное, не забудь, что у пользователя может и не быть прав на вторую таблицу
![]() А также не забудь, что вторую таблицу могут и выключить. Ну и так далее. |
|
![]() |
#4 |
Moderator
|
![]()
Глючит мой способ. Тут обнаружил после создания очередной записи (создание новой записи сделал через отдельную форму), что эта самая УЖЕ СОЗДАННАЯ запись появляется в форме НЕ СРАЗУ после ее (формы) открытия, а лишь после каких-либо манипуляций в форме, скроллирования записей и т.д. Че-то с этим InnerJoin'ом не так...
__________________
Андрей. |
|
![]() |
#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 ---------- |
|
![]() |
#6 |
Moderator
|
![]()
Дык, вновь созданная запись-то появляется в форме, а когда форму закрыл-открыл - нету записи
![]()
__________________
Андрей. |
|
![]() |
#7 |
Участник
|
Может это с кэшированием одной из таблиц связано... Посмотри что там у них в свойстве caheLookup, может с ним надо поиграться.
А я вот быстренько накидал примерчик: в форме отображается созданная таблица с полем типа ItemId и innerJoin на InventTable. Если в свойствe Mandatory поля ItemId стоит yes, то все работает на ура без всяких кнопочек. может я чего недоглядел? |
|
![]() |
#8 |
Moderator
|
Попробовал тоже быстренько набросать примерчик с InventTable... Ну не создает новую запись без кнопки, хоть ты тресни... Пытается, судя по сообщениям об ошибке, создать запись также и в InventTable, хотя на InventTable_DS запрещено создание записей. Вот, можете полюбоваться...
__________________
Андрей. |
|
![]() |
#9 |
----------------
|
Предлагаю перекрыть modified на поле ItemId
PHP код:
|
|
![]() |
#10 |
Moderator
|
![]()
Оказывается, в пропадании записей виновато магическое сочетание "использование InnerJoin и окрашивание записей в разные цвета" (метод displayOption() на DataSource)!
Причем пропадание записей на форме наблюдалось только если все записи сразу не отображались при открытии (не влезали в форму). Ну и до кучи, пропадали только записи начиная с 20-й по счету (независимо от размеров формы)! Сильно? Убрал цветовую раскраску - пока все работает.
__________________
Андрей. |
|