Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: bandit am 17.02.06 - 10:19:47
-
Ich möchte gerne in ein Richtextfeld von einem UIDoc was ich geföffnet habe einen Text als Durchgangs-HTML an der aktuellen Cursorposition einfügen. Bisher wird der Text nur als normaler Text eingefügt. Für die Formartierung als Durchgangs-HTML muss ich ja wahrscheinlich über ein RichtextItem gehen. Da ist mir nicht klar wie ich dieses bekomme über das UIDoc. Bisher sieht der Code in etwa so aus:
...
strFieldCurrent = uidocCurrent.CurrentField
Call uidocCurrent.InsertText(strPath)
...
Statt dem strPath müsste ja jetzt wahrscheinlich ein Richtextitem eingefügt werden.
Danke für eure Antworten!
-
Was willst du denn mit Text als Durchgangs-HTML in einem RTF-Feld?
Axel
-
Das Dokument wird später im Web dargestellt und das Richtextfeld enthält neben Text halt auch ein bischen HTML.
-
Aus der Hilfe:
Read-write. HTML attribute as listed below.
Hinweis This property is new with Release 5.
Defined in
NotesRichTextStyle
Data type
Boolean or constant of type Integer
Hinweis The data type is Long for COM.
Syntax
To get: flagIntegerConstant = notesRichTextStyle.PassThruHTML
To set: notesRichTextStyle.PassThruHTML = flagIntegerConstant
Legal values
True (-1) for passthru HTML.
False (0) for non-passthru HTML.
STYLE_NO_CHANGE (255) to maintain the previous state (default).
Usage
HTML text may be embedded in a NotesRichTextItem by setting this property and then calling the AppendText method. These attributes are useful when the document is served up to the Web. The text may be visible or invisible when displayed by the Domino Designer Editor, controlled by View options.
Andreas
-
Wie ich das entsprechende RichtextItem formatiere ist mir klar.
Was mir nicht klar ist wie ich aus dem bestehenden UIDoc das Richtextfeld dem Richtextitem zuweise das dann der Inhalt des Richtextitems (mit dem Passthru HTML drinn) an der aktuellen Cursorpostion im Richtextfeld eingefügt wird.
-
In der Desinger-Hilfe gibt's ein Beispiel dazu.
Axel
-
Ich find in den Beispielen immer nur wie es über ein Notesdocument geht, ist das über das UIDoc nicht möglich?
-
Notesdocument = uidoc.Document
-
Danke für die Antworten!
Ich habs jetzt etwas anders gemacht, etwas umständlich aber so gehts:
'-- Ein Objekt vom Typ NotesRichTextStyle wird erzeugt.
Set rtsTemp = sessCurrent.CreateRichTextStyle
'-- Das temporäre Dokument, das als Zwischenlager für den einzufügenden PassThru-HTML benutzt wird, wird mithilfe der Maske ' ispfrmTemp' erzeugt.
Set docTemp = dbCurrent.CreateDocument
docTemp.Form = |ispfrmTemp|
Set rtTemp = New NotesRichTextItem(docTemp, "ispBody")
'-- Die PassThru-Eigenschaft des NotesRichTextStyles aktiviert.
rtsTemp.PassThruHTML = True
Call rtTemp.AppendStyle(rtsTemp)
Call rtTemp.AppendText(strPath)
'-- Das temporäre Dokument wird gespeichert, damit es im Frontend geöffnet werden kann.
Call docTemp.Save(True, False)
'-- Das temporäre Dokument wird im Frontend im Editier-Modus geöffnet, das RichText-Feld wird angesprungen, komplett markiert und in die
'-- Zwischenablage kopiert.
Set uidocTemp = uiwsCurrent.EditDocument(True, docTemp)
Call uidocTemp.GotoField("ispBody")
Call uidocTemp.SelectAll
Call uidocTemp.Copy
'-- Das Frontend-Dokument wird geschlossen.
Call uidocTemp.Close()
'-- Der Inhalt der Zwischenablage wird an der aktuellen Cursor-Position eingefügt.
Call uidocCurrent.Paste
'-- Das temporäre Dokument wird wieder entfernt.
Call docTemp.Remove(True)