• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Сохранить Html-код в поле

  • Автор темы Автор темы ABarmin
  • Дата начала Дата начала
A

ABarmin

Добрый день.

Не могу сохранить html-код, который сгенерирован агентом в поле документа. Простой текст в поле пишется на ура, html - ни в какую. Код записывалки:

Код:
Function reportBuildSaveResults(requestID As String, result As String)
On Error GoTo errH

Dim s As New NotesSession
Dim db As NotesDatabase
Dim request As NotesDocument

Set db = s.Currentdatabase
Set request = db.Getdocumentbyid(requestID)	

Call request.Replaceitemvalue("reportHTML", result)
Call request.Save(True, true)

basta:
Exit Function
errH:
Print (Error$ + " в строке (reportBuildSaveResults) " + CStr(Erl))
Resume basta		
End Function

Сюда передается requestID - ID документа, в который нужно поместить result - html код сгенерированного отчета.
Если в качестве result приходит простой текст, то он нормально сохраняется, если html-код - ни в какую.

Поле reportHTML пробовал делать как richText, так и просто текстом. Пробовал создавать его динамически - не помогает.

В чем может быть проблема?
 
а что html уже перестал быть просто текстом? :rolleyes:

По сути вопроса: посмотрите размер HTML'я он может быть просто больше 32К и не помещатся в поле - ограничение на размер текстового поля.
В ричтексте также надо добавлять "абзацами", поскольку там тоже действует ограничение на размер единого абзаца (помоему теже 32К, а может 64К - не помню точно)
 
Вполне возможно, что в текстовое поле не помещается.
Когда поле меняю на RichText, то выдает ошибку: Unable to allocate 64k of memory.

Как тогда добавлять много-много не разбитого текста абзацами в rich-text поле?
 
ABarmin
добавте полю IsSummary = false

Это тоже может не помочь (((

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

Как тогда добавлять много-много не разбитого текста абзацами в rich-text поле?

Посмотрите Notesrichtextitem class , в частности методы AddNewLine и AppendText
 
Нашел решение.

Удалил поле, заново создал как RichText и сделал ему AppendText.
 
Если не влезает, то вставляемый код разделяется на несколько RichText полей.
 
Если не влезает, то вставляемый код разделяется на несколько RichText полей.
зачем RichText то дробить? параграф вставь и пиши еще 64К....
Дробить на поля надо, если использовать простое текстовое поле, и дробить по 32К...
 
зачем RichText то дробить? параграф вставь и пиши еще 64К....
Дробить на поля надо, если использовать простое текстовое поле, и дробить по 32К...
Оно автоматически разделяется. Когда смотришь на документ и в свойствах видно, что RichText полей несколько, на самом деле - одно.
 
Оно автоматически разделяется. Когда смотришь на документ и в свойствах видно, что RichText полей несколько, на самом деле - одно.
читаем внимательно:
Дробить на поля надо, если использовать простое текстовое поле, и дробить по 32К...
про RT сказано, что после 64К надо поставить параграф (!), т.к. дробить то оно дробит, но единый параграф в RT не может превышать 64К - различайте понятия весь текст и один параграф в тексте.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab