Richtext+thruhtml

Тема в разделе "Lotus - Программирование", создана пользователем ivashkalotus, 3 май 2006.

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

    ivashkalotus Гость

    Есть задание: создать отчет с помщью агента.
    Агент пробегает по базе и заполняет единственное RichText-поле формы данными.
    Чтобы это все было красиво предлагают использовать Pass-Thru HTML.

    Как это провернуть?
    Про агента пока не надо, думаю сделаю, а вот про Pass-Thru я бы послушал. ;)
    Обычный Pass-Thru в форме я представляю, а вот в RichText-е?
     
  2. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Как сделать html в ричтексте. Создаем форму ReportForm. На нем поле "body" типа RichText (в свойствах стоит галочка на "Store contents as HTML and MIME").
    Дальше, откуда надо формировать отчет, создаем кнопку с таким кодом:
    Код (Text):
    Sub Click(Source As Button)
    Dim session As New NotesSession
    Dim ws As New NotesUIWorkspace
    Dim db As NotesDatabase
    Dim dbReportDoc As NotesDocument
    Dim stream As NotesStream
    Dim body As NotesMIMEEntity
    Dim html As Variant

    Set db = session.CurrentDatabase
    Set dbReportDoc = New NotesDocument(db)
    dbReportDoc.Form = "ReportForm"
    Set stream = session.CreateStream
    session.ConvertMIME = False
    Set body = dbReportDoc.CreateMIMEEntity

    html = html + "<H1>Test</H1>"

    Call stream.WriteText(html)
    Call body.SetContentFromText(stream, {text/html; charset="UTF-8"}, ENC_IDENTITY_BINARY)
    Call dbReportDoc.ComputeWithForm(False, False)
    Call stream.Close
    Call ws.EditDocument(False, dbReportDoc, False)
    session.ConvertMIME = True

    End Sub
     
  3. ivashkalotus

    ivashkalotus Гость

    Спасибо Medevic, все работает, только я не понял где ты присваиваешь значение полю body, или это поле стандартное в таких случаях, и переименовать его нельзя?
     
  4. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Почитай про CreateMIMEEntity. "Body" - по-умолчанию.
    Заполняется поле в этой строке:
    <!--QuoteBegin-Medevic+3:05:2006, 12:44 -->
    <span class="vbquote">(Medevic @ 3:05:2006, 12:44 )</span><!--QuoteEBegin-->Call body.SetContentFromText(stream, {text/html; charset="UTF-8"}, ENC_IDENTITY_BINARY)
    [snapback]34823" rel="nofollow" target="_blank[/snapback]​
    [/quote]
     
  5. ivashkalotus

    ivashkalotus Гость

    <!--QuoteBegin-Medevic+3:05:2006, 12:44 -->
    <span class="vbquote">(Medevic @ 3:05:2006, 12:44 )</span><!--QuoteEBegin-->Set body = dbReportDoc.CreateMIMEEntity
    [snapback]34823" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    <!--QuoteBegin-Medevic+3:05:2006, 12:44 -->
    <span class="vbquote">(Medevic @ 3:05:2006, 12:44 )</span><!--QuoteEBegin-->Call body.SetContentFromText(stream, {text/html; charset="UTF-8"}, ENC_IDENTITY_BINARY)
    [snapback]34823" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Это я видел, но body в этом случае только локальная переменная!

    <!--QuoteBegin-Medevic+3:05:2006, 13:00 -->
    <span class="vbquote">(Medevic @ 3:05:2006, 13:00 )</span><!--QuoteEBegin-->Почитай про CreateMIMEEntity
    [snapback]34829" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Спасибо, почитаю
     
  6. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-ivashkalotus+3:05:2006, 13:05 -->
    <span class="vbquote">(ivashkalotus @ 3:05:2006, 13:05 )</span><!--QuoteEBegin-->Это я видел, но body в этом случае только локальная переменная!
    [snapback]34830" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Ну да. Можно назвать как угодно.
    А вот имя поля опционально задается именно в Set body = dbReportDoc.CreateMIMEEntity
    Т.е. это равносильно Set body = dbReportDoc.CreateMIMEEntity("Body")
     
  7. ivashkalotus

    ivashkalotus Гость

    Спасибо еще раз.
    Все фурычит. Даже агент получился ;)
     
Статус темы:
Закрыта.

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