|
|
|
Grid? SET RELATION
|
|||
|---|---|---|---|
|
#18+
Такая ситуация: есть форма 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, что это может быть??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 15:18 |
|
||
|
Grid? SET RELATION
|
|||
|---|---|---|---|
|
#18+
Сделай сначала SELECT Units index on cod_unit to cod а потом уже SELECT "Def_in" && другая таблица, в которой есть поле cod_unit SET RELATION TO Def_in.cod_unit INTO "Units" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 18:11 |
|
||
|
Grid? SET RELATION
|
|||
|---|---|---|---|
|
#18+
Индекс уже есть, он никуда не делся. Зачем еще раз индексировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 18:24 |
|
||
|
Grid? SET RELATION
|
|||
|---|---|---|---|
|
#18+
После SELECT "Def_in" SET RELATION TO необходимо обнулить Grid на Form1 т.е ThisFormset.Form1.Grid1.Recordsource =' ' ThisFormset.Form1.Grid1.Recordsource ='Units' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 18:41 |
|
||
|
Grid? SET RELATION
|
|||
|---|---|---|---|
|
#18+
Сергей, БрянскТакое ощущение, что RELATION не отменяется, хотя в Data Session видно, что связи нет. Подскажите, please, что это может быть??? Так и есть. Это особенность работы собственно объекта Grid (а также BROWSE). RELATION с точки зрения подчиненного Grid - это своеобразный фильтр. Даже после отмены Relation последний наложенный "фильтр" запоминается в объекте Grid. Надо "встряхнуть" сам объект Grid. Специально не проверял, но попробуй следующие варианты: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Но вообще-то, всего этого можно избежать, если каждую форму открывать в Private DataSession. В этом случае подобные коллизии просто невозможны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 18:43 |
|
||
|
Grid? SET RELATION
|
|||
|---|---|---|---|
|
#18+
Очень не хочется переопределять RecordSource у Grid, т.к. придется заново расписывать все Column, Text, их свойства и события. События, конечно, можно переопределить через BindEvent, но это тоже лишняя работа, если Grid уже настроен и работает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 19:00 |
|
||
|
Grid? SET RELATION
|
|||
|---|---|---|---|
|
#18+
Сергей, БрянскОчень не хочется переопределять RecordSource у Grid, т.к. придется заново расписывать все Column, Text, их свойства и события. События, конечно, можно переопределить через BindEvent, но это тоже лишняя работа, если Grid уже настроен и работает... Не придется. Переписать нужно только источники данных. Код приведен во втором варианте. Все остальные настройки и события останутся без изменений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 20:52 |
|
||
|
Grid? SET RELATION
|
|||
|---|---|---|---|
|
#18+
[quot ВладимирМ Переписать нужно только источники данных. Код приведен во втором варианте. Все остальные настройки и события останутся без изменений.[/quot] Да, действительно все работает и другие настройки не сбились. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 11:19 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=284&tid=1592757]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 327ms |

| 0 / 0 |
