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

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

nadezdaMP

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

есть документ, в нем содержится поле 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 содержится, может в этом причина?
 

nvyush

Well-Known Member
Lotus team
22.04.2009
2 317
0
#2
Вместо
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

Гость
#4
Вместо
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 вываливалась.