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

Тема в разделе "Lotus - Программирование", создана пользователем Antigo, 21 фев 2014.

  1. Antigo

    Antigo Active Member

    Регистрация:
    16 фев 2012
    Сообщения:
    41
    Симпатии:
    0
    Всем привет!
    Вот такой вопрос. Документ открыт и находится в режиме редактирования, в документе есть rtf поле. мне нужно программно записать ссылку на другой документ в это поле и чтобы она сразу отобразилась в документе.
    Возможно ли как-то это сделать без программного переоткрывания документа?
    Спасибо!
     
  2. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Нет, без переоткрытия нельзя.

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

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

    alexas Well-Known Member

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

    Antigo Active Member

    Регистрация:
    16 фев 2012
    Сообщения:
    41
    Симпатии:
    0
    Спасибо за советы. Попробывал как предложил alexas. Но, иногда проскакивает ошибка в Paste. Типа не удется найти поле, не могу понять от чего она появляется
     
  5. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Antigo
    Режим чтения может?
     
  6. Antigo

    Antigo Active Member

    Регистрация:
    16 фев 2012
    Сообщения:
    41
    Симпатии:
    0
    нет, вроде нашел в чем дело. нужно было добавить параметр true в TempDocUI.Close(True). временный докумнет, в который я записывал ссылку в ртф поле закрывался не сразу, поэтому когда я делал Call uidoc.Paste выпадала ошибка, что не удается найти поле.
     
Загрузка...

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