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

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

ABarmin

#1
Добрый день.

Не могу сохранить 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, так и просто текстом. Пробовал создавать его динамически - не помогает.

В чем может быть проблема?
 

duchan

Well-known member
20.09.2006
110
3
#2
а что html уже перестал быть просто текстом? :rolleyes:

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

ABarmin

#3
Вполне возможно, что в текстовое поле не помещается.
Когда поле меняю на RichText, то выдает ошибку: Unable to allocate 64k of memory.

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

Dragon108

Well-known member
19.01.2010
265
0
#5
ABarmin
добавте полю IsSummary = false
Это тоже может не помочь (((

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

Как тогда добавлять много-много не разбитого текста абзацами в rich-text поле?
Посмотрите Notesrichtextitem class , в частности методы AddNewLine и AppendText
 
A

ABarmin

#6
Нашел решение.

Удалил поле, заново создал как RichText и сделал ему AppendText.
 
A

ABarmin

#8
Если не влезает, то вставляемый код разделяется на несколько RichText полей.
 

duchan

Well-known member
20.09.2006
110
3
#9
Если не влезает, то вставляемый код разделяется на несколько RichText полей.
зачем RichText то дробить? параграф вставь и пиши еще 64К....
Дробить на поля надо, если использовать простое текстовое поле, и дробить по 32К...
 
A

ABarmin

#10
зачем RichText то дробить? параграф вставь и пиши еще 64К....
Дробить на поля надо, если использовать простое текстовое поле, и дробить по 32К...
Оно автоматически разделяется. Когда смотришь на документ и в свойствах видно, что RichText полей несколько, на самом деле - одно.
 

duchan

Well-known member
20.09.2006
110
3
#11
Оно автоматически разделяется. Когда смотришь на документ и в свойствах видно, что RichText полей несколько, на самом деле - одно.
читаем внимательно:
Дробить на поля надо, если использовать простое текстовое поле, и дробить по 32К...
про RT сказано, что после 64К надо поставить параграф (!), т.к. дробить то оно дробит, но единый параграф в RT не может превышать 64К - различайте понятия весь текст и один параграф в тексте.