Domino 9 und frühere Versionen > ND6: Entwicklung

rtitem.AppendRTItem(rtitem2) übernimmt Inhalt nicht

(1/2) > >>

outerspace:
Hallo,
ich habe bereits die Einträge duchsucht, bin aber nicht fündig geworden (oder habe es übersehen).
Folgendes Problem:
Ich erzeuge im BE ein neues Dokument, erstelle ein rtitem und will zusätzlich zu anderem Text den Inhalt des RT-Feldes des geöffneten uidocs in das neue Dokument einfügen. Wenn ich das Script im Debugger laufen lasse funktioniert auch alles wie geplant, doch sobald der Debugger ausgeschaltet wird kommt der angehängte Richtext und die folgenden Inputs nicht mehr an.
Domino Version 6.5.5
Hat jemand diesen Effekt auch schon einmal gehabt ?
Bin für jeden Tip dankbar.

Hier der Quellcode:

--- Code: ---Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim server As String
Dim db As String
Dim recipients
Dim rtitem As NotesRichTextItem
Dim rtitem2 As NotesRichTextItem
Dim s As New NotesSession
Dim mDoc As NotesDocument
Dim mailDB As NotesDatabase

Set uidoc = ws.CurrentDocument
Call uidoc.Save
recipients = Evaluate("@Unique(MailRecipients)", uidoc.Document)
Set mailDB = s.CurrentDatabase
Set mDoc = mailDB.CreateDocument
With mDoc
.Form = "ASMemo"
.From = "Andreas Stark"
.SendTo = recipients
.CopyTo = ""
.BlindCopyTo = ""
.Subject = "Client & User Support  (concerning Ticket: "+ uidoc.FieldGetText("ProblemID") + ")"
End With
Set rtitem = New NotesRichTextItem(mDoc, "Body")
Call rtitem.AppendText("Subject:   "+ uidoc.FieldGetText("ProblemSubject"))
Call rtitem.AddNewLine(2)
Call rtitem.AppendText("Description:    ")
Call rtitem.AddNewLine(2)
Set rtitem2 = uidoc.Document.GetFirstItem("ProblemDescription")
If Not rtitem2 Is Nothing Then
Call rtitem.AppendRTItem(rtitem2)
End If
Call rtitem.AppendText("Comment:    " + uidoc.FieldGetText("ProblemHistoryInput"))
Call rtitem.AddNewLine(2)
Call rtitem.AppendText("For further details, please refer directly to the ticket "+ uidoc.FieldGetText("ProblemId"))
Call rtitem.AddNewLine(4)
Call rtitem.AppendText(nTime.LocalTime)
Call rtitem.AddNewLine(2)
Call rtitem.AppendText("Kind Regards")
Call rtitem.AddNewLine(2)
Call rtitem.AppendText(S.CommonUserName)
Call ws.EditDocument(True, mDoc, False)
End Sub

--- Ende Code ---

Gruss
Andreas

koehlerbv:
Ist das geöffnete Dokument auch schon gespeichert? Sonst wird das garantiert nichts.

Bernhard

outerspace:
Sorry dass ich mich erst jetzt melde, aber ich war die letzten Tage von anderen Dingen in Beschlag genommen.
Ja das Dokument ist abgespeichert (13. Zeile Quelltext) nur halt nicht geschlossen.
Das ist das, was ich,wenn die User keine Einwände habe als nächstes versuchen werde.
Der Witz ist halt wenn ich mit dem Debugger durch den Quellcode gehe ist alles übertragen, ohne Debugger nicht.

Andreas

koehlerbv:
Wenn der Debugger läuft, verhält sich das unter bestimmten Umständen (und gerade in solchem Kontext) anders als im "real life", da hier dann Objekte im FrontEnd (!) vorgehalten werden müssen, um zum Beispiel Variable auch darstellen zu können. Und gerade die "Konkurrenzsituation" Front-/-Backend" spielt einem da manchen (scheinbaren) Streich.

Zwei Anmerkungen:
Vor dem
Call ws.EditDocument(True, mDoc, False)
fehlt mir noch ein mDoc.Save. Gerade, weil Du RTIs bemühst.

Vielleicht wäre es aber viel einfach, die ganze Operation komplett im FrontEnd zu machen (für Dein zu übernehmendes RTI dann ein Copy & Paste). Du bist ja eh schon auf das Frontend bei diser Operation ausgerichtet.

Bernhard

outerspace:
Das mDoc kann ich an der Stelle nicht speichern, weil dem Anwender mit Cancel noch die Möglichkeit gegeben werden soll abzubrechen. Dann müsste ich das doc wieder löschen, geht nur nicht da Benutzer keine Löschrechte hat.
Das Dokument dessen RTI ich kopiere ist ein Helpdesk-Call und das Feld zu dem Zeitpunkt des Buttons nicht mehr bearbeitbar. Also kein Goto Field, Select und Copy möglich.
Es ist wie verhext, wenn man ein Problem umgeht, rennt man vor die nächste Wand.
Was ich mir noch überlegt habe, ist das RTI zu kopieren statt append und dann vorne und hinten den Text einzufügen.
Kann ich aber erst am Mittwoch ausprobieren, wenn ich wieder beim Kunden bin.

Gruss
Andreas

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln