• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы MAZ
  • Дата начала
Статус
Закрыто для дальнейших ответов.
M

MAZ

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

В Лотусе такой документ-тест выглядит красиво, но при просмотре на Вебе заметил, что оказывается создается не один body, а несколько, (причем их количество не всегда зависит от количества отрендеренных документов-вопросов). На вебе отображается только первый body из первого документа-вопроса.

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

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

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
Set rtitem = New NotesRichTextItem(testDoc, "body")
проблема в этом ;)
не создавайте а берите уже готовый
 
M

MAZ

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

Код:
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?
 
N

nvyush

А если так:
Код:
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)
 
R

RAJ

а если попробовать вызов rtitem.Update ?
 
M

MAZ

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

СПАСИБО!
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!