Работа с Lotus из Word

Anatoly

Lotus team
30.03.2007
222
0
#1
Столкнулся с необходимостью работать с 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")))
опять посылает меня.

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

TIA

:-)
Lotus team
15.05.2009
790
3
#2
Какие сообщения об ошибках выдаются?
doc.GetItemValue("Name") - возвращает всегда массив. Первое значение получается так doc.GetItemValue("Name")(0)
Вьюшка "Имя вьюшки" имеет отсортированную колонку?
 

azat20

Well-known member
22.07.2008
244
0
#3
У Вас есть документ со строковым значением в первой отсортированной колонке "ИмяЗакладки"?

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

Anatoly

Lotus team
30.03.2007
222
0
#4
doc.GetItemValue("Name") - возвращает всегда массив. Первое значение получается так doc.GetItemValue("Name")(0)
Черт, как я это упустил... Спасибо.
TIA сказал(а):
Вьюшка "Имя вьюшки" имеет отсортированную колонку?
Да. И, как не странно, после обычного пересохранения - заработало.

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

Anatoly

Lotus team
30.03.2007
222
0
#6
Вообще, какие могут быть подводные камни при работе с Lotus из приложений MS Office?
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#8
странная "необходимость" - работать из МСО с ЛДН...
грабли одни - использование КОМа, и они - основные
 

Anatoly

Lotus team
30.03.2007
222
0
#9
Вроде немного прояснилось :)
Клиент вообще не нужно запускать.
При первом запуске модуля в Word появляется приглашение ввести пароль и в дальнейшем, пока документ открыт, пароль больше не запрашивается.

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

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

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#10
я не о том...
ежели всёравно прогаете - почему именно МСО
юзеру пофиг чего запускать, а нотус у него установлен полюбасу
можно сразу по иконке открывать базу/док/вьюшку
*.ndl файл для этого сущ.
резон лазить в нотус есть - не усложнять систему и не плодить в ней багофичи (индусы и так, с UI, "постарались")