Autor Thema: RTFeld in einen Backenddokument bauen anschließend in einer Dialogbox ändern und  (Gelesen 2322 mal)

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
dann wieder im Backend weiterverwenden und die Änderungen des RTFeldes behalten. Hat das schon mal jemand gemacht?

Ich bekomme das soweit hin, das das im Backend erstellte Dokument mit dem RT-Feld in der Dialogbox angezeigt wird. Alle Änderungen die in anderen Feldern passieren habe ich auch in der aufrufenden Funktion zur Verfügung.
Aber wenn ich Änderungen im RT-Feld vornehme werden die nicht übernommen.
Code
		' build a special document that is deleted afterwards to get the rtfield editable
		Set showmaildoc = current.CreateDocument		
		Set item =  showmaildoc.ReplaceItemValue("Form","ShowMemo")
		Set item =  showmaildoc.ReplaceItemValue("SendTo", sendto)
		Set item =  showmaildoc.ReplaceItemValue("CopyTo", copyto)
		OK =itemtextexists(linkto,itemsubjectname) 
		If ok = True Then 
			Set me_item = LinkTo.GetFirstItem(itemsubjectname) 
			If subject = "" Then 
				subject = me_item.Text 
			Else 
				subject = subject + " " + me_item.Text 
			End If 
		End If 
		showmaildoc.Subject = subject 
		Set rtitem = showmaildoc.CreateRichTextItem( "Body" ) 
		OK =itemtextexists(linkto, itembodyname) 
		If ok = True Then 
                ' create the rtitem using the item from the given document 
			Set me_item = LinkTo.GetFirstItem(itembodyname) 
			If me_item.Type=RICHTEXT Then ' RICHTEXT 
                        ' copy the complete rtitem 
				Call rtitem.AppendRTItem( me_item ) 
			Else 
				Forall v In me_item.Values 
					Call rtitem.AppendText( v )         
					Call rtitem.addnewline(1) 
				End Forall 
			End If 
		End If         
        ' Copy 
		If message <> "" Then 
			Call rtitem.AppendText( message ) 
		End If 
		If embedlink = True Then 
			Call rtitem.AppendDocLink( LinkTo,"VAZ")         
		End If 
		Call showmaildoc.Save(True,False)
			' show the mail to the user before sending it so that the user can change the Email. The Mail is send even if the users escapes the Dialogbox
			' there is a dim and i hope that this is not messing it all up
		Dim wksp As New notesuiworkspace
		ok = wksp.dialogbox("ShowMemo",True,True,True,True,False,False,"",showmaildoc)
		Set  usemaildoc = current.GetDocumentByUNID(showmaildoc.UniversalID)
Wobei ich hergegangen bin und habe das benutzte Mail Dokument direkt in der für die Dialogbox benutzten Teilmaske im Queryclose Event noch einmal mit
Code
Sub Queryclose(Source As Notesuidocument, Continue As Variant)
	Dim me_doc As NotesDocument

	Set me_doc = source.document
	Call me_doc.Save(True,False)
End Sub

abgespeichert. Er zieht aber leider die Änderungen im RT Feld nicht mit.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Hallo,

willst Du das RT-Feld im Dialog verändern? Soweit ich weiß, kann man RT-Felder in Dialogboxen nur anzeigen, weil sie dort nur wie normale Textfelder behandelt werden.

Versuche es einmal anstatt mit einer Dialgobox mit einem normalen Dokument.

Gruß,

Joachim
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
RTFM .....


Zitat
@DialogBox displays a form of your design in a dialog box that has OK and Cancel buttons. When the user clicks OK, the contents of the fields in the dialog box transfer to any fields of the same name in the document in which @DialogBox is executing.


@DialogBox does not transfer rich text fields.



These should not be included in your design.




The form that is displayed in the dialog box is best created using a layout region, and @DialogBox should use the [AutoVertFit] and [AutoHorzFit] options.

(Hervorhebung durch Zeilenabstände von mir, für die entsprechende LS-Methode gilt das genauso)
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
RTFM ist gut Jens. Nur leider eben nicht mehr 100% richtig.

Mein erster Gedanke war ja der gleiche. Das geht schlicht und einfach nicht. Weder rein noch raus. Aber rein, so das das RTFeld in der Dialogbox angezeigt wird geht es eben doch.

Nur raus scheint es wirklich keinen Weg dahin zu geben. Naja muss ich das halt über ein UIDOC machen. Damit verliere ich zwar die Vorteile der Dialogbox aber das funktioniert wenigstens.

EDIT Nein das funktioniert nicht, denn der Editdocument unterbricht ja dummerweise die Verarbeitung des Scriptes nicht.  Also muss ich einen anderen Ansatz wählen.

Und anschließend schmeissen wir das Dokument ja sowieso wieder weg.

Also noch einmal:
RT Felder in Dialogboxen darstellen funktioniert. (zumindest mit 6.5.4)
RT Felder in Dialogboxen ändern funktioniert nicht.
« Letzte Änderung: 01.07.05 - 14:36:37 von Thomas Schulte »
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Thomas, das hat schon mit RTFM zu tun, Du liesest den Text ungenau. Die von mir zitierte Stelle redet davon, dass "the contents of the fields in the dialog box transfer to any fields of the same name in the document in which @DialogBox is executing"

Heisst, hier geht es NUR um den Transfer aus der Diabox heraus ins zugrundeliegende Dokument (entweder das Aktuelle, oder das durch Parameter mitgegebene).

Korrekterweise heisst es dann auch

"These should not be included in your design."


Das ist kein Verbot, sondern nur ein Ratschlag. Die Dokumentation ist absolut korrekt und klar. Ob die D Uebersetzung das auch ist, weiss ich nicht und würde nicht erstaunen, wenn dieser etwas komplexere Text ungenau übersetzt wäre.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline ctillmanns

  • Aktives Mitglied
  • ***
  • Beiträge: 115
Moin
Ich erinnere mich dunkel, dass mal gelöst zu haben und zwar mit einem Knopf auf der Maske. Dann hat man Zugriff auf das zugrundeliegende Backendokument und kann den Richtextwert übergeben.
Mit der OK-Funktion einer Maskenschaltfläche kann man auch die Dialogbox schliessen. Mit LS im Click muss man das Uidoc speichern.
Das funktioniert sogar, hat aber immer noch den Nachteil, dass eigentlich nur Text übergeben wird. Formatierungen des Textes sind damit immer noch nicht möglich.
Also alles, was man gerne im Richtextfeld drin haben möchte, wie Tabellen u.ä, muss man drin haben, bevor man die Dialogbox öffnet. Wenn das nicht stört, kann man mit der Methode die Änderungen im Text übergeben.
Un tschüss
Wenn mich einer sucht, ich bin in der dritten Schublade von oben.

PS: Thomas: Wenn Du meine TextDB haben willst, wo ich das eben ausprobiert habe, dann send mir eben eine PM.

Tilsche
« Letzte Änderung: 04.07.05 - 12:20:44 von ctillmanns »

Offline tomtomtom

  • Frischling
  • *
  • Beiträge: 12
du wirst müssen beim queryclose event das RT field übergeben respektive kopieren an das entrpechende backend dokument...sollte eigentlich gehen.

Offline ctillmanns

  • Aktives Mitglied
  • ***
  • Beiträge: 115
Habe meinen Eintrag editiert.
Es geht auf die Art, die ich vorgeschlagen habe. Mit Einschränkungen halt.
Tilsche

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz