Закрыть БД

  • Автор темы DNT
  • Дата начала
D

DNT

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

oshmianski

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

DNT

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

Чё-то не прокатило - нет такого метода у класса notesuidatbase! Может это недостаток 5-ки???? Если да то как же мне быть??? :blink:
 
O

oshmianski

мда, пора идти домой однако.
могу предложить вариант через жжж...
_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-ку.
 
D

DNT

мда, пора идти домой однако.
могу предложить вариант через жжж...
_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

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

DNT

Для: Duedev

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

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
Если проверку пользователя сделать на собаке, то можно попробовать использовать формулу @Command([FileCloseWindow]) для закрытия.
 
D

DNT

Если проверку пользователя сделать на собаке, то можно попробовать использовать формулу @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

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

Duedev

Для: 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
 
D

DNT

Для: Duedev


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

Сall notesUIWorkspace.OpenFrameSet( frameset$ )

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

Для: Medevic

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

DNT

Для: Medevic

Жму руку крепко. Все получилось. :)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!