Domino 9 und frühere Versionen > ND8: Entwicklung

Mal wieder Richtextfeld kopieren

<< < (2/2)

Fedaykin:
Hallo Thomas

Ändere mal

--- Code: ---Dim rtitem2 As NotesRichTextItem
--- Ende Code ---
zu

--- Code: ---Dim rtitem2 As NotesItem
--- Ende Code ---

und

--- Code: ---Set rtitem = New NotesRichTextItem( doc, "Body" )
Call rtitem.AppendRTItem(rtitem2)
--- Ende Code ---
zu

--- Code: ---rtitem2.CopyItemToDocument doc, "Body"
--- Ende Code ---

Gruss
Remo

koehlerbv:
Hallo Remo,

das CopyItemToDocument wollte ich auch vorschlagen, aber solange nicht geklärt ist, ob da überhaupt etwas zu kopieren da ist (sprich :Wurde das Dokument gespeichert) bringt das nichts.

Und ob Thomas das tut, wissen wir immer noch nicht. Obwohl das doch eigentlich eine einfache Frage war ...
Wenn er nicht soeichert / nicht speichern will (was ja durchaus denkbar ist), muss er über das Frontend gehen und darüber kopieren.

Bernhard

iukhdh:
Guten Morgen Remo und Bernhard,

erstmal Dank für eure Rückmeldungen gestern (da war Hektik im Schuppen) und heute morgen schon wieder.

Letztlich hat mich Bernhards Frage auf den richtigen Weg gebracht. Das Dokument wird schon gespeichert, aber erst nach dieser Aktion, wenn die Dialogbox wieder verlassen wird.

Wenn ich es recht verstehe, funktioniert das mit dem AppendRTItem etwas anders als mit dem AppendText, den dieser wurde auch schon vor dem Speichern übergeben.

Da ich den Code aber weiterhin wegen der Übersichtlichkeit gerne im Queryclose der Dialogbox lassen würde, habe ich ihn wie unten angehängt geändert, was nun funktioniert. Den Hinweis auf diese Lösungsmöglichkeit habe ich aus einem anderen Thread hier im Forum gesehen. Bernhard, du schienst in diesem Thread nicht so ganz überzeugt davon zu sein, aber mir scheint es so als ob es funktioniert.

Vielleicht kurz nochmal meine Frage: Kann sich jemand vorstellen, warum der Debugger, wenn ich in eine Maske in einer Dialogbox verzeige, den Code dort nicht anzeigt? Ist das ein Bug oder ein Feature, das ich nicht verstehe?


So, und nun werd ich meine Maske noch etwas anpassen, und dann kommt das nächste Highlight dran: Mail abholen und in eine Maske packen, also der umgekehrte Weg. Ich denke, wir werden voneinander hören  ::)



--- Code: ---Sub Queryclose(Source As Notesuidocument, Continue As Variant)

Dim session As New notessession
Dim db As NotesDatabase
Dim rtitem As NotesRichTextItem
Dim ws As New notesuiworkspace
Dim uidoc As NotesUIDocument
Dim rtitem2 As NotesRichTextItem
Dim aktdoc As NotesDocument

'Erstmal refreshen, damit alles ins Backend kommt.
Call source.refresh(True)
Set aktdoc = source.Document

'Inhalte holen
Set rtitem2 = aktdoc.GetFirstItem ("Textinhalt" )
Set db = session.CurrentDatabase
Dim altdoc As Notesdocument
Set altdoc = db.GetDocumentByUNID(source.fieldgettext("HDokumentID"))

'Abfrage, ob der OK oder der Abbruchknopf gedrückt wurde
If Not Source.DialogBoxCanceled Then

'Neues Dokument vorbereiten, mit den Inhalten für Empfänger, Betreff, Text ....

Set doc = New NotesDocument(db)
With doc
.Form = "Memo"
.SendTo = source.fieldgettext("Empfaenger")
.Subject = source.fieldgettext("Meldungsart")+"  -  Servicefall "+source.fieldgettext("Servicenummer")
End With

'Ein Richtextitem wird erstellt für den Body, inkl. Link
Set rtitem = New NotesRichTextItem( doc, "Body" )

Call rtitem.AppendText ("HINWEIS: Bitte antworten Sie nicht direkt auf diese Mail sondern geben Sie eine evtl. Rückantwort im Servicefall ein."+Chr$(10)+"Bitte verwenden Sie dazu diesen Link -> ")
Call rtitem.AppendDocLink( altdoc, "Link zum Servicefall " +  source.fieldgettext("Servicenummer"))
Call rtitem.AddNewLine( 2 )
Call rtitem.AppendText (source.fieldgettext("Anrede"))
Call rtitem.AddNewLine( 2)
Call rtitem.AppendRTItem(rtitem2)
Call rtitem.AddNewLine( 2 )
Call rtitem.AppendText (source.fieldgettext("Abschluss"))

Call rtitem2.Remove

Call doc.Send(False)
End If

End Sub
--- Ende Code ---

koehlerbv:
Der Debugger kann nicht laufen, wenn modale Fenster vom Code geöffnet werden. Das ist unschön, aber korrekt so. Normalerweise wird Dir dies vorher auch vom Debugger als letzter Hinweis eingeblendet - vermutlich hast Du das nicht gelesen oder irgendwann mal abgeschaltet.

Bernhard

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln