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

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

  1. I123321

    I123321 Гость

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

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

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Там у NotesName есть второй параметр - language
    Может оно?
     
  3. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    notesSession.UserNameList
     
  4. I123321

    I123321 Гость

    огромное спасибо, medevic

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

    abbatik Lotus team
    Lotus team

    Регистрация:
    20 окт 2008
    Сообщения:
    277
    Симпатии:
    0
    Наверное потому что у него не выставлен AlternativeName? ;)
     
  6. I123321

    I123321 Гость

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

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Я вот такую функцию юзаю:
    Код (Text):
    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
     
  8. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    А не проще ли так:
    <!--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]
     
  9. I123321

    I123321 Гость

    у меня сделано, как в примере nvy и работает нормально
     
  10. I123321

    I123321 Гость

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

    amigolinx Гость

    дык, порезать его перед выводом, например, так:
    Код (Text):
    Sogl = Strright(Strleft(Sogl, "/"), "=")
     
  12. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Обычно @Name([CN]; поле) нормально вырезает Имя О Фамилия. При работе с именами поле д.б. Names, Authors or Readers. Если просто текст возможны глюки.
     
Загрузка...

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