powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Grid? SET RELATION
8 сообщений из 8, страница 1 из 1
Grid? SET RELATION
    #33441069
Такая ситуация: есть форма Form1, на ней Grid, Grid.RecordSourceType=Alias,
Grid.RecordSource - таблица "Units".
На форме есть кнопочка, по которой вызывается другая форма, Form2.
в Form2.Activate устанавливаю:

SELECT "Def_in" && другая таблица, в которой есть поле cod_unit
SET RELATION TO Def_in.cod_unit INTO "Units"

на Form2 тоже есть Grid, в котором отображаются поля из ""Def_in и "Units"
(связь через RELATION).
При выгрузке формы Form2 делаю:
SELECT "Def_in"
SET RELATION TO
При возвращении на Form1, Grid показывает только одну строчку,
(на которой был указатель записи в Form2.Grid), а при установке фокуса на Grid - вообще ничего. Пустой Grid!!! Такое ощущение, что RELATION не отменяется,
хотя в Data Session видно, что связи нет.
Подскажите, please, что это может быть???
...
Рейтинг: 0 / 0
Grid? SET RELATION
    #33441675
Jose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделай сначала

SELECT Units
index on cod_unit to cod


а потом уже

SELECT "Def_in" && другая таблица, в которой есть поле cod_unit
SET RELATION TO Def_in.cod_unit INTO "Units"
...
Рейтинг: 0 / 0
Grid? SET RELATION
    #33441710
Индекс уже есть, он никуда не делся. Зачем еще раз индексировать?
...
Рейтинг: 0 / 0
Grid? SET RELATION
    #33441768
Jose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После

SELECT "Def_in"
SET RELATION TO


необходимо обнулить Grid на Form1

т.е ThisFormset.Form1.Grid1.Recordsource =' '
ThisFormset.Form1.Grid1.Recordsource ='Units'
...
Рейтинг: 0 / 0
Grid? SET RELATION
    #33441776
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей, БрянскТакое ощущение, что RELATION не отменяется,
хотя в Data Session видно, что связи нет.
Подскажите, please, что это может быть???
Так и есть. Это особенность работы собственно объекта Grid (а также BROWSE).

RELATION с точки зрения подчиненного Grid - это своеобразный фильтр. Даже после отмены Relation последний наложенный "фильтр" запоминается в объекте Grid. Надо "встряхнуть" сам объект Grid.

Специально не проверял, но попробуй следующие варианты:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
* Вариант  1 
ThisForm.Grid1.Visible = .F.
ThisForm.Grid1.Visible = .T.

* Вариант  2 
ThisForm.Grid1.RecordSource = ''
ThisForm.Grid1.RecordSource = 'MyTable'
ThisForm.Grid1.Column1.ControlSource = 'MyTab.Field1'
ThisForm.Grid1.Column2.ControlSource = 'MyTab.Field2'

Но вообще-то, всего этого можно избежать, если каждую форму открывать в Private DataSession. В этом случае подобные коллизии просто невозможны.
...
Рейтинг: 0 / 0
Grid? SET RELATION
    #33441796
Очень не хочется переопределять RecordSource у Grid, т.к. придется
заново расписывать все Column, Text, их свойства и события.
События, конечно, можно переопределить через BindEvent, но это
тоже лишняя работа, если Grid уже настроен и работает...
...
Рейтинг: 0 / 0
Grid? SET RELATION
    #33441971
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей, БрянскОчень не хочется переопределять RecordSource у Grid, т.к. придется
заново расписывать все Column, Text, их свойства и события.
События, конечно, можно переопределить через BindEvent, но это
тоже лишняя работа, если Grid уже настроен и работает...
Не придется.

Переписать нужно только источники данных. Код приведен во втором варианте. Все остальные настройки и события останутся без изменений.
...
Рейтинг: 0 / 0
Grid? SET RELATION
    #33443596
[quot ВладимирМ
Переписать нужно только источники данных. Код приведен во втором варианте. Все остальные настройки и события останутся без изменений.[/quot]

Да, действительно все работает и другие настройки не сбились.
Спасибо.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Grid? SET RELATION
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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