powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / В приват Дата Сессион сбрасываются настройки
11 сообщений из 11, страница 1 из 1
В приват Дата Сессион сбрасываются настройки
    #32765301
_!___Max__!__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В приват Дата Сессион сбрасываются настройки.

Создас конфиг, положил его рядом с VFP.exe, а так же рядом с проектом.

Не помогает.

Писать в каждой форме все вручную, ой как не охота. Помогите советом.
...
Рейтинг: 0 / 0
В приват Дата Сессион сбрасываются настройки
    #32765326
alexFV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В приват Дата Сессион сбрасываются настройки.
На то она и Privat.

Писать в каждой форме все вручную, ой как не охота. Помогите советом.
Сделай свой класс форм или вызывай процедуру, где будут устанавливаться нужные настройки.
...
Рейтинг: 0 / 0
В приват Дата Сессион сбрасываются настройки
    #32765337
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какие именно настройки сбрасываются в Private DataSession подробно описано в Help к команде

SET DATASESSION

Только следует иметь в виду, что у некоторых настроек значение по умолчанию в Default и в Private DataSession отличаются. Например, SET EXCLUSIVE по умолчанию:

ON - для Default
OFF - для PRIVATE

Вариантов собственно 2:

1) Отдельная процедру
2) Метод класса

При загрузке формы запускаешь либо процедуру, либо метод класса.

Метод класса - это может быть метод класс Form, на базе которого созданы ВСЕ твои формы.

Можно сделать метод класс Custom, который либо просто положить на форму, либо создать как глобальный объект и вызывать его метод.
...
Рейтинг: 0 / 0
В приват Дата Сессион сбрасываются настройки
    #32765381
kdanylo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
В приват Дата Сессион сбрасываются настройки.


Для многих настроек область видимости ограничивается сессией, что есть разумно и отмечено в докуметации.

Напишите класс, скажем Environment со следующей структурой:
методы:

- SetOptions
- SaveOptions
- RestoreOptions


плюс по свойству на каждую настройку, которую вы хотите устанавливать.

В общем так:
Метод SetOptions ():
Код: plaintext
1.
2.
3.
4.
5.
this.SaveOptions () && сохранение настроек
SET TALK OFF
SET NEAR OFF
SET EXACT OFF
*--етс...

Метод SaveOptions ():
Код: plaintext
1.
2.
3.
4.
this.cTalk = SET ("TALK")
this.cNear = SET ("NEAR")
this.cExact = SET ("EXACT")


Метод RestoreOptions ():

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
local leOption
if !IsNull (this.cTalk)
leOption = this.cTalk
SET TALK &leOption
endif
 
if !IsNull (this.cNear)
leOption = this.cNear
SET NEAR &leOption
endif
*--etc...




В методе Load формы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
local loEnv as Object
loEnv = CreateObject ("Environment") 
loEnv.SetOptions ()

*-- oEnv можно сохранить в свойстве формы (предположим свойство oEnv уже *-- сужествует):

Thisform.oEnv = loEnv


В методе Unload формы:
Код: plaintext
1.
2.
Thisform.oEnv.RestoreOptions ()
Thisform.oEnv = .NULL.

В подавляющем большинстве случаев в методе Unload достаточно просто написать:
Код: plaintext
1.
Thisform.oEnv = .NULL.

поскольку с закрытием формы приватная сессия также закрывается.

Скачайте книжку про построение фреймворка на VFP. Там это все есть плюс много больше интересного и нужного.

Успехов.
...
Рейтинг: 0 / 0
В приват Дата Сессион сбрасываются настройки
    #32765799
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi ВладимирМ!

> Можно сделать метод класс Custom, который либо просто положить на
> форму, либо создать как глобальный объект и вызывать его метод.

Как глобальный объект сделать несколько сложнее - его методы будут
фунциклировать в контексте той сессии где он создан (обычно в PUBLIC) - и
потому придётся явно вписывать код по переключнию в контекст нужной нам
сессии - т.е SET DATASESSION TO пользовать внутри каждого метода.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
В приват Дата Сессион сбрасываются настройки
    #32765904
Cyv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем все эти сложности?
Человек явно работает с формами.
2_!___Max__!__ :
Запихни вот это в Load формы (или базового класса формы первого слоя) и радуйся ;-)
.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
IF This.DataSession =  2 
	SET TALK OFF
	SET DELETED ON
	SET DATE TO YMD
	SET HOURS TO  24 
	SET CENTURY ON
	SET SAFETY OFF
	SET NEAR ON
	SET EXCLUSIVE OFF
	SET MULTILOCKS ON
	SET ESCAPE OFF
ENDIF

SET DATABASE TO MyDatabase

Настроить по вкусу исходя из потребностей
...
Рейтинг: 0 / 0
В приват Дата Сессион сбрасываются настройки
    #32767707
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Cyv!

Ты не учитываешь, что при наличии DE а там AutoOpen = .T. (Default) курсоры
будут открываться ДО выполнения метода Load формы - соответственно если там
есть запросы (представления) то мы получим нехорошие результаты (например
удалённые данные "проскочат" в результаты) - для такого случая код
"установки" нужно поместить в DE.BeforeOpenTables - а этот метод
субклассировать невозможно (форма как класс не имеет DE). Отдельно
субклассировать DE - тоже масса нюансов и сложностей будет... Вообще этот
момент MS-ом продуман крайне отвратительно. И даже новые для VFP8
DEClass/DEClassLibrary не сильно помогают.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
В приват Дата Сессион сбрасываются настройки
    #32767839
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Korolyov
Hi Cyv!

Ты не учитываешь, что при наличии DE а там AutoOpen = .T. (Default) курсоры
будут открываться ДО выполнения метода Load формы - соответственно если там
есть запросы (представления) то мы получим нехорошие результаты (например
удалённые данные "проскочат" в результаты) [skip]
Posted via ActualForum NNTP Server 1.1

не фс:Е так плохо, если прочесть Event Firing Sequence в хельпе Init курсороф в ДЕ и соотв самого ДЕ по-любому идет после frm.Load()
...
Рейтинг: 0 / 0
В приват Дата Сессион сбрасываются настройки
    #32767849
Cyv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor KorolyovТы не учитываешь...
Согласен, сам то использую вьюхи с nodataonload = .T.,
AutoOpen тоже активно юзаю, больше всего мне "нравится",
что имя класса de надо прописывать "в лоб" :

ThisForm.cdteMyCoolSome.OpenTables()
...
Рейтинг: 0 / 0
В приват Дата Сессион сбрасываются настройки
    #32768949
Maltsev Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создал класс Custom, бросаю на форму.

Все работает, все прекрасно.
...
Рейтинг: 0 / 0
В приват Дата Сессион сбрасываются настройки
    #32770772
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Hel!Riser!

"Не верь глазам своим" (c) К.Прутков
Во-первых Init курсоров не имеет никакого отношения собственно к открытию
таблиц/представлений описаных этим объектом. И выполяется ПОСЛЕ того как они
уже открыты - конечно тут играет роль DE.AutoOpenTables
Во-вторых в зависимости от того что это за DE - DE банальной формы, или DE
класс приложенный к форме ручками, или DE класс приложенный к форме через
DEClass/DEClassLibrary - порядок следования событий будет далёк от
описанного тобой...

2 Cyv
Насчёт использования NoDataOnLoad - совершенно согласен - тем более что
представления обычно параметризованны, а значения параметров до Init формы
вроде как и отсутствуют :)
А вот насчёт ссылки по имени DE... Не, не наш это метод.
во-первых я не имею никогда никакой потребности ссылаться из формы к DE (ну
такова уз специфика, стиль что-ли).
во-вторых хардкодить имя объекта не есть хорошо - тем более что тогда всё
наследование ухает в никуда :( Если бы я и искал способ сослаться на DE по
его имени - то искал бы "общий" способ - где-то я видел рабочий код - вроде
бы с использованием AMEMBERS - для поиска DE-объекта если его имя
неизвестно...
Конечно можно всегда пойти прямым путём и запретить менять имя DE-объекта
(конечно если именно встроенный в форму и пользуется) :)

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / В приват Дата Сессион сбрасываются настройки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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