Autor Thema: Übergabe RT aus Dialogbox an ParentDoc  (Gelesen 1547 mal)

Offline rambrand

  • Senior Mitglied
  • ****
  • Beiträge: 469
  • Geschlecht: Männlich
Übergabe RT aus Dialogbox an ParentDoc
« am: 05.05.14 - 14:42:09 »
Hallo,

ich probiere gerade ein RT aus einer Dialogbox in das Dokument zu übernehmen, das die Dialogbox aufgerufen hat.
In der Maske der Dialogbox habe ich dazu die UID des Dokumentes gespeichert, aus dem die Dialogbox aufgerufen wurde. Dann habe ich in die Maske der Dialogbox einen Button gesetzt, der auf das Parentdoc zugreift und den Inhalt des RT-Feldes rüberkopieren soll.

Code
Sub Click(Source As Button)
	On Error Goto errhandler
	Const ScriptName$ = "Button Lösung hinzufügen"
	
	Dim session As New notessession
	Dim ws As New NotesUIWorkspace
	Dim uidoc As NotesUIDocument
	Dim db As NotesDatabase
	Dim pdoc As NotesDocument
	Dim doc As NotesDocument
	Dim rc As Variant
	Dim rtitemA As NotesRichTextItem
	Dim rtitemB As NotesRichTextItem
	Dim rtitemC As NotesRichTextItem
	Dim rtstyle As NotesRichTextStyle
	Set rtstyle = session.CreateRichTextStyle
	rtstyle.Bold = True
	Dim colorObject As NotesColorObject
	Set colorObject = session.CreateColorObject
	colorObject.NotesColor = COLOR_RED
	
	Dim tmpPfadStr As String
	tmpPfadStr = Environ("TEMP")
	Dim tmpObjectName As String
	Dim objectBody As NotesEmbeddedObject
	Dim tmpFile As String
	
	Set db = session.CurrentDatabase
	Set uidoc = ws.CurrentDocument
	Set doc = uidoc.Document
	Set pdoc = db.GetDocumentByUnID(doc.dlg_parentid(0))
	Set rtitema = doc.Getfirstitem("dlg_loesung")
	If Not rtitemA Is Nothing Then
		If (rtitemA.Type = RICHTEXT ) Then
			If Not Isempty(rtitemA.EmbeddedObjects) Then
				Set rtitemb = New NotesRichTextItem(pdoc,"vbfr_helpdesk_loesung_anhaenge")				
				Set rtitemC = New NotesRichTextItem(pdoc,"vbfr_helpdesk_loesung")
				tmpInhaltText = rtitemA.Getformattedtext(False, 0)
				Forall object In rtitemA.EmbeddedObjects
					If ( object.Type = EMBED_ATTACHMENT ) Then
						tmpObjectName = object.Name
						tmpFile = tmpPfadStr & "\" & tmpObjectName 
						Call object.Extractfile(tmpFile)
						Set objectBody =  rtitemb.EmbedObject( EMBED_ATTACHMENT, "", tmpFile)
						Call object.remove
						Kill tmpFile
					End If
				End Forall
			End If
			Call rtitemc.BeginSection(Cstr(Now) & ": Lösung von " & Cstr(session.CommonUserName), rtstyle, colorObject, False)
			Call rtitemc.addnewline(1)
			Call rtitemc.appendrtitem(rtitema)
			Call rtitemc.addnewline(1)
			Call rtitemc.EndSection	
		End If		
	End If
	Call uidoc.Close
ende:
	Exit Sub
	
errhandler:
	Msgbox ScriptName$ + Chr(13) + logerror()
	Resume ende	
End Sub

Aufruf der Dialogbox:
Code
doct.dlg_parentid = doc.UniversalID
Call ws.DialogBox("DialogboxLoesung",True,True,True,False,False,False,"Frage",docT,True,True,False)
[... mehr passiert nicht ...]

