Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Keydins am 25.11.09 - 13:57:13

Titel: Mustertext (RichText) aus Vorlage in aktuelles Dokument kopieren
Beitrag von: Keydins am 25.11.09 - 13:57:13
Hallo zusammen,

ich hab ein kleines Problem mit einem Schalter, der mir aus einem auswählbaren Vorlagendokument den Inhalt eines RichText-Feldes in mein aktuell geöffnetes Dokument (neu, nicht gespeichert) kopieren soll. Leider bin ich kein Script-Profi und sehe den vermutlich offensichtlichen Irrtum nicht. :)


Ich habe es mit folgendem Code versucht:

Code
Sub Click(Source As Button)
	
	Dim session As New NotesSession
	Dim workspace As New NotesUIWorkspace
	Dim db As NotesDatabase
	
	Dim doctext As NotesDocument 'Quelle des Richtextfelds
	Dim uidoc As NotesUIDocument
	Dim docantwort As NotesDocument
	
	Dim view As NotesView
	
	Dim rtitem_Source As NotesRichTextItem
	Dim rtitem As NotesRichTextItem
	
	Dim pickView As String
	Dim picklist As Variant
	Dim messagelist As String
	
	Set db = session.CurrentDatabase
	Set view = db.GetView( "Textblöcke" )
	
	pickView = "Textblöcke"
	
	Set uidoc = workspace.CurrentDocument
	Set docantwort = uidoc.Document
	
	
	picklist = workspace.PickListStrings( _
	PICKLIST_CUSTOM, _
	False, _
	db.Server, _
	db.FilePath, _
	pickView, _
	"Mustertext wählen", _
	"Bitte den gewünschten Mustertext auswählen", _
	4) 
	
	Forall plist In picklist
		messagelist = messagelist & plist & Chr(10)
	End Forall
	
	Set doctext = view.GetDocumentByKey( Trim(messagelist) )
	Set rtitem_Source = doctext.GetFirstItem( "TB_RTBody" )
	
	'Set rtitem = rtitem_Source.CopyItemToDocument( docantwort, "TB_Body")
	
	Call docantwort.CopyItem( rtitem_Source, "TB_Body" )
	
	Call uidoc.Refresh
	Call uidoc.Save
	Call uidoc.Reload
	
End Sub

Leider bleibt mein Anzeigefeld für den hineinkopierten Mustertext leer, obwohl das Script ohne Fehlermeldung durchläuft und ich im Debuger auch sehe, dass den beiden rtItems die im Mustertext hinterlegten Inhalte zugewiesen werden.

Ich mache also was falsch und wäre für einen Schubs in die richtige Richtung dankbar.
Titel: Re: Mustertext (RichText) aus Vorlage in aktuelles Dokument kopieren
Beitrag von: klaussal am 25.11.09 - 13:58:54
Nimm einfach die DB "PasteInformation" (mal nach suchen) und gut ist.

Titel: Re: Mustertext (RichText) aus Vorlage in aktuelles Dokument kopieren
Beitrag von: koehlerbv am 25.11.09 - 20:13:58
Oder Schubs in die richtige Richtung:
- Vorlagendokument öffnen (EditMode!)
- GotoField
- SelectAll
- Copy
- Vorlagendokument schliessen
- Fokus ist jetzt wieder auf dem Zieldokument
- GotoField
- Paste

Wenn man keinen 486-25SX hat, dann sieht man nicht mal ein flackern.

HTH,
Bernhard
Titel: Re: Mustertext (RichText) aus Vorlage in aktuelles Dokument kopieren
Beitrag von: Keydins am 26.11.09 - 08:37:05
Ok, danke für die Tips. Ich setze das dann erstmal klassisch per Formelsprache um.


Nur so aus Interesse: Läßt sich die gewünschte Funktionalität per LS generell nur schwierig umsetzen?

In der Designerhilfe sind einige Beispiele zum Kopieren von RTItems aufgeführt, wobei dort das neue Dokument meist direkt über LS erzeugt wird, wärend es bei mir schon im Client geöffnet ist. Von daher liegt mein Problem wohl bei der Interaktion Frontend <-> Backend.
Titel: Re: Mustertext (RichText) aus Vorlage in aktuelles Dokument kopieren
Beitrag von: Thomas Schulte am 26.11.09 - 09:04:17
Der Richtext ist ein seltsam Ding ...

Der möchte nämlich wenn er im Frontend erscheinen soll und vorher kopiert wurde gerne das das Dokument in dem er Erscheinen soll erst einmal komplett von der Bildfläche verschwindet. Also uidoc.Close und dann wieder öffnen.
Titel: Re: Mustertext (RichText) aus Vorlage in aktuelles Dokument kopieren
Beitrag von: pram am 30.11.09 - 16:34:46
Es gibt noch eine interessante (wenn auch undokumentierte!) Funktion dafür:
uidoc.importitem(tmpDoc,tmpRTField)
siehe: http://www.qtzar.com/blogs/qtzar.nsf/d6plinks/DSLH-7NRK85

Verwendung auf eigene Gefahr  ;D
Gruß
Roland
Titel: Re: Mustertext (RichText) aus Vorlage in aktuelles Dokument kopieren
Beitrag von: T-LO am 02.12.09 - 13:46:02
Ich habe auch das Problem mit dem Mustertext und Bernhards Lösung umgesetzt. Das funktioniert auch sehr gut, außer bei Links im Mustertext. Werden die nach dem Einfügen angeklickt, dann stürzt der Client ab (Null Handle).  :(

Hat da jemand eine Lösung für?