Работа с Lotus из Word

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

  1. Anatoly

    Anatoly Well-Known Member

    Регистрация:
    30 мар 2007
    Сообщения:
    204
    Симпатии:
    0
    Столкнулся с необходимостью работать с Lotus в фоновом режиме.
    Пользователю нужно находясь в документе Word дергать информацию из базы Lotus.

    Начинается с того, что не могу достучаться к уже запущенному клиенту :)
    Set session = CreateObject("Lotus.NotesSession")
    Call session.Initialize

    Работает, но не годится, так как требуется каждый раз вводить пароль.
    Через GetObject достучаться до клиента не получается, никак не пойму что указать в параметрах.

    Далее, после инициализации сессии

    Set db = session.GetDatabase("", "Путь к базе")
    Set view = db.GetView("Имя вьюшки")

    отрабатывает
    Set doc = view.GetDocumentByKey("ИмяЗакладки")
    выдает ошибку
    Попробовал:
    Set doc = view.GetFirstDocument()
    Нормально, но мне не это надо, мне надо по ключу.
    И далее из полученного документа нужно получить значение поля:
    Selection.TypeText (CStr(doc.GetItemValue("Name")))
    опять посылает меня.

    Никак не могу найти ничего в помощь, куда тыкнуться?
     
  2. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Какие сообщения об ошибках выдаются?
    doc.GetItemValue("Name") - возвращает всегда массив. Первое значение получается так doc.GetItemValue("Name")(0)
    Вьюшка "Имя вьюшки" имеет отсортированную колонку?
     
  3. azat20

    azat20 Well-Known Member

    Регистрация:
    22 июл 2008
    Сообщения:
    244
    Симпатии:
    0
    У Вас есть документ со строковым значением в первой отсортированной колонке "ИмяЗакладки"?

    Используйте Selection.TypeText (doc.Getfirstitem("Name").text)
     
  4. Anatoly

    Anatoly Well-Known Member

    Регистрация:
    30 мар 2007
    Сообщения:
    204
    Симпатии:
    0
    Черт, как я это упустил... Спасибо.
    Да. И, как не странно, после обычного пересохранения - заработало.

    И, как я понял, для работы с Lotus в фоновом режиме клиент запускать не обязательно.
    Но если он уже запущен, можно избежать вызова диалогового окна для ввода пароля?
     
  5. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Попробуйте поставить в "User security" галку "Don't prompt for a password from other Notes-based programs (reduces security)"
     
  6. Anatoly

    Anatoly Well-Known Member

    Регистрация:
    30 мар 2007
    Сообщения:
    204
    Симпатии:
    0
    Вообще, какие могут быть подводные камни при работе с Lotus из приложений MS Office?
     
  7. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    лотус не закрывайте :)
     
  8. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    странная "необходимость" - работать из МСО с ЛДН...
    грабли одни - использование КОМа, и они - основные
     
  9. Anatoly

    Anatoly Well-Known Member

    Регистрация:
    30 мар 2007
    Сообщения:
    204
    Симпатии:
    0
    Вроде немного прояснилось :)
    Клиент вообще не нужно запускать.
    При первом запуске модуля в Word появляется приглашение ввести пароль и в дальнейшем, пока документ открыт, пароль больше не запрашивается.

    Не мы ставим задачи, а нам. :(
    А суть поставленной задачи в следующем: для облегчения и ускорения работы решено создать в организации банк фрагментов документов (стандартные фразы, формулировки и т.д). Ведется банк в Лотусе, хранятся куски в RTF-полях, все классифицированно: по по типам банков/категориям/видам/все. Короче, тут, как-бы, все без судка и задоринки. Но рядовому пользователю, набирающему текст в Ворде, нет резона лазить в Лотус - он нажимает кнопку на пенели Word, вводит имя закладки и ему в под курсор вставляется кусок текста. С этим я разобрался и реализовал.

    Но вот сейчас сижу и думаю дальше...
    Не всегда имя закладки известно :( Как дать пользователю выбрать нужный кусок визуально. Из Session не запустить view, как инициализировать UIWorkSpace для PickList не понятно... Может кто наведет на хорошую мысль? :)
     
  10. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    я не о том...
    ежели всёравно прогаете - почему именно МСО
    юзеру пофиг чего запускать, а нотус у него установлен полюбасу
    можно сразу по иконке открывать базу/док/вьюшку
    *.ndl файл для этого сущ.
    резон лазить в нотус есть - не усложнять систему и не плодить в ней багофичи (индусы и так, с UI, "постарались")
     
Загрузка...

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