Добавление нового значения в Rich Text

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

  1. seoman2

    seoman2 Lotus team
    Lotus team

    Регистрация:
    17 фев 2010
    Сообщения:
    435
    Симпатии:
    0
    Можно ли добавлять в Rich text поле новое значение, как в массив или множественное поле?
     
  2. leiba

    leiba Lotus team
    Lotus team

    Регистрация:
    18 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    Так нет?

    Call notesRichTextItem.AppendText( text$ )
     
  3. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    Можно! В дизайнерском хелпе находите NotesRichTextItem class, а там пред Вами предстанут всякие AppendText'ы и ему подобные вещи.
     
  4. seoman2

    seoman2 Lotus team
    Lotus team

    Регистрация:
    17 фев 2010
    Сообщения:
    435
    Симпатии:
    0
    Проблема вот в чем, при выполнении

    Dim RTItm As NotesRichTextItem
    Set RTItm=CurDoc.getFirstItem("ИСТОРИЯ")
    Call RTItm.Appendtext (formul$)

    Создается 2 поля ИСТОРИЯ !
    Одно пустое, а во второе как и надо добавляется значение formul$.
     
  5. leiba

    leiba Lotus team
    Lotus team

    Регистрация:
    18 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    А документ открыт на редактирование, поле "ИСТОРИЯ" редактируемое, так?
     
  6. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    Ща няма часу. Вот Вам на затравку рабочий код (по-моему рабочий ;)):
    Код (Text):
    Sub AppendToRTitem(RTitem As NotesRichTextItem, text As String)
    '--------------------------------------------------------------------------------------------------------------------------------------------- 
    ' Процедура динамического добавления текста в поле Rich Text
    'RTitem - поле RTitem, text - текст, который добавляется
    '!обращаться после того как в доке сделаны все необходимые изменения (после Doc.Save), чтобы не было конфликтов
    '---------------------------------------------------------------------------------------------------------------------------------------------
    Dim Wsp As New NotesUIWorkspace
    Dim DocUI As NotesUIDocument
    Dim Doc As NotesDocument

    Set DocUI = Wsp.CurrentDocument
    DocUI.Save
    DocUI.AutoReload = False
    Set Doc = DocUI.Document
    Call Doc.Save(True, False)
    Call RTitem.AppendText(text)
    Call RTitem.AddNewline(1)

    Call Doc.Save( True, False )
    Doc.SaveOptions = "3"
    Call DocUI.Close
    Call Wsp.EditDocument(True, Doc)
    DocUI.AutoReload = True    
    End Sub
     
  7. seoman2

    seoman2 Lotus team
    Lotus team

    Регистрация:
    17 фев 2010
    Сообщения:
    435
    Симпатии:
    0
    Поле история вычисляемое. Само на себя.

    alik86, у меня примерно такой же код, но всё равно 2 поля создается!
    Вот сделал в тестовой базе:
    И все равно 2 поля история создается!

    Разобрался, в 7.0.2. - создается 2 поля RichText.
    А в 8.5 - все правильно, 1 поле.
     
  8. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    А зачем надо делать 1-й Call Doc.Save(True, False) после DocUI.Save?
     
  9. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    А я уже не помню - методом тыка до этого доходил... :)
    Вспомнил :):
    Там были косяки с созданием конфликтов (см. "!обращаться после того как в доке сделаны все необходимые изменения (после Doc.Save), чтобы не было конфликтов"). Вот в процессе написания и отладки процедуры и сохранял принудительно, а апосля не убрал.
    Т.о. ответ: если процедура вызывается после Doc.Save, то не надо.
    Это нормально (а может не совсем, но и у меня так) - это дубликаты одного поля. Вся инфа отражается в РТфилде "История", который вы всунули в вашу форму...
     
Загрузка...

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