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

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

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

    MAZ Гость

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

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

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

    ToxaRat Чёрный маг
    Команда форума Lotus team

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

    MAZ Гость

    Репутация:
    0
    я наверное немного непонятно написал..
    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 Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    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

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

    MAZ Гость

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

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

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