Обновление Rtf Поля

Antigo

Active Member
16.02.2012
40
0
#1
Всем привет!
Вот такой вопрос. Документ открыт и находится в режиме редактирования, в документе есть rtf поле. мне нужно программно записать ссылку на другой документ в это поле и чтобы она сразу отобразилась в документе.
Возможно ли как-то это сделать без программного переоткрывания документа?
Спасибо!
 

savl

Well-Known Member
Lotus team
28.10.2011
2 126
163
#2
Нет, без переоткрытия нельзя.

Если ссылка всегда одна, то можно заменить вставку ссылки на аналогичный механизм:
1. Прописываем сервер, путь/реплику базы в допполя
2. Прописываем UNID документа в дополе
3. Делаем Надпись с Action HotSpot, в надписи можно писать тему полученного документа.
4. Внутри HotSpot код, который получает базу по полям, затем в этой базе получает документ.
5. Открываем документ
6. ???????
7. PROFIT

Если ссылок несколько - можно сделать ссылочную систему, это более серьезная работа.
 

alexas

Well-Known Member
10.06.2009
214
0
#3
Вообще-то можно:
Если совсем без переоткрытия, то надо работать строго в UI: использовать Copy - Paste в RTF. К примеру - так:
1. Создаём NotesDocument - TempDoc, с полем NotesRichTextItem - RtitemTemp.
2. В RtitemTemp помещаем ссылку.
3. Показываем TempDoc в UI.
4. Помещаем курсор в RtitemTemp и делаем SelectAll,Copy
5. Закрываем TempDoc без сохранения.
6. Помещаем курсор в нужное поле в нужное место целевого дока и делаем Paste
Но вкладка "моргнёт", конечно.
А Вам это точно нужно?
Программное переоткрытие работает хорошо
 

Antigo

Active Member
16.02.2012
40
0
#4
Спасибо за советы. Попробывал как предложил alexas. Но, иногда проскакивает ошибка в Paste. Типа не удется найти поле, не могу понять от чего она появляется
 

Antigo

Active Member
16.02.2012
40
0
#6
нет, вроде нашел в чем дело. нужно было добавить параметр true в TempDocUI.Close(True). временный докумнет, в который я записывал ссылку в ртф поле закрывался не сразу, поэтому когда я делал Call uidoc.Paste выпадала ошибка, что не удается найти поле.