Domino 9 und frühere Versionen > ND6: Entwicklung
AddNewLine Methode
Axel:
--- Zitat von: koehlerbv am 08.11.05 - 14:07:31 ---Wenn Du zu Beginn des RTIs einfügen willst, musst das erste RT-Element auch angeben. Im Beispiel zu BeginInsert ist das auch genau so aufgeführt.
Bernhard
--- Ende Zitat ---
... es gibt aber keine Methode um Text entsprechend einzufügen. Man kann dann nur mit Methoden aus der NotesRichTextRange Text auslesen. Oder hab ich da was übersehen.
Axel
Andreas Huhn:
Also ich versteh die Hilfe so daß es irgendwie möglich sein müsste, Axel.
@ Bernhard:
Ich versteh deine Antwort nicht ganz. Auf einer Maske mit nur einem einzigen RT dürfte es demnach keine Probleme geben? Kannst du mir das bitte genauer erklären?
koehlerbv:
@Axel:
Aus der DesignerHelp:
--- Zitat ---Examples: BeginInsert method
This agent inserts text at (depending on user specification) the beginning or end of an item, or before or after the nth paragraph.
...
REM Position navigator
REM (not necessary for "end" or empty item)
If beginningText Then
Call rtnav.FindFirstElement(RTELEM_TYPE_TEXTPARAGRAPH)
...
Call body.BeginInsert(rtnav)
...
Call body.AppendText(it$)
If beginningText Or beforeText Then
Call body.AddNewLine(1)
--- Ende Zitat ---
@Andreas:
Wieviele RTIs es gibt, ist egal - Du beziehst Dich ja auf ein spezifisches RTI.
Bernhard
Andreas Huhn:
Der Code von Axel funktioniert zwar deutlich besser, aber bis zum rumpfuschen mit den Insert Methoden benutz ich grad noch meinen weil ich mich da besser auskenne. Nachher werd ich dann den von Axel etwas anpassen. Aber erstmal muß ich das überhaupt hinkriegen...
Die BeginInsert Methode kann nicht auf ein RichText Feld selbst zielen drum muß ich den Umweg gehn ein RichTextNavigator Objekt zu erstellen.
--- Code: ---Sub Click(Source As Button)
Dim doc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim ws As New NotesUIWorkspace
Dim EditFlag As Boolean
Dim rtnav As NotesRichTextNavigator
'...set value of doc...
Set doc = ws.CurrentDocument.Document
EditFlag = ws.CurrentDocument.EditMode
On Error Resume Next
Call ws.CurrentDocument.Save
Call ws.EditDocument( False )
Set rtitem = doc.GetFirstItem( "rtTest" )
Set rtnav = rtitem.CreateNavigator
Call rtnav.FindFirstElement(RTELEM_TYPE_TEXTPARAGRAPH)
If rtitem.Type = RICHTEXT Then
Call rtitem.BeginInsert(rtnav)
Call rtitem.AddNewLine( 1)
Call rtitem.AppendText( "Book is 64 pages, full color." )
End If
Call doc.Save( False, True )
ws.CurrentDocument.EditMode = EditFlag
End Sub
--- Ende Code ---
Ohne diese Zeile [ Call rtnav.FindFirstElement(RTELEM_TYPE_TEXTPARAGRAPH) ] wird der Text wenigstens hinten angehängt. Mit wird er gar nicht angehängt.
Du hast ja in deinem Auszug versucht nochmal die Struktur herauszustellen die nötig ist damit das funktioniert, und ich habe versucht es an meine Prozedur anzupassen.
Axel:
Hi,
ich hab's testhalber mal eingebaut und es funktioniert.
--- Code: ---Sub Click(Source As Button)
Dim wksp As New NotesUIWorkspace
Dim uidoc As NotesUIDocument, uidocNew As NotesUIDocument
Dim doc As NotesDocument
Dim rti As NotesRichTextItem
Dim rtnav As NotesRichTextNavigator
Dim bolEditMode As Boolean
Set uidoc = wksp.CurrentDocument
bolEditMode = uidoc.EditMode
If bolEditMode Then Call uidoc.Refresh (True) ' do this if the rich text field is editable, to get the current contents in case user has modified them.
Set doc = uidoc.Document
Set rti = doc.GetFirstItem("rtTest")
Set rtnav = rti.CreateNavigator
If rtnav.FindFirstElement(RTELEM_TYPE_TEXTPARAGRAPH) Then
Call rti.BeginInsert(rtnav)
Call rti.AddNewLine( 1 )
Call rti.AppendText( "Book is 64 pages, full color." )
Call rti.EndInsert
Else
Call rti.AddNewLine( 1 )
Call rti.AppendText( "Book is 64 pages, full color." )
End If
Call rti.Update ' ND6 only
doc.SaveOptions = "0" ' make it possible to close the document without a "do you want to save" prompt.
Call uidoc.Close(True)
Set uidocNew = wksp.EditDocument(bolEditMode, doc, , , , True)
Delete uidoc
uidocNew.Document.RemoveItem("SaveOptions")
End Sub
--- Ende Code ---
@Bernhard
Danke für den Tipp. Ich hab die Ecke zwar gelesen, aber das muss ich übersehen haben.
Axel
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln