• Paranoid - курс по анонимности и безопасности в сети от команды codeby. Защита персональных данных, анонимность в сети интернет, настройка виртуальных машин, безопасная передача данных, анти форензика и еще много всего полезного. Подробнее ...

  • Мобильный клиент нашего форума для Android гаджетов доступен в Google Play Market по этой ссылке. Клиент можно скачать с нашего форума по этой ссылке. Последняя версия МК в нашем телеграм канале вот здесь

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

Antigo

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

savl

Lotus team
28.10.2011
2 138
105
#2
Нет, без переоткрытия нельзя.

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

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

alexas

#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 выпадала ошибка, что не удается найти поле.
 
Вверх Снизу