![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Serggggg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 12.12.2003 Где: Донецк, Украина Репутация: нет Всего: нет |
Уважаемые форумяне! Дайте пожалуйста совет! Я запутался!
Ситуация такова. Есть форма, в которой задействовано 2 таблицы – основная и подчинённая. К полям записи основной таблицы доступ осуществляется через TDBEdit и прочее. К полям записи подчинённой формы – через Grid. 2 таблицы связаны по ID таким образом, что одной записи главной таблицы может соответствовать n записей в подчинённой таблице. Я обозначу основную и подчинённую таблицы как Table1 и Table 2 соответственно. При событии FormShow срабатывает код: Table2.Active:=False; //Т.е. Grid нам пока не нужен Table1.Append; //По идее, должно добавлять новую пустую запись в конец таблицы Далее нужно заполнить поля таблицы – заполняем с помощью вышеописанных компонентов. После этого в основной таблице сохраняется запись с помощью команды Table1.Post и надо перейти к Grid’у – заполнить n записей в подчинённой таблице. Используется обработчик AfterPost: Table1.Refresh; //Таблица обновляется, т.к. из неё подчинённая таблица хватает 2 поля //Но после этого курсор таблицы вылетает не на только что введённую, а на первую запись //Мне нужны только те записи в Grid’е, которым соответствует единственная запись в Table1 – поэтому применён фильтр (ID таблицы Table1 = ID таблицы Table2) Table2.Filter:='NPN_ID='+Table1.Fields.Fields[0].Text; Table2.Active:=True; //Grid стал активным Вопросы возникают следующие: Как после Refresh вернуться к той же самой записи в Table1? Как понять странное исчезновение записей в Grid’e? Т.е. я полностью заполняю первую строчку, а после перехода на вторую запись первая исчезает. В таблицу она заносится, но не отображается. Может быть, это из-за того, что к таблице применён фильтр? Большое спасибо за внимание. С уважением, Serggggg --------------------
C уважением, Serggggg. |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
По поводу вернуться на то же место - запоминай ID таблицы, а потом делай поиск по этому ID.
Можно посмотреть в сторону Bookmark - но я не знаю, насколько это нормально может работать при Refresh - может и не получится. А что не показывает - фильтр само собой мешает. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |