Есть ли аналог uidoc.Refresh для NotesDocument

Автор Тема: Есть ли аналог uidoc.Refresh для NotesDocument  (Прочитано 8224 раз)

cybergeene

  • Специалист
  • ***
  • Сообщений: 59
    • Просмотр профиля
    • E-mail
Есть ли аналог uidoc.Refresh для NotesDocument
« : 09 Ноябрь 2010, 12:33:33 »
Собственно, вопрос в теме.

lotusnotes.ru

  • Global Moderator
  • Старший специалист
  • *****
  • Сообщений: 260
    • Просмотр профиля
    • E-mail
Re: Есть ли аналог uidoc.Refresh для NotesDocument
« Ответ #1 : 09 Ноябрь 2010, 16:47:37 »
NotesDocument - это документ в памяти, а метод uidoc.refresh нужен для обновления, фактически, отображения документа. Как можно визуально обновить документ в памяти?
Если нужно обновить какие-то значения полей в документе, проще, наверное, их заново присвоить.
Иногда может помочь метод ComputeWithForm

cybergeene

  • Специалист
  • ***
  • Сообщений: 59
    • Просмотр профиля
    • E-mail
Re: Есть ли аналог uidoc.Refresh для NotesDocument
« Ответ #2 : 10 Ноябрь 2010, 15:07:25 »
Вот с чем столнулся - добавил в документ поле Rich Text, в default value поставил "", в результате при открытии документа поле определяется с типом Text, т.е. Set rtitem = doc.GetFirstItem("Body1") приводит к ошибке несоответсвия типов, пока не нажмешь F9 в документе, переведя его на редактирование.
Так что вопрос немного другой - как правильно инициализировать поле Rich Text

lotusnotes.ru

  • Global Moderator
  • Старший специалист
  • *****
  • Сообщений: 260
    • Просмотр профиля
    • E-mail
Re: Есть ли аналог uidoc.Refresh для NotesDocument
« Ответ #3 : 10 Ноябрь 2010, 15:15:29 »
Set rtitem = New NotesRichTextItem( doc, "Body1" )

Set rtitem = doc.CreateRichTextItem( "Body1" )

lotusnotes.ru

  • Global Moderator
  • Старший специалист
  • *****
  • Сообщений: 260
    • Просмотр профиля
    • E-mail
Re: Есть ли аналог uidoc.Refresh для NotesDocument
« Ответ #4 : 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...
« Последнее редактирование: 10 Ноябрь 2010, 15:25:04 от lotusnotes.ru »