Закрыть БД

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#1
Господа не могу никак въехать - как закрыть БД???? Я на событие ПостОпен БД привязал кой-какую проверку по текущему юзеру и если она не проходит не хочу базу даже открывать. Как это сделать? Спасибо.
 
O

oshmianski

#2
Код:
notesuidatbase.close
если в PostOpen DataBase script, то notesuidatbase=source
Только внеси изменения, сохрани и закрой дизайнер
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#3
Код:
notesuidatbase.close
если в PostOpen DataBase script, то notesuidatbase=source
Только внеси изменения, сохрани и закрой дизайнер
Чё-то не прокатило - нет такого метода у класса notesuidatbase! Может это недостаток 5-ки???? Если да то как же мне быть??? :blink:
 
O

oshmianski

#4
мда, пора идти домой однако.
могу предложить вариант через жжж...
_http://www.intertrust.ru/site/itforum.nsf/49341ed5f4f44f64c3256cee002eeae7/80557e6da27310eec32568860043864d!OpenDocument&Highlight=0,NEMGetCurrentSubprogramWindow

NEMGetCurrentSubprogramWindow — returns handle of the currently active window
NEMStopSubprogramWindow — closes window by passing window handle

Не знаю, прокатит \ не прокатит... У меня прокатило. Правда юзаю 6-ку.
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#5
мда, пора идти домой однако.
могу предложить вариант через жжж...
_http://www.intertrust.ru/site/itforum.nsf/49341ed5f4f44f64c3256cee002eeae7/80557e6da27310eec32568860043864d!OpenDocument&Highlight=0,NEMGetCurrentSubprogramWindow

NEMGetCurrentSubprogramWindow — returns handle of the currently active window
NEMStopSubprogramWindow — closes window by passing window handle

Не знаю, прокатит \ не прокатит... У меня прокатило. Правда юзаю 6-ку.
Как говорится "НЕ ВЕРЮ...." что тривиальная задача по закрытию текущей БД должна решаться через жжж... Хотя найти решения не могу... Гуру help me!!!!
 
D

Duedev

#6
C 5 я не работал, а на 6-ке действительно все просто (souce.close)... Поэтому могу тебя посоветовать только, если ты хочешь простое решение, обойти этот момент.... Скажем если тот или иной пользователь не удовлетворяет какому-то условию, то переключиться, скажем,на рамку с пустой страницей (или необходимым сообщением); если удовлетворяет, то на рамки для работы с базой....
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#7
Для: Duedev

Ок. Такой вариант устраивает на 100 процентов. Только как переключаться на другой набор рамок программно????
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#8
Если проверку пользователя сделать на собаке, то можно попробовать использовать формулу @Command([FileCloseWindow]) для закрытия.
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#9
Если проверку пользователя сделать на собаке, то можно попробовать использовать формулу @Command([FileCloseWindow]) для закрытия.
Да так работает великолепно. Аналог на скрипте есть? А то незнаю как нижепреведенный код можно переколбасить на формулы....
Может кто поможет???

Sub Postopen(Source As Notesuidatabase)
Dim Session As New NotesSession
Dim DB As NotesDatabase
Dim View As NotesView
Dim SetupDoc As notesdocument
Dim workspace As New NotesUIWorkspace
Set db = session.currentdatabase
Set view = db.GetView( "wSetup" )
key = session.CommonUserName
Set setupdoc = view.GetDocumentByKey (key)
If setupdoc Is Nothing Then
Messagebox "Отсутсвует личный документ настройки", 48,"Свяжитесь с администратором!"
тут хотелось бы закрыть БД
End If
End Sub
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#10
Для: DNT
Этот код можешь на собаке сделать.
Типа такого:
Код:
@If(@IsError(@DbLookup("" : "NoCache"; ""; "wSetup"; @Name([CN]; @UserName); 1))); @Do(@Prompt([OK]; "Ошибка"; "Свяжись с админом"); @Command([FileCloseWindow])); @True)
 
D

Duedev

#11
Для: Duedev

Ок. Такой вариант устраивает на 100 процентов. Только как переключаться на другой набор рамок программно????
Note This method is new with Release 5.
Defined in NotesUIWorkspace
Syntax
Call notesUIWorkspace.OpenFrameSet( frameset$ )
Parameters
frameset$
String. Name of the frameset defined for the current database.
Language cross-reference
OpenFrameset @command in formula language
Посмотреть вложение Ex.rar
 

Вложения

  • 24.3 КБ Просмотры: 96

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#12
Для: Duedev


Дело в том, что вызывая

Сall notesUIWorkspace.OpenFrameSet( frameset$ )

я открываю новый фреймсет, а в моём случае надо заменить основной на этот. Команды которая закрывает фреймсет не нашел, если подскажешь буду благодарен.

Для: Medevic

Благодарю за ответ. Счас попробую.
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#13
Для: Medevic

Жму руку крепко. Все получилось. :)