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

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

  1. ABarmin

    ABarmin Гость

    Добрый день.

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

    Код (LotusScript):
    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, так и просто текстом. Пробовал создавать его динамически - не помогает.

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

    duchan Well-Known Member

    Регистрация:
    20 сен 2006
    Сообщения:
    105
    Симпатии:
    2
    а что html уже перестал быть просто текстом? :rolleyes:

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

    ABarmin Гость

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

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

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    ABarmin
    добавте полю IsSummary = false
     
  5. Dragon108

    Dragon108 Well-Known Member

    Регистрация:
    19 янв 2010
    Сообщения:
    264
    Симпатии:
    0
    Это тоже может не помочь (((

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

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

    ABarmin Гость

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

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

    Amfion Well-Known Member

    Регистрация:
    26 май 2010
    Сообщения:
    138
    Симпатии:
    3
    А какой размер выводит. Что то у меня если больше 64 в рич тексте отказывается выводить Html
     
  8. ABarmin

    ABarmin Гость

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

    duchan Well-Known Member

    Регистрация:
    20 сен 2006
    Сообщения:
    105
    Симпатии:
    2
    зачем RichText то дробить? параграф вставь и пиши еще 64К....
    Дробить на поля надо, если использовать простое текстовое поле, и дробить по 32К...
     
  10. ABarmin

    ABarmin Гость

    Оно автоматически разделяется. Когда смотришь на документ и в свойствах видно, что RichText полей несколько, на самом деле - одно.
     
  11. duchan

    duchan Well-Known Member

    Регистрация:
    20 сен 2006
    Сообщения:
    105
    Симпатии:
    2
    читаем внимательно:
    про RT сказано, что после 64К надо поставить параграф (!), т.к. дробить то оно дробит, но единый параграф в RT не может превышать 64К - различайте понятия весь текст и один параграф в тексте.
     
  12. ABarmin

    ABarmin Гость

    Ага, теперь понятно, спасибо!
     
Загрузка...

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