Закрыть БД

Тема в разделе "Lotus - Программирование", создана пользователем DNT, 8 июн 2006.

  1. DNT

    DNT Постоялец форума
    Lotus team

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

    oshmianski Гость

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

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    Чё-то не прокатило - нет такого метода у класса notesuidatbase! Может это недостаток 5-ки???? Если да то как же мне быть??? :blink:
     
  4. oshmianski

    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-ку.
     
  5. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    Как говорится "НЕ ВЕРЮ...." что тривиальная задача по закрытию текущей БД должна решаться через жжж... Хотя найти решения не могу... Гуру help me!!!!
     
  6. Duedev

    Duedev Гость

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

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    Для: Duedev

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

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Если проверку пользователя сделать на собаке, то можно попробовать использовать формулу @Command([FileCloseWindow]) для закрытия.
     
  9. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    Да так работает великолепно. Аналог на скрипте есть? А то незнаю как нижепреведенный код можно переколбасить на формулы....
    Может кто поможет???

    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
     
  10. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: DNT
    Этот код можешь на собаке сделать.
    Типа такого:
    Код (Text):
    @If(@IsError(@DbLookup("" : "NoCache"; ""; "wSetup"; @Name([CN]; @UserName); 1))); @Do(@Prompt([OK]; "Ошибка"; "Свяжись с админом"); @Command([FileCloseWindow])); @True)
     
  11. Duedev

    Duedev Гость

    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
     
  12. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    Для: Duedev


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

    Сall notesUIWorkspace.OpenFrameSet( frameset$ )

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

    Для: Medevic

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

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    Для: Medevic

    Жму руку крепко. Все получилось. :)
     
Загрузка...
Похожие Темы - Закрыть БД
  1. swyatogor
    Ответов:
    40
    Просмотров:
    1.879
  2. Надя
    Ответов:
    3
    Просмотров:
    1.550
  3. bobo
    Ответов:
    0
    Просмотров:
    2.300
  4. Shouldercannon
    Ответов:
    3
    Просмотров:
    3.903
  5. deeeman
    Ответов:
    5
    Просмотров:
    2.531

Поделиться этой страницей