• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы Antigo
  • Дата начала
A

Antigo

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

savl

Lotus Team
28.10.2011
2 597
310
BIT
177
Нет, без переоткрытия нельзя.

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

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

alexas

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

Antigo

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

Antigo

Antigo
Режим чтения может?
нет, вроде нашел в чем дело. нужно было добавить параметр true в TempDocUI.Close(True). временный докумнет, в который я записывал ссылку в ртф поле закрывался не сразу, поэтому когда я делал Call uidoc.Paste выпадала ошибка, что не удается найти поле.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!