Damit sollten Dateianhänge aus dem Richtextfeld der Dialogmaske (dlg_loesung) in das Parentdoc ins Feld vbfr_helpdesk_loesung_anhaenge kopiert werden, diese dann aus dem Richtextfeld gelöscht werden und der Rest des Richtextfeldes (formatierter Text) soll dann in das Feld vbfr_helpdesk_loesung kopiert werden.

Nur, der Anhang erscheint nicht im RTF vbfr_helpdesk_loesung_anhaenge, sondern am Ende des Parentdocs. Und der Rest des RTF der Dialogmaske (Text der hier eingegeben wurde), erscheint nicht im RTF vbfr_helpdesk_loesung.

Mittels einer kleinen Debug-Abfrage habe ich per getformattedtext den Text aus dem rtitema versucht auszulesen. Das Ergebnis war ein Nullstring.
Wenn ich in das RTF der Dialogmaske nur einen Text eingebe, dann sagt rtitema es sei NOTHING.

Vermutlich ein trivialer Fehler im Script, aber ich steige nicht mehr durch.

Dann noch eine Frage, die mir beim Debuggen in den Sinn kam - aber eher aus Interesse am Phänomen.
Ich habe die Maske des Parentdoc mit Richtext-Feldern versehen. Wird ein neues Dokument erstellt, sind diese erstmal leer. Wenn ich mir dann mit einem Doc-Editor die Felder anschaue, sind das erstmal Text-Felder. Werden diese erst mit Befüllen zu einem RTF konvertiert?

Bye,
Markus
« Letzte Änderung: 05.05.14 - 15:26:40 von rambrand »
Domino/Notes ab 4.6 aktuell 10.1FP3
Traveler 10.0.1FP1
PHP-Entwickler
Domino/Notes-Entwickler (Hobby)
Consultant (Informationssicherheit & Datenschutz)

Offline rambrand

  • Senior Mitglied
  • ****
  • Beiträge: 469
  • Geschlecht: Männlich
Re: Übergabe RT aus Dialogbox an ParentDoc
« Antwort #1 am: 05.05.14 - 15:00:13 »
Erster Erfolg:

nach dem Einfügen des Attachments in das RTF des Parentdoc (rtitemb) habe ich ein
Code
call rtitemb.update
eingebaut.

Und nach dem Aufruf der Dialogbox
Code
doc.saveoptions="0"
Call uidoc.Close(True)
Dim newuidoc As NotesUIDocument
Set newuidoc = ws.EditDocument(True,doc)
Delete uidoc
Set doc = newuidoc.document

Hab ich hier im Forum gefunden und nun werden die Anhänge in das richtige RT-Feld gespeichert, sowie der Abschnitt im rtitemc erstellt.

Das Problem das noch besteht ist, dass wenn ich reinen Text in das RTF der Dialogmaske eingebe, dieser ignoriert wird.

Bye,
Markus
Domino/Notes ab 4.6 aktuell 10.1FP3
Traveler 10.0.1FP1
PHP-Entwickler
Domino/Notes-Entwickler (Hobby)
Consultant (Informationssicherheit & Datenschutz)

Offline rambrand

  • Senior Mitglied
  • ****
  • Beiträge: 469
  • Geschlecht: Männlich
Re: Übergabe RT aus Dialogbox an ParentDoc
« Antwort #2 am: 05.05.14 - 15:26:27 »
Mal wieder der Wald ... sorry.

Das RTF in der Dialogbox hat natürlich keinen Inhalt, wenn das Doc noch nicht gespeichert wurde.

Und dann auch noch die RTI´s an falscher Stelle initialisiert, das kann nur in die Hose gehen.

Bye, Markus
Domino/Notes ab 4.6 aktuell 10.1FP3
Traveler 10.0.1FP1
PHP-Entwickler
Domino/Notes-Entwickler (Hobby)
Consultant (Informationssicherheit & Datenschutz)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz