Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Heiko am 01.09.10 - 14:24:54

Titel: RichText mehrere Doclinks anhängen
Beitrag von: Heiko am 01.09.10 - 14:24:54
Hallo zusammen,

ich möchte in ein RichText-Feld mehrere Doclinks einfügen.
Hab mir das wie folgt gedacht (Codeschnipsel):

Code
If rtitem Is Nothing Then
   Set rtItem = New NotesRichtextitem(backdoc, "ADUserLnk" )
Else
   Set rtitem = backdoc.GetFirstItem("ADUserLnk")	
End If		
Call rtitem.AppendDocLink( doc, db.title)

Der Docklink wird jedoch jedes mal überschrieben, wenn der Button das zweite mal gedrückt wird. Sprich, mein Else-Zweig zieht gar nicht.

Freue mich über jede Hilfe.

Heiko
Titel: Re: RichText mehrere Doclinks anhängen
Beitrag von: Peter Klett am 01.09.10 - 14:50:25
Hast Du mal versucht, rtitem global zu definieren?
Titel: Re: RichText mehrere Doclinks anhängen
Beitrag von: koehlerbv am 01.09.10 - 15:05:56
Das globale Definieren wird nichts nützen. Ich vermute, dass das ganze im Frontend passiert und nach dem DocLink-Anhängen nicht gespeichert wird. Damit bleibt aus dem Frontend das RTI leer, so dass immer der erste Zweig durchlaufen wird.

Das nur so als Tipp ins Blaue. Heiko kann dazu mehr sagen.

Bernhard
Titel: Re: RichText mehrere Doclinks anhängen
Beitrag von: Peter Klett am 01.09.10 - 15:14:43
naja, uidoc und backdoc müssten dann sicher auch global definiert werden, damit die nicht mit Betätigen der Schaltfläche neu initialisiert werden.

Da Heiko schreibt, dass der Link immer wieder überschrieben wird, scheint es zumindest beim ersten Klick zu funktionieren, dass das Richtextitem im Frontend (also sichtbar) verändert wird.
Titel: Re: RichText mehrere Doclinks anhängen
Beitrag von: koehlerbv am 01.09.10 - 15:16:36
Ich sag ja: Nicht verzagen, Heiko fragen!  ;D

Hilsen til Norge,
Bernhard

Titel: Re: RichText mehrere Doclinks anhängen
Beitrag von: Heiko am 01.09.10 - 16:58:16
@Bernhard
Richtig vermutet, der Button ist natürlich im Frontend  :)

Speichern und wieder öffnen mache ich. Muss ich ja, damit die Geschichte überhaupt funktioniert.

@Peter
Das globale Definieren hat leider nicht geholfen.
Wenn ich jetzt den Code poste und mich somit als "Cosmosianer" oute muss ich natürlich die Gelegenheit nutzen, und dem "Erfinder ein herzliches Hallo" sagen ;) wie der Zufall so spielt...

Code
Sub Click(Source As Button)
	Dim ws As New NotesUIWorkspace
	Dim uidoc As NotesUIDocument   
	Set uidoc = ws.currentdocument
	Dim s As New NotesSession
	Dim db As NotesDatabase
	Dim col As NotesDocumentCollection
	Dim doc As NotesDocument
	Dim backdoc As NotesDocument
	Dim rtitem As NotesRichTextItem
	Set db = s.CurrentDatabase
	Set backdoc = uidoc.document
	Set col = ws.PickListCollection(1,True,"YK000700S700","Cosmos\\Auftrag\\personal.nsf","0. UVB\alle\nach Dokumentart","Personalaufträge","Wählen Sie ein Dokument")
	
	If col.Count = 0 Then
		Msgbox ("Sie haben kein Dokument ausgewählt")
		Exit Sub
	End If
	
	Set doc = col.getfirstdocument
	
	If rtitem Is Nothing Then
		Set rtItem = New NotesRichtextitem(backdoc, "vb_ADUserLnk_3" )
	Else
		Set rtitem = backdoc.GetFirstItem("vb_ADUserLnk_1")	
	End If		
	
	Call rtitem.AppendDocLink( doc, db.title)
	
	REM Das aktuelle Dokument schließen und wieder öffnen...
	Call ReOpen(backdoc)
	
End Sub


Heiko
Titel: Re: RichText mehrere Doclinks anhängen
Beitrag von: Peter Klett am 01.09.10 - 20:01:37
ja, die Welt ist klein ...

M.E. fehlt das Initialisieren des rtitem

Set rtitem = backdoc.GetFirstItem("vb_ADUserLnk_1")   
If rtitem Is Nothing Then
   Set rtItem = New NotesRichtextitem(backdoc, "vb_ADUserLnk_3" ) (-> wieso 3? Müsste 1 sein!)
End If



Titel: Re: RichText mehrere Doclinks anhängen
Beitrag von: Heiko am 02.09.10 - 09:47:01
That's it!

   Set rtItem = New NotesRichtextitem(backdoc, "vb_ADUserLnk_3" ) (-> wieso 3? Müsste 1 sein)
natürlich _1 - kam vom vielen hin und her kopieren.

Vielen Dank und schönen Tag
Heiko