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

  • Автор темы Mitya2000
  • Дата начала
Статус
Закрыто для дальнейших ответов.
M

Mitya2000

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

Mitya2000

Гость
#3
Спасибо большое. А не скажите, как на языке @- формул при событии 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) - ничего не действует.
 

morpheus

скриптописец
07.08.2006
3 915
1
34
Украина, Киев
#4
<!--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] зачем , если не секрет?
 
M

Mitya2000

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

DNT

Постоялец форума
Lotus team
12.10.2005
590
7
37
Украина, Одесса
#6
Для: Mitya2000

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

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

либо

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



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

morpheus

скриптописец
07.08.2006
3 915
1
34
Украина, Киев
#7
<!--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 )))))
 

Constantin A Chervonenko

Well-Known Member
Lotus team
#8
Спасибо большое. А не скажите, как на языке @- формул при событии Querymodechange поставить запрет на редактирование документа.
...
мне хотелось бы тоже самое, но на языке @-формулы. Пробовал и @Failure и @Return(@False) - ничего не действует.
Да, формульные евенты результат в форму не возвращают.
Изврат: выдать предупреждение (@Prompt) и установить FIELD SaveOption:="0"
 
H

Hedg

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

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

Mitya2000

Гость
#10
А как узнать роль текущего пользователя в Лотус Скрипте?
 

morpheus

скриптописец
07.08.2006
3 915
1
34
Украина, Киев
#11
Evaluate + @UserRoles

или через ACL ->

Код:
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" текущий юзверь
 
Статус
Закрыто для дальнейших ответов.