|
|
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
Леди и джентельмены! Объясните мне, пожалуйста, в чем дело. Имеются 4 немодальные формы с гридами ReadOnly=.t. В Forma1 используются 3 таблицы, которые прописаны по отдельности источниками у гридов в 3 остальных формах. Я спокойно могу работать со всеми четырьмя открытыми формами. Но стоит мне закрыть Forma1, как в трех оставшихся вместо гридов остаются пунтые прямоугольники. Я уже прописала на GotFocus в каждой из этих форм grid.Refresh - не помогает. Как можно исправить положение? Благодарю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2005, 20:41:47 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
Сделать так, чтобы первая форма не закрыва/уничтожала те таблицы, которыми пользуются остальные формы. Боле подробно можно ответить после получения информации о способе открытия/закрыти таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2005, 21:21:07 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
В каждой форме DE. Все. По клике на кнопке срабатывает THISFORM.RELEASE() либо форма стандартно закрывается при нажатии на "красную кнопку" в углу окна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2005, 22:23:25 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
Лисонька, извини, но ты ответила не на тот вопрос, который я задал, а на совершенно другой. Я писАл про открытие/закрытие таблиц , а не форм . На эту тему надо внимательно изучить DE Forma1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2005, 22:36:55 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
Sergey Sizov.Лисонька, извини, но ты ответила не на тот вопрос, который я задал, а на совершенно другой. Я писАл про открытие/закрытие таблиц , а не форм . На эту тему надо внимательно изучить DE Forma1. Значит, моих знаний здесь недостаточно, я просто не знаю как ответить на поставленный вопрос. При создании формы в через конструктор нажимаю кнопку DE, там Add..., выбираю нужные мне таблицы или представления. Все, на этом мое участие закачивается. Попробовать проследить через Debugger, что где открывается/закрывается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2005, 22:55:38 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
DE не пользуюсь, но всетаки - посмотри свойство DE AutoCloseTables - по умолчанию оно .T., что значит закрывать таблицы при закрытие формы или формсета. Поставь его в .F. А закрывать нужные таблицы ручками, по выходу из формы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2005, 23:38:40 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
А DataSession у форм какая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2005, 02:27:37 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
Лисонька! Попробуйте в кажой из этих форм пставить DataSession Private. VFP будет создавать для каждой формы свою новую ДЕ. Проблема путсых grid должна решиться. Но такой шаг чреват пследствиями. Если в одной из форм вносятся в таблицу А новые записи, тогда в другой форме в этойже таблице А эти запписи наверняка окажутся не по order, а в конце грида. Да плюньте наконец на талицы, сделайте источником курсор. Судя по Вашему топику насчет алфавитного порядка к этому дело и идет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2005, 10:17:14 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
2Лисонька! Попробуйте перед закрытием формы1 оключать recordsource Gridов, а потом включать его снова. Я использую такую методику: 1. Отключаю источник данных thisform._grid1.recordsource='' 2. Делаю выборку Select ..... into cursor XXX или SQLEXEC(.....) 3. Подключаю источник thisform._grid1.recordsource='XXX' Если не сделать п.1, то получим белые прямоугольники. Правда у меня не используется DE и выставлена приватная сессия данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2005, 14:33:19 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
FoxLamer2Лисонька! Попробуйте перед закрытием формы1 оключать recordsource Gridов, а потом включать его снова. Я использую такую методику: 1. Отключаю источник данных thisform._grid1.recordsource='' 2. Делаю выборку Select ..... into cursor XXX или SQLEXEC(.....) 3. Подключаю источник thisform._grid1.recordsource='XXX' Если не сделать п.1, то получим белые прямоугольники. Правда у меня не используется DE и выставлена приватная сессия данных. Подход правильный, руками оно всегда надежнее, но... придется для всех колонок ControlSource восстанавливать. Что-то типа: .Column1.ControlSource = "MyCursor.MyFiled1" .Column2.ControlSource = "MyCursor.MyFiled2" .... и так для всех столбцов С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2005, 15:51:36 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
Белый прямоугольник Grid означает что была закрыта таблица-источник для этого Grid. Разумеется, Refresh тут уже не поможет. "Поздно пить Боржоми...". Если Вы работаете в Default DataSession (это настройка по умочанию) и оставлены опять же по умолчанию настройки DataEnvironment - AutoOpen Tables = .T. AutoClose Tables = .T. То происходит примерно следующее: В момент открытия формы DataEnvironent запоминает, какие именно таблицы он сам открыл из тех, что были включены внутрь DataEnvironent. В момент закрытия формы DataEnvironment закрывает все те формы, которые он сам же и открыл при открытии формы. При этом он никак не обращает внимания на то, что эти же таблицы в данный момент могут использоваться другими формами. Отсюда и проблемы. "Штатное" (наиболее распространенное) решение - это использовать для каждой формы Private DataSession. Но тут есть ряд особенностей: 1. Часть настроек автоматически сбрасываются в значение по умолчанию при открытии Private DataSession. Список этих настроек можно посмотреть в описании к команде SET DataSession. Т.е. их нужно заново настраивать при открытии форм в Private DataSession 2. Изменения, сделанные в одной DataSession становяться "видны" в другой DataSession не сразу, а спустя некоторый интервал времени. По умолчанию - через 5 секунд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2005, 17:13:08 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
2 Aleksey-K Подход правильный, руками оно всегда надежнее, но... придется для всех колонок ControlSource восстанавливать. Что-то типа: .Column1.ControlSource = "MyCursor.MyFiled1" .Column2.ControlSource = "MyCursor.MyFiled2" .... и так для всех столбцов Не обязательно, если в курсор выбирать только нужные поля в нужной последовательности...)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2005, 17:46:29 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
Благодарю всех, кто откликнулся! Точно, в Private с добавлением новых записей ерунда получается. Подключать вновь ControlSource попробую, но сейчас попытаюсь перевести все источники курсоры. Таблицы здесь на тысячу с небольшим записей, после добавления новой записи будет делаться заново выборка и обновление грида. Хотя... а наверно при этом тоже должен выходить пустой прямоугольник, ведь старый источник-курсор уничтожается... и все-таки указывать ControlSource опять... Что ж, дети спят, впереди ночь - буду эксперементировать. Еще раз огромное спасибо за советы! З.Ы. А почему лучше не пользоваться DE, а открывать все строками кода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2005, 22:57:04 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
>А почему лучше не пользоваться DE, а открывать все строками кода? Потомучто в этом случа можно полностью контролировать процесс открытия таблиц, их наличия на диске, наличие индексов и прочей фигни. Что через DE делается значительно сложнее или ваще не делается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2005, 09:08:42 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
BurnПотомучто в этом случа можно полностью контролировать процесс открытия таблиц, их наличия на диске, наличие индексов и прочей фигни. Что через DE делается значительно сложнее или ваще не делается Следует только иметь в виду, что для подавляющего большинства задача все это не требуется. DE не используют либо полные ламеры, которые не знают, что такое вообще есть, либо сильно крутые профессионалы, которые предпочитают полную управляемость всеми процессами. Ну, и при определенных типах задача использование DE проблематично. Т.е. использование DE в большинстве случаев вполне оправдано и целесообразно. Надо только понимать их ограничения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2005, 11:30:58 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
замечание для локальных данных я не понимаю вообще для чего люди вообще передергивают открытые таблицы (открывают, а затем закрывают таблицы) поработал в мск 3 мес в одной конторе там постоянные use в коде и понял, что так нельзя никогда писать !!!! (голова кругом идет проверять открыта или нет таблица) вспоминаю как страшный сон (еще в сети и паковали когда хотели) я пишу на фоксе 11 лет, такого не видел и за это ... извините потом холодным обливался, когда пак в сети писал (мне странно когда люди не умеют работать при наличии удаленных записей) тем более извините когда форма тащит данные, ну это .... я не понимаю такой подход я даже для больших задач (с локальными данными) при старте приложения открываю сразу все необходимые таблицы (очень часто одни и те же в нескольких раб.областях с разными индексами) (кстати в ненавистной мне 1С так делают) и все, данные живут, я не задумываюсь где их брать и как открывать приучился писать без паков и запов и эксклюзива для локальных данных стараюсь использовать только реляции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2005, 11:50:02 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
замечание для локальных данных я не понимаю вообще для чего люди вообще передергивают открытые таблицы (открывают, а затем закрывают таблицы) поработал в мск 3 мес в одной конторе там постоянные use в коде и понял, что так нельзя никогда писать !!!! (голова кругом идет проверять открыта или нет таблица) вспоминаю как страшный сон (еще в сети и паковали когда хотели) я пишу на фоксе 11 лет, такого не видел и за это ... извините потом холодным обливался, когда пак в сети писал (мне странно когда люди не умеют работать при наличии удаленных записей) тем более извините когда форма тащит данные, ну это .... я не понимаю такой подход я даже для больших задач (с локальными данными) при старте приложения открываю сразу все необходимые таблицы (очень часто одни и те же в нескольких раб.областях с разными индексами) (кстати в ненавистной мне 1С так делают) и все, данные живут, я не задумываюсь где их брать и как открывать приучился писать без паков и запов и эксклюзива для локальных данных стараюсь использовать только реляции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2005, 11:51:13 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
Народ! тогда скажите, а не прощ ли открыть единую для всех и вся DE в топ форме и не использовать ни каких DE в формах ин топ левел - все, что надо уже открыто? А для конкретных ситуаций использовать курсоры. :-) Лажа или сойдет для проекта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2005, 12:08:39 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
alex11100 я даже для больших задач (с локальными данными) при старте приложения открываю сразу все необходимые таблицы (очень часто одни и те же в нескольких раб.областях с разными индексами) (кстати в ненавистной мне 1С так делают) когда у Вас слетят заголовки открытых таблиц, вы так не будете делать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2005, 12:11:22 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
alex11100я не понимаю вообще для чего люди вообще передергивают открытые таблицы (открывают, а затем закрывают таблицы) Объясняю. Если объект не используется в данный момент - его логично закрыть. Накладные расходы на открытие/закрытие таблиц настолько ничтожны, что об этом можно вообще не думать alex11100поработал в мск 3 мес в одной конторе там постоянные use в коде и понял, что так нельзя никогда писать !!!! (голова кругом идет проверять открыта или нет таблица) вспоминаю как страшный сон (еще в сети и паковали когда хотели) я пишу на фоксе 11 лет, такого не видел и за это ... извините потом холодным обливался, когда пак в сети писал (мне странно когда люди не умеют работать при наличии удаленных записей) тем более извините когда форма тащит данные, ну это .... я не понимаю такой подход Вы сделали неверный вывод на основании "криво" написанной программы. FoxPro очень снисходительно относиться к ошибкам программистов. Как следствие, огромное количество программ имеет настолько "кривой" код, что просто диву даешся, как это вообще работает. alex11100я даже для больших задач (с локальными данными) при старте приложения открываю сразу все необходимые таблицы (очень часто одни и те же в нескольких раб.областях с разными индексами) (кстати в ненавистной мне 1С так делают) А смысл. Это как раз совершенно бессмысленная растрата ресурсов. alex11100и все, данные живут, я не задумываюсь где их брать и как открывать Уверяю Вас, при использовании DE все происходит абсолютно также. Не надо задумываться где брать и как открывать (при грамотной настройке, разумеется). DE сам все откроет и сам же закроет, когда надобность отпадет alex11100приучился писать без паков и запов и эксклюзива для локальных данных стараюсь использовать только реляции А вот это уже чистое "извращение". Это значит, отказаться от memo-полей (они требуют PACK), отказаться от триггеров, от целой кучи команд, которые могут автоматически создавать записи. Т.е. Вы сознательно отбросили массу возможностей FoxPro. Другое дело, что команды PACK не надо использовать непосредственно в рабчей проге. Это должно быть вынесено в отдельную служебную процедуру. Также как создание резервных копий, переиндексация, проверка целостностности базы данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2005, 12:11:42 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
О_В_ДНарод! тогда скажите, а не прощ ли открыть единую для всех и вся DE в топ форме и не использовать ни каких DE в формах ин топ левел - все, что надо уже открыто? А для конкретных ситуаций использовать курсоры. :-) Лажа или сойдет для проекта? я бы Вам посоветовал глянуть в сторону КС технологий... сделали селект из таблицы.. и работайте себе с курсором.. и так далее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2005, 12:16:17 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
Akiя бы Вам посоветовал глянуть в сторону КС технологий... Пардон, КС - это клиент-сервер или что-то другое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2005, 12:26:28 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
2 ВладимирМ DE не используют либо полные ламеры, которые не знают, что такое вообще есть, либо сильно крутые профессионалы, которые предпочитают полную управляемость всеми процессами. Ну, и при определенных типах задача использование DE проблематично. DE не используют еще и те, кто не использует за основу в своих программах конструкцию DO FORM.. В форме, созданной на основе класса, DE просто нет. Я, наверное, ламер, который знает, что есть DE, но не использую ее, так как мне больше нравится другая конструкция запуска формы: Lparameters tcClass, tcClassLib, tcParamString Local loForm loForm = .NULL. If EMPTY(tcParamString) loForm = NEWOBJECT(tcClass,tcClassLib,'') Else loForm = NEWOBJECT(tcClass,tcClassLib, '', &tcParamString) Endif if vartype(loForm) == 'O' loForm.Show Endif Else Return loForm EndIf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2005, 12:31:46 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
вы ребят наверное для одного компа и одного стола и делаете а если б для локальных сетевых задач - то и писали б по другому и придумали б чего а так лано - юзайте от того что юзер по сети отвалится от открытой таблицы я за 10 лет ни разу не увидел разрушения и ресурсов не перекушивает даже открывающийся в 500 метров табл все выше сказанное для локальных данных !!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2005, 12:56:56 |
|
||
|
Белые прямоугольники вместо Grid
|
|||
|---|---|---|---|
|
#18+
вы ребят наверное для одного компа и одного стола и делаете а если б для локальных сетевых задач - то и писали б по другому и придумали б чего а так лано - юзайте от того что юзер по сети отвалится от открытой таблицы я за 10 лет ни разу не увидел разрушения и ресурсов не перекушивает даже открывающийся в 500 метров табл все выше сказанное для локальных данных !!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2005, 13:00:52 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33277357&tid=1593432]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
155ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 471ms |

| 0 / 0 |
