Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: bandit am 17.02.06 - 10:19:47

Titel: Text als Durchgangs-HTML in Richtextfeld von UIDoc
Beitrag 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!
Titel: Re: Text als Durchgangs-HTML in Richtextfeld von UIDoc
Beitrag von: Axel am 17.02.06 - 10:23:48
Was willst du denn mit Text als Durchgangs-HTML in einem RTF-Feld?


Axel
Titel: Re: Text als Durchgangs-HTML in Richtextfeld von UIDoc
Beitrag von: bandit am 17.02.06 - 10:26:52
Das Dokument wird später im Web dargestellt und das Richtextfeld enthält neben Text halt auch ein bischen HTML.
Titel: Re: Text als Durchgangs-HTML in Richtextfeld von UIDoc
Beitrag von: Glombi am 17.02.06 - 10:32:33
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

Titel: Re: Text als Durchgangs-HTML in Richtextfeld von UIDoc
Beitrag von: bandit am 17.02.06 - 10:50:05
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.
Titel: Re: Text als Durchgangs-HTML in Richtextfeld von UIDoc
Beitrag von: Axel am 17.02.06 - 11:04:00
In der Desinger-Hilfe gibt's ein Beispiel dazu.


Axel
Titel: Re: Text als Durchgangs-HTML in Richtextfeld von UIDoc
Beitrag von: bandit am 17.02.06 - 11:19:18
Ich find in den Beispielen immer nur wie es über ein Notesdocument geht, ist das über das UIDoc nicht möglich?
Titel: Re: Text als Durchgangs-HTML in Richtextfeld von UIDoc
Beitrag von: Driri am 17.02.06 - 11:29:42
Notesdocument = uidoc.Document
Titel: Re: Text als Durchgangs-HTML in Richtextfeld von UIDoc
Beitrag von: bandit am 17.02.06 - 11:38:19
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)