powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Настройка связи между таблицами
11 сообщений из 11, страница 1 из 1
Настройка связи между таблицами
    #32196781
iwa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброе утро!Кто знает ответьте, пожалуйста, на вопрос.

Есть две таблицы между которыми установлена связь в базе данных с помощью индексов по ключевому полю.
Вторая таблица является дочерней к первой.

В первой форме существует грид для первой таблицы. На второй форме размещается вторая(дочерняя) таблица.

При вызове второй формы грид для дочерней таблицы должен показывать только записи,связанные с родительской записью.
Для этого в Data Envir.. я использую два курсора для обоих таблиц в форме два.

Все идет замечательно, т.е. если я прокручиваю грид-список в первой форме, то в гриде второй формы также показываются связанные записи.

Но проблема в том, что когда первоначально я открываю форму два, то она показывает все записи, но стоит вернуться к форме один и прокрутить список или добавить в гриде на форме два новую запись, как все делается так как надо, т.е. показываются только связанные записи.

Что-то я видимо опустил, может при инициализации второй формы надо сделать переход по GOTO на запись родительской таблицы, или что-то еще???

Помогите с этим вопросом...
И еще к тому же. Как лучше сделать, чтобы caption второй формы показывал содержимое нужного поля родительской таблицы , ее текущей записи и при прокрутки в гриде соответственно менялся.

Всем заранее спасибо за ответы.
...
Рейтинг: 0 / 0
Настройка связи между таблицами
    #32196935
Flex2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А во что установлена свойсво DataSession посмотри?
Думаю нужно поставить либо на всех формах в Default, либо при инициализации второй формы устанавливать ее значение DataSesionID в значение родительской формы.
...
Рейтинг: 0 / 0
Настройка связи между таблицами
    #32197270
iwa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!
Я дома вечером посмотрю...

Если не получиться, то еще буду присать вопросы...

Хорошо если только в этом беда...
...
Рейтинг: 0 / 0
Настройка связи между таблицами
    #32197288
iwa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А на счет заголовка формы-2 (См. детальный вопрос выше...)????
...
Рейтинг: 0 / 0
Настройка связи между таблицами
    #32197384
NE_Dimon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В переменную My_Caption записываешь значение нужных полей и присваиваешь

Second_Form.Caption = My_Caption
...
Рейтинг: 0 / 0
Настройка связи между таблицами
    #32197495
iwa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А будет работать смена заголовка, если сделать так:

Форма2.Caption=Таблица1.Поле1

и прописать это в Refresh формы1
?????
...
Рейтинг: 0 / 0
Настройка связи между таблицами
    #32197588
NE_Dimon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В принципе, в этой ситуации проще проверить самому, я только дал идею (давно не занимался Фоксом, пишу исключительно по памяти).
А что, обе формы видны одновременно? Нельзя что-ль оба грида разместить на одной форме?
...
Рейтинг: 0 / 0
Настройка связи между таблицами
    #32197608
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Что-то я видимо опустил, может при инициализации второй формы надо сделать переход по GOTO на запись родительской таблицы, или что-то еще???

Да, именно это и надо сделать. Более того, необходимо сделать переход в рабочую область родительской таблицы. Т.е. событие Init дочерней формы должно выглядеть примерно так:

LPARAMETERS tnParentID, tcCaption
select TabParent
LOCATE FOR ID=m.tnParentID
ThisForm.Caption=m.tcCaption

Из описания я так понял, что дочерняя форма НЕ модальная. В этом случае проще всего сделать ее открытие следующим образом:

PUBLIC goChildForm
DO FORM MyChildForm.scx NAME goChildForm LINKED

Тогда в AfterRowColChange родительской формы так прямо и пишешь

goChildForm.Caption=Таблица1.Поле1

Ну тут есть некоторые особенности, а также другие варианты, но думаю, пока хватит и этого
...
Рейтинг: 0 / 0
Настройка связи между таблицами
    #32197925
iwa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравстуйте!

Конечно можно сделать два грида на одной форме, но задача такова, что
грид для таблицы-2 нужен не постоянно, так как показывает информацию, меняющуюся относительно редко.

Я думаю, может быть объединить обе формы в форм-сет и управлять ими как с одним объектом...

Единственное что в этом случае, как обе формы теперь объединить и сделать у них единый Data Envir...

Спасибо всем за ответы !!!

Может есть еще какие-то варианты...
...
Рейтинг: 0 / 0
Настройка связи между таблицами
    #32197946
iwa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет,ВладимирМ!

Эти два варианта нужно использовать вместе или один из них?
Вариант-1
"
LPARAMETERS tnParentID, tcCaption
select TabParent
LOCATE FOR ID=m.tnParentID
ThisForm.Caption=m.tcCaption
"
ДА! - дочерняя форма НЕ модальная.

Вариант-2
"
PUBLIC goChildForm
DO FORM MyChildForm.scx NAME goChildForm LINKED

Тогда в AfterRowColChange родительской формы так прямо и пишешь

goChildForm.Caption=Таблица1.Поле1
"
И что означает LINKED
...
Рейтинг: 0 / 0
Настройка связи между таблицами
    #32204923
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вопрос все еще актуален, то:

-) Приведенные методы вовсе не противоречат друг другу, т.е. можно использовать оба способа одновременно или один из них. Дело вкуса и личных предпочтений.

-) Ключевое слово LINKED в команде DO FORM означает, что удаление переменной goChildForm автоматически приведет к удалению формы, ссылка на которую записана в эту переменную. Если слова LINKED нет, то удаление переменной никак не повлияет на саму форму.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Настройка связи между таблицами
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]