Domino 9 und frühere Versionen > ND8: Entwicklung

Richtext-Feld bearbeiten im FrontEnd..

<< < (2/2)

Driri:
Du mußt das temporär im Backend erzeugte NotesDocument-Objekt an EditDocument übergeben. Dann wird Dir das auch im Frontend geöffnet.

Was ich vergessen habe, Du mußt im Backend-Dokument das Item "Form" mit dem Namen der Maske befüllen.

debaser:
ok..

Also so weit ist jetzt mal mein Code:

--- Code: ---Sub Click(Source As Button)

Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim uiws As New NotesUIWorkspace
Dim docIn As NotesDocument
Dim docOut As NotesDocument
Dim uidoc As notesuidocument
Dim bodyOut As NotesRichTextItem
Dim bodyIn As NotesRichTextItem
Dim tmp As NotesRichTextItem

Set db = session.CurrentDatabase

Set collection = db.UnprocessedDocuments
Set docIn = collection.GetFirstDocument
Set bodyIn = docIn.GetFirstItem("Body")

Set bodyOut = New NotesRichTextItem(docIn, "bodyOut")

bodyOut.AppendText("Ursprüngliche Nachricht"+Chr(10))
Call bodyOut.AppendRTItem(bodyIn)


Set docOut = New NotesDocument(db)
docOut.form = "Outgoing"

Call docOut.ReplaceItemValue("Body", bodyOut)
Call docOut.Save(False, False)

Call uiws.EditDocument(True,docOut,False)

End Sub
--- Ende Code ---

Es erscheint jetzt auch die richtige Maske, allerdings leer. Wie krieg ich das Body Item da rein ? :(
Mir fehlt einfach sowas wie "docOut.setItem("Body",bodyOut)"..
Text einzufügen klappt natürlich, nur bei Richtext streikts wieder..

Peter Klett:
Sub Click(Source As Button)
   
   Dim session As New NotesSession
   Dim db As NotesDatabase   
   Dim collection As NotesDocumentCollection
   Dim uiws As New NotesUIWorkspace   
   Dim docIn As NotesDocument
   Dim docOut As NotesDocument
   Dim uidoc As notesuidocument
   Dim bodyOut As NotesRichTextItem
   Dim bodyIn As NotesRichTextItem
   Dim tmp As NotesRichTextItem
   
   Set db = session.CurrentDatabase
   
   Set collection = db.UnprocessedDocuments
   Set docIn = collection.GetFirstDocument
   Set bodyIn = docIn.GetFirstItem("Body")
   
   Set bodyOut = New NotesRichTextItem(docIn, "bodyOut")
   
   bodyOut.AppendText("Ursprüngliche Nachricht"+Chr(10))
   Call bodyOut.AppendRTItem(bodyIn)
   
   
   Set docOut = New NotesDocument(db)
   docOut.form = "Outgoing" "Memo"  ???
   
   Set bodyOut = New NotesRichTextItem(docOut, "bodyOut") ???
   Call bodyOut.AppendText("Ursprüngliche Nachricht"+Chr(10))
   Call bodyOut.AppendRTItem(bodyIn)
   Call docOut.ReplaceItemValue("Body", bodyOut)
   Call docOut.Save(False, False)
   
   Call uiws.EditDocument(True,docOut,False)
   
End Sub

NACHTRAG: Ich habe keine Ahnung, mit was für einer Datenbank Du da rumbastelst. Falls es die Maildatenbank ist, heißt das Richtextfeld "Body" und die Form wird wohl eher ein "Memo" sein.

NACHTRAG 2:
statt: Call bodyOut.AppendText("Ursprüngliche Nachricht"+Chr(10))
ist besser: Call bodyOut.AppendText("Ursprüngliche Nachricht"&Chr(10))
oder bei RT ganz sauber:
Call bodyOut.AppendText("Ursprüngliche Nachricht")
Call bodyOut.AddNewLine (1)


Die Erklärung dazu findest Du hier in etlichen Beiträgen

debaser:
yeeeah, funktioniert :)

Hast recht Peter, das Feld heißt 'body', aber die Form heißt tatsächlich 'Outgoing' (warum auch immer)
In der Datenbank steckt auch alles mögliche an Kundendokumenten drin, von dem her wird das wohl keine Maildatenbank sein.. vermut ich mal.
Ich hoff ich komm in die Thematik noch besser rein, hab noch mehr Notes-Geschichten auf meiner ToDo Liste ;)

Hab natürlich gleich die 'bessere' Variante eingebaut.. wenn man schonmal dabei ist.

Jetzt muss ich nur noch ein paar andere Felder, welche vorher über Formel gefüllt wurden, über das Skript befüllen und dann kann ich das hoffenltich abhaken.


Vielen dank für eure Hilfe, wirklich klasse wie schnell und kompetent einem hier geholfen wird :)

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln