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

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

Не помогает.

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

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

SET DATASESSION

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

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

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

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

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

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

Можно сделать метод класс Custom, который либо просто положить на форму, либо создать как глобальный объект и вызывать его метод.
...
Рейтинг: 0 / 0
02.11.2004, 17:29
    #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
03.11.2004, 02:13
    #32765799
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В приват Дата Сессион сбрасываются настройки
Hi ВладимирМ!

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

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

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
03.11.2004, 08:55
    #32765904
Cyv
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
04.11.2004, 01:11
    #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
04.11.2004, 08:38
    #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
04.11.2004, 08:50
    #32767849
Cyv
Cyv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В приват Дата Сессион сбрасываются настройки
Igor KorolyovТы не учитываешь...
Согласен, сам то использую вьюхи с nodataonload = .T.,
AutoOpen тоже активно юзаю, больше всего мне "нравится",
что имя класса de надо прописывать "в лоб" :

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

Все работает, все прекрасно.
...
Рейтинг: 0 / 0
05.11.2004, 14:33
    #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
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / В приват Дата Сессион сбрасываются настройки / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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