Как получить пользователя на Lotus Script?

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

Статус темы:
Закрыта.
  1. Mitya2000

    Mitya2000 Гость

    ПРошу прощения за такой вопрос по синтаксису, но не скажите ли, как получить текущего пользователя? Какой аналог @User есть в лотус скрипте? Просто мне нужно условие проверки совпадает ли текущий пользователь с пользователем, указанным на форме.
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Код (Text):
    Sub Click(Source As Button)
    Dim session As New NotesSession
    Dim user As String
    user = session.UserName
    End Sub
     
  3. Mitya2000

    Mitya2000 Гость

    Спасибо большое. А не скажите, как на языке @- формул при событии Querymodechange поставить запрет на редактирование документа. У меня сейчас стоит:
    Sub Querymodechange (Source As Notesuidocument, Continue As Variant)
    If Not (source.FieldGetText("Status") = "") Then
    If Not (source.FieldGetText( "Status" )="Заявка") Then
    Messagebox( "Извините, докумен нельзя изменить")
    continue = False
    End If
    End If
    End Sub
    А мне хотелось бы тоже самое, но на языке @-формулы. Пробовал и @Failure и @Return(@False) - ничего не действует.
     
  4. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    <!--QuoteBegin-Mitya2000+2:11:2006, 13:49 -->
    <span class="vbquote">(Mitya2000 @ 2:11:2006, 13:49 )</span><!--QuoteEBegin-->А мне хотелось бы тоже самое, но на языке @-формулы
    [snapback]46970" rel="nofollow" target="_blank[/snapback]​
    [/quote] зачем , если не секрет?
     
  5. Mitya2000

    Mitya2000 Гость

    Тяжело работать с именем пользователя. Я написал
    If Not (user = source.FieldGetText( "user" )) Then
    Но не знаю, чему равно session.UserName. Что мне в поле user надо написать, чтобы условие сработало? Полное имя пользователя? Тогда как получить альтернативное имя пользователя?
     
  6. DNT

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

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

    смотря что у тебя в поле "user"

    If Not (session.username = source.FieldGetText( "user" )) Then

    либо

    If Not (session.commonusername = source.FieldGetText( "user" )) Then



    help---> NotesSession все расписано популярно.
     
  7. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    <!--QuoteBegin-DNT+2:11:2006, 14:16 -->
    <span class="vbquote">(DNT @ 2:11:2006, 14:16 )</span><!--QuoteEBegin-->help---> NotesSession все расписано популярно.
    [snapback]46974" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    Более чем популярно, есть комонюзер нейм и т.д. можна даже с класом нотес нэйм поработать если уж на то пошло <!--QuoteBegin-Mitya2000+2:11:2006, 14:08 -->
    <span class="vbquote">(Mitya2000 @ 2:11:2006, 14:08 )</span><!--QuoteEBegin-->Но не знаю, чему равно session.UserName
    [snapback]46972" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Дэбаггеееррр!!!

    или просто MsgBox session.UserName )))))
     
  8. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    Да, формульные евенты результат в форму не возвращают.
    Изврат: выдать предупреждение (@Prompt) и установить FIELD SaveOption:="0"
     
  9. Hedg

    Hedg Гость

    df:=@GetField("Status");
    @If(df="3";@Command([EditDocument]);@Return("");@Do(@Prompt([OK];"Редактировать низззя"));@True)

    Работает не совсем верно, но редактировать не даёт. :) ;)
     
  10. Mitya2000

    Mitya2000 Гость

    А как узнать роль текущего пользователя в Лотус Скрипте?
     
  11. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Evaluate + @UserRoles

    или через ACL ->

    Код (Text):
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim acl As NotesACL
    Dim entry As NotesACLEntry
    Set db = session.CurrentDatabase
    Set acl = db.ACL
    Set entry = acl.GetEntry( "Bob Kidder/East/ACME" )
    Forall r In entry.Roles
    Messagebox( r )
    End Forall
    Вместо "Bob Kidder/East/ACME" текущий юзверь
     
Загрузка...
Статус темы:
Закрыта.

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