• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

неизменный Rich Text Item

  • Автор темы nadezdaMP
  • Дата начала
N

nadezdaMP

обсуждений по этой теме много, но все они по конкретным задачам разные,
поэтому помогите пожалуйста с решением следующей:

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

ссылку я добавляю так
Set rtitem = New NotesRichTextItem (taskdoc, "Body")
Call rtitem.AppendDocLink( tempdoc, "Ссылка ...")
Call rtitem.AppendText("Ссылка ...")
Call rtitem.AddNewLine(1)
...
потом соответственно пытаюсь сделать
Dim rtitemA As NotesRichTextItem, rtitemB As NotesRichTextItem
Set rtitemA = New NotesRichTextItem (taskdoc, "Body")
Set rtitemB = New NotesRichTextItem (taskdoc, "Body1")
Call rtitemA.AppendDocLink( tempdoc, "Ссылка ")
Call rtitemA.AppendText("Ссылка ")
Call rtitemA.AddNewLine(1)

Call taskdoc.ReplaceItemValue("Body1", contentdoc.GetItemValue("Body")(0))
Call rtitemA.AppendRTItem(rtitemB)
Call rtitemB.Remove
Call taskdoc.Save(True, True)

вылетает ошибка что item Body1 is not a rich text item
хотя смотрела в EZTools ontentdoc.GetItemValue("Body")(0) - тип рич текст

вообщем, запуталась, обьясните как можно сделать пожалуйста =)


вообщем, в документе из которого нужно скопировать, ипользуется computed subform, в нем соответсвенно поле Body содержится, может в этом причина?
 
N

nvyush

Вместо
Call taskdoc.ReplaceItemValue("Body1", contentdoc.GetItemValue("Body")(0))


Попробовать
If taskdoc.HasItem("Body1") Then Call taskdoc.RemoveItem("Body1")
Call taskdoc.CopyItem(contentdoc.GetFirstItem("Body"), "Body1")
?
 
N

nadezdaMP

Вместо
Call taskdoc.ReplaceItemValue("Body1", contentdoc.GetItemValue("Body")(0))


Попробовать
If taskdoc.HasItem("Body1") Then Call taskdoc.RemoveItem("Body1")
Call taskdoc.CopyItem(contentdoc.GetFirstItem("Body"), "Body1")
?
сделала именно так, все работает, спасибо!

строку с ошибкой не помню уже, вроде на методе AppendRTItem вываливалась.
 
Мы в соцсетях:

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