Форум продуктов IBM Lotus

Общие вопросы => Разработка приложений => Тема начата: cybergeene от 09 Ноябрь 2010, 12:33:33

Название: Есть ли аналог uidoc.Refresh для NotesDocument
Отправлено: cybergeene от 09 Ноябрь 2010, 12:33:33
Собственно, вопрос в теме.
Название: Re: Есть ли аналог uidoc.Refresh для NotesDocument
Отправлено: lotusnotes.ru от 09 Ноябрь 2010, 16:47:37
NotesDocument - это документ в памяти, а метод uidoc.refresh нужен для обновления, фактически, отображения документа. Как можно визуально обновить документ в памяти?
Если нужно обновить какие-то значения полей в документе, проще, наверное, их заново присвоить.
Иногда может помочь метод ComputeWithForm
Название: Re: Есть ли аналог uidoc.Refresh для NotesDocument
Отправлено: cybergeene от 10 Ноябрь 2010, 15:07:25
Вот с чем столнулся - добавил в документ поле Rich Text, в default value поставил "", в результате при открытии документа поле определяется с типом Text, т.е. Set rtitem = doc.GetFirstItem("Body1") приводит к ошибке несоответсвия типов, пока не нажмешь F9 в документе, переведя его на редактирование.
Так что вопрос немного другой - как правильно инициализировать поле Rich Text
Название: Re: Есть ли аналог uidoc.Refresh для NotesDocument
Отправлено: lotusnotes.ru от 10 Ноябрь 2010, 15:15:29
Set rtitem = New NotesRichTextItem( doc, "Body1" )

Set rtitem = doc.CreateRichTextItem( "Body1" )
Название: Re: Есть ли аналог uidoc.Refresh для NotesDocument
Отправлено: lotusnotes.ru от 10 Ноябрь 2010, 15:21:28
Если надо не создать, а обратиться к полю Rich Text, то можно пойти 2 путями:
1.
Dim doc As NotesDocument
Dim item As NotesItem
Set item = doc.GetFirstItem( "Body1" )
If item.Type=1 Then
'поле типа Rich Text
End if

2.
Dim doc As NotesDocument
Dim item As NotesItem
Set item = doc.GetFirstItem( "Body1" )
If Not item.IsSummary Then
'поле типа Rich Text, но не только (может быть большое, аттачмент и т.д.), но здесь скорее всего подойдет
End if


А можно убрать кавычки из Default value...