ФИО на русском языке

  • Автор темы I123321
  • Дата начала
I

I123321

Гость
#1
Не могу сообразить... мне надо, чтобы в дакументе писалось нормальное (на русском языке) ФИО, а у меня выдается в англ. транскрипцие. Как надо сделать? при нажатии на кнопку отправления документа на рассмотрение:
Код:
.......
' Имя пользователя
Dim Abbrname As New notesname(session.EffectiveUserName)
userN = Abbrname.Canonical
....

LogStr = Format(LogTime,"dd.mm.yyyy hh:mm:ss") & " " & userN
 
I

I123321

Гость
#4
огромное спасибо, medevic

теперь у всех пользователей все работает правильно, а почему-то под одним пользователем постоянно Subscript out of range
 
I

I123321

Гость
#6
все разобрался. Извеняюсь за глупый вопрос. Просто у данного пользователя не было альтернативного имени
 

Kizarek86

Well-Known Member
Lotus team
20.07.2007
861
6
31
Россея матушка!)
#7
Я вот такую функцию юзаю:
Код:
Function fUserName_AltName(pUserNameStr As String) As String
'Функция определяет имя пользователя, если у него есть альтернативное имя, т.е. на русском языке
'возвращает его, если нет то возвращает имя на латинице.
Dim AltNameOtv As Variant
AltNameOtv = Evaluate({ @Name([CN];@NameLookup([Exhaustive];"} + pUserNameStr+{";"AltFullName"))})
If Not AltNameOtv(0)="" Then
fUserName_AltName = AltNameOtv(0)
Else		
Dim user As notesname 
Set user = New NotesName(pUserNameStr) 
fUserName_AltName = Cstr(user.Common)
End If
End Function
 

nvyush

Well-Known Member
Lotus team
22.04.2009
2 317
0
48
Подмосковье
#8
Я вот такую функцию юзаю:
Код:
Function fUserName_AltName(pUserNameStr As String) As String
'Функция определяет имя пользователя, если у него есть альтернативное имя, т.е. на русском языке
'возвращает его, если нет то возвращает имя на латинице.
Dim AltNameOtv As Variant
AltNameOtv = Evaluate({ @Name([CN];@NameLookup([Exhaustive];"} + pUserNameStr+{";"AltFullName"))})
If Not AltNameOtv(0)="" Then
fUserName_AltName = AltNameOtv(0)
Else		
Dim user As notesname 
Set user = New NotesName(pUserNameStr) 
fUserName_AltName = Cstr(user.Common)
End If
End Function
А не проще ли так:
<!--shcode--><pre><code class='LS'>Dim s As New NotesSession
Dim UserNameAlt as NotesName
If Ubound(s.UserNameList) > 0 Then
Set UserNameAlt = s.UserNameList(1)
Else
Set UserNameAlt = s.UserNameList(0)
End If[/CODE]
 
I

I123321

Гость
#9
у меня сделано, как в примере nvy и работает нормально
 
I

I123321

Гость
#10
у меня появился еще вопрос. При согласовании идет запись в лог про того, кому отправлено на согласование. Поле согласовывающих Sogl_1 : @Trim (@Name([CN];Sogl_1)).
при выводе в лог беру это поле Sogl= doc.Sogl_1(0). постоянно пишет ФИО на русском языке, но CN=фио/.... как сделать чтобы просто на русском писало ФИО
 

nvyush

Well-Known Member
Lotus team
22.04.2009
2 317
0
48
Подмосковье
#12
у меня появился еще вопрос. При согласовании идет запись в лог про того, кому отправлено на согласование. Поле согласовывающих Sogl_1 : @Trim (@Name([CN];Sogl_1)).
при выводе в лог беру это поле Sogl= doc.Sogl_1(0). постоянно пишет ФИО на русском языке, но CN=фио/.... как сделать чтобы просто на русском писало ФИО
Обычно @Name([CN]; поле) нормально вырезает Имя О Фамилия. При работе с именами поле д.б. Names, Authors or Readers. Если просто текст возможны глюки.