Richtext+thruhtml

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

ivashkalotus

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

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

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#2
Как сделать html в ричтексте. Создаем форму ReportForm. На нем поле "body" типа RichText (в свойствах стоит галочка на "Store contents as HTML and MIME").
Дальше, откуда надо формировать отчет, создаем кнопку с таким кодом:
Код:
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
 
I

ivashkalotus

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

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#4
Почитай про 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]
 
I

ivashkalotus

#5
<!--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]
Спасибо, почитаю
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#6
<!--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")
 
I

ivashkalotus

#7
Спасибо еще раз.
Все фурычит. Даже агент получился ;)
 
Статус
Закрыто для дальнейших ответов.