Rendertortitem создает много Item-ов

Тема в разделе "Lotus - Программирование", создана пользователем MAZ, 12 апр 2011.

Статус темы:
Закрыта.
  1. MAZ

    MAZ Гость

    Проблемма (ну не проблема, а косячок небольшой) в следующем:
    Набиваю в документ-тест документы-вопросы через
    Код (LotusScript):
    Set rtitem = New NotesRichTextItem(testDoc, "body")
    Call questionDoc.RenderToRTItem(rtitem)
    В Лотусе такой документ-тест выглядит красиво, но при просмотре на Вебе заметил, что оказывается создается не один body, а несколько, (причем их количество не всегда зависит от количества отрендеренных документов-вопросов). На вебе отображается только первый body из первого документа-вопроса.

    Пока что решил задачу через редактирование-сохранение полученного документа. При сохранении Лотус склеивает все body.

    Может есть более красивое решение или как избежать того, что поля плодятся?
     
  2. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    Set rtitem = New NotesRichTextItem(testDoc, "body")
    проблема в этом ;)
    не создавайте а берите уже готовый
     
  3. MAZ

    MAZ Гость

    я наверное немного непонятно написал..
    New конечно же не в цикле вызывается:

    Код (LotusScript):
    Set rtitem = New NotesRichTextItem(doc, "body")
    Set questionDoc = ndc.GetFirstDocument
    While Not questionDoc Is Nothing
    Call questionDoc.RenderToRTItem(rtitem)
    Set questionDoc = ndc.GetNextDocument(questionDoc)
    Wend
    Call doc.Save(True, False)
    пробовал предварительно сохранить документ-тест, чтобы взять уже готовый body - результат такой же: после работы RenderToRtitem появляется несколько item-ов.
    Если нельзя избежать их появления, то может есть другой способ их "склеить", кроме как через edit-save-close?
     
  4. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    А если так:
    Код (LotusScript):
    Set tempDoc = db.CreateDocument
    Set rtitem = New NotesRichTextItem(tempDoc , "body")
    Set questionDoc = ndc.GetFirstDocument
    Do Until questionDoc Is Nothing
    Call questionDoc.RenderToRTItem(rtitem)
    Set questionDoc = ndc.GetNextDocument(questionDoc)
    Loop

    Call rtitem.CopyItemToDocument(doc, "Body") 'вариант 1
    'или
    Set rtitem2 = New NotesRichTextItem(doc , "body") 'вариант 2
    Call rtitem2 .AppendRTItem(rtitem)

    Call doc.Save(True, False)
     
  5. RAJ

    RAJ Well-Known Member

    Регистрация:
    17 янв 2007
    Сообщения:
    440
    Симпатии:
    0
    а если попробовать вызов rtitem.Update ?
     
  6. MAZ

    MAZ Гость

    rtitem.Update не помогает.
    CopyItemToDocument не помогает.
    А вот вариант №2 (AppendRTItem) работает просто прекрасно.

    СПАСИБО!
     
Загрузка...
Статус темы:
Закрыта.

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