Autor Thema: Text hinter Doc-Link in RT-Feld schreiben  (Gelesen 7263 mal)

Offline awagner

  • Junior Mitglied
  • **
  • Beiträge: 72
  • Geschlecht: Männlich
Text hinter Doc-Link in RT-Feld schreiben
« am: 08.10.08 - 13:18:11 »
Hallo zusammen,

Folgendes Problem:
Ich habe ein Doc mit einem Richtextfeld (heißt Body).
In diesem Feld sind etliche Doc-Links hinterlegt (die auf eine Mail-DB verweisen).

Jetzt möchte ich hinter diesen Links den Betreff der Mail schreiben, auf den der Doc-Link verweist.

Ich bin momentan soweit, dass ich mir die Infos bereits per Messagebox ausgeben lassen kann,
aber ich schaffe es nicht, dass ich hinter diesen aktuellen Doc-Link einen Text schreibe.

Bitte um Hilfe ;-)

Viele Grüße
Andi
« Letzte Änderung: 08.10.08 - 16:42:05 von awagner »
Andi
--------------------------------------------------------------------
http://www.andis-bilder.de
http://www.djk-rattenberg.de
http://www.bavarian-beach-boys.de
--------------------------------------------------------------------
Ziele sind wie Sterne am Himmel,
man kann sie nie wirklich erreichen,
aber sie geben uns eine gute Orientierung

Offline Kadlec

  • Senior Mitglied
  • ****
  • Beiträge: 489
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Text hinter Doc-Link in RT-Feld schreiben
« Antwort #1 am: 08.10.08 - 14:10:05 »
Hast Du dir schonmal die Hilfe angesehen?
Call notesRichTextItem.AppendDocLink( linkTo, comment$ [, HotSpotText$ ] )

Boris

Offline awagner

  • Junior Mitglied
  • **
  • Beiträge: 72
  • Geschlecht: Männlich
Re: Text hinter Doc-Link in RT-Feld schreiben
« Antwort #2 am: 08.10.08 - 14:15:16 »
Hallo Boris,

ja ich habe mir die Designer-Hilfe bereits intensiv angeschaut  ;)
Aber leider nicht das passendes gefunden.

Es soll auch kein DocLink eingefügt werden, sondern hinter dem DocLink ein Text hinzugefügt werden (in diesem Fall der Betreff der E-Mail), wo auch zur Zeit mein Problem liegt.
Andi
--------------------------------------------------------------------
http://www.andis-bilder.de
http://www.djk-rattenberg.de
http://www.bavarian-beach-boys.de
--------------------------------------------------------------------
Ziele sind wie Sterne am Himmel,
man kann sie nie wirklich erreichen,
aber sie geben uns eine gute Orientierung

klaussal

  • Gast
Re: Text hinter Doc-Link in RT-Feld schreiben
« Antwort #3 am: 08.10.08 - 14:18:40 »
Vielleicht wäre ein bisschen Code nicht schlecht, damit man sehen kannst, was du da machst.

Driri

  • Gast
Re: Text hinter Doc-Link in RT-Feld schreiben
« Antwort #4 am: 08.10.08 - 14:20:09 »
Du bastelst das RTF dann aber selber zusammen per Script, oder wie darf ich das verstehen ?

Häng doch einfach nach dem AppendDocLink noch mit AppendText das Thema dahinter.


Call rtf.AppendDocLink(maildoc, "Blabla")
Call rtf.AppendText(maildoc.GetItemValue("Subject")(0))
Call rtf.AddNewLine(1)
...

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Text hinter Doc-Link in RT-Feld schreiben
« Antwort #5 am: 08.10.08 - 14:20:47 »
Hast du es schon mal mit

Call notesRichTextItem.AppendText( text$ )

probiert?


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline awagner

  • Junior Mitglied
  • **
  • Beiträge: 72
  • Geschlecht: Männlich
Re: Text hinter Doc-Link in RT-Feld schreiben
« Antwort #6 am: 08.10.08 - 14:24:00 »
@Axel: ja hab ich schon probiert, aber er hängt mir das immer am Ende des Feldes dran.

@Diri: nein, die DocLinks hat der User per Drag&Drop reingehängt. Ich möchte jetzt hinter den Link einen Text schreiben, der den DocLink näher beschreibt.

@klauss: Ist eigentlich 1zu1 der code aus der Designer-Hilfe, nur ich möchte halt jetzt das bisschen anpassen
Code
	Dim session As NotesSession
	Dim db As NotesDatabase
	Dim dc As NotesDocumentCollection
	Dim doc As NotesDocument
	Dim rti As NotesRichTextItem
	Dim rtnav As NotesRichTextNavigator
	Dim rtlink As NotesRichTextDocLink
	
	Dim doc_neu As NotesDocument 
	Dim db_neu As NotesDatabase 
	Dim rtRange As NotesRichTextRange
	
	Set session = New NotesSession
	Set db = session.CurrentDatabase
	Set dc = db.UnprocessedDocuments
	Set doc = dc.GetFirstDocument
	Set rti = doc.GetFirstItem("Body")
	Set rtnav = rti.CreateNavigator
	
	'Mail-DB von User
	Set db_neu = New NotesDatabase("Server", "mail.nsf")
	
	If Not rtnav.FindFirstElement(RTELEM_TYPE_DOCLINK) Then
		Messagebox "No doclinks in Body item",, "No doclinks"
		Exit Sub
	End If
	Do
		Set rtlink = rtnav.GetElement
		
		msg$ = "Replica ID = " & rtlink.DbReplicaID
		If  rtlink.ViewUNID <> String$(32, "0") Then
			msg$ = msg$ & Chr(13) & "View UNID = " & rtlink.ViewUNID
		End If
		If  rtlink.DocUNID <> String$(32, "0") Then
			msg$ = msg$ & Chr(13) & "Doc UNID = " & rtlink.DocUNID
		End If
		Messagebox msg$,, rtlink.DisplayComment
		Set doc_neu = db_neu.GetDocumentByUNID(rtlink.DocUnID)
		Messagebox doc_neu.subject( 0 )
		
		'Betreff bei Kommentar einfügen und speichern
		rtlink.DisplayComment = doc_neu.subject( 0 ) 
		Call doc.Save( True, False ) 
	Loop While rtnav.FindNextElement
Andi
--------------------------------------------------------------------
http://www.andis-bilder.de
http://www.djk-rattenberg.de
http://www.bavarian-beach-boys.de
--------------------------------------------------------------------
Ziele sind wie Sterne am Himmel,
man kann sie nie wirklich erreichen,
aber sie geben uns eine gute Orientierung

Driri

  • Gast
Re: Text hinter Doc-Link in RT-Feld schreiben
« Antwort #7 am: 08.10.08 - 14:29:12 »
AppendText fügt immer am Ende des RTF ein (siehe Designer-Hilfe). In dem Fall müßtest Du also über den RichTextNavigator und SetPosition die Position zum Einfügen erst festlegen und dann mit AppendText den Text einfügen.

Offline awagner

  • Junior Mitglied
  • **
  • Beiträge: 72
  • Geschlecht: Männlich
Re: Text hinter Doc-Link in RT-Feld schreiben
« Antwort #8 am: 08.10.08 - 14:38:18 »
Hallo Diri,

das war auch meine Überlegung, nur irgendwie hab ich das mit SetPosition nicht hinbekommen.

Vielleicht kannst du mir hierzu weiterhelfen?

Danke
Andi
--------------------------------------------------------------------
http://www.andis-bilder.de
http://www.djk-rattenberg.de
http://www.bavarian-beach-boys.de
--------------------------------------------------------------------
Ziele sind wie Sterne am Himmel,
man kann sie nie wirklich erreichen,
aber sie geben uns eine gute Orientierung

Driri

  • Gast
Re: Text hinter Doc-Link in RT-Feld schreiben
« Antwort #9 am: 08.10.08 - 15:55:49 »
Den NotesRichTextNavogator hast Du ja schon. Du mußt jetzt erstmal prüfen, ob dieser überhaupt DocLinks enthält und dann z.B. in einer Do-Schleife die Texte einfügen. Das könnte etwa so aussehen :

Zitat
If rtnav.FindFirstElement(5) Then
  Do   
    Call body.BeginInsert(rtnav)
    Call body.AppendText("Text")
    Call body.EndInsert
  Loop While rtnav.FindNextElement(5)

...


Offline awagner

  • Junior Mitglied
  • **
  • Beiträge: 72
  • Geschlecht: Männlich
Re: Text hinter Doc-Link in RT-Feld schreiben
« Antwort #10 am: 08.10.08 - 16:09:33 »
Jetzt kann ich auf jeden Fall schon was schreiben  :) :) :)

nru leider kommt jetzt in der Zeile
"Loop While rtnav.FindNextElement" die Fehlermeldung
"Position is not valid"

 ??? ??? ???
Andi
--------------------------------------------------------------------
http://www.andis-bilder.de
http://www.djk-rattenberg.de
http://www.bavarian-beach-boys.de
--------------------------------------------------------------------
Ziele sind wie Sterne am Himmel,
man kann sie nie wirklich erreichen,
aber sie geben uns eine gute Orientierung

Driri

  • Gast
Re: Text hinter Doc-Link in RT-Feld schreiben
« Antwort #11 am: 08.10.08 - 16:30:34 »
Kannst Du bitte noch einmal den Code posten, wie er jetzt ist ?

Offline awagner

  • Junior Mitglied
  • **
  • Beiträge: 72
  • Geschlecht: Männlich
Re: Text hinter Doc-Link in RT-Feld schreiben
« Antwort #12 am: 08.10.08 - 16:32:49 »
klar...

Code
Sub Initialize
	Dim session As NotesSession
	Dim db As NotesDatabase
	Dim dc As NotesDocumentCollection
	Dim doc As NotesDocument
	Dim rti As NotesRichTextItem
	Dim rtnav As NotesRichTextNavigator
	Dim rtlink As NotesRichTextDocLink
	
	Dim doc_neu As NotesDocument 
	Dim db_neu As NotesDatabase 
	Dim rtRange As NotesRichTextRange
	
	Set session = New NotesSession
	Set db = session.CurrentDatabase
	Set dc = db.UnprocessedDocuments
	Set doc = dc.GetFirstDocument
	Set rti = doc.GetFirstItem("Body")
	Set rtnav = rti.CreateNavigator
	
	'Mail-DB von User
	Set db_neu = New NotesDatabase("Server", "mail.nsf")
	
	If Not rtnav.FindFirstElement(RTELEM_TYPE_DOCLINK) Then
		Messagebox "No doclinks in Body item",, "No doclinks"
		Exit Sub
	End If
	Do
		Set rtlink = rtnav.GetElement
		msg$ = "Replica ID = " & rtlink.DbReplicaID
		If  rtlink.ViewUNID <> String$(32, "0") Then
			msg$ = msg$ & Chr(13) & "View UNID = " & rtlink.ViewUNID
		End If
		If  rtlink.DocUNID <> String$(32, "0") Then
			msg$ = msg$ & Chr(13) & "Doc UNID = " & rtlink.DocUNID
		End If
		'Messagebox msg$,, rtlink.DisplayComment
		Set doc_neu = db_neu.GetDocumentByUNID(rtlink.DocUnID)
		'Messagebox doc_neu.subject( 0 )
		
		Call rti.BeginInsert( rtnav )
		Call rti.AppendText( doc_neu.subject( 0 ) & " => ")
		Call rti.EndInsert
		
		'Betreff bei Kommentar einfügen und speichern
		Call doc.Save( True, False ) 
	Loop While rtnav.FindNextElement
End Sub
Andi
--------------------------------------------------------------------
http://www.andis-bilder.de
http://www.djk-rattenberg.de
http://www.bavarian-beach-boys.de
--------------------------------------------------------------------
Ziele sind wie Sterne am Himmel,
man kann sie nie wirklich erreichen,
aber sie geben uns eine gute Orientierung

Driri

  • Gast
Re: Text hinter Doc-Link in RT-Feld schreiben
« Antwort #13 am: 08.10.08 - 16:34:44 »
Da fehlt auch ein Parameter bei FindNextElement im Loop.

Das Save würde ich auch hinter die Schleife stellen, sonst speicherst Du ja in jedem Durchgang das Dokument einmal.

Offline awagner

  • Junior Mitglied
  • **
  • Beiträge: 72
  • Geschlecht: Männlich
Re: Text hinter Doc-Link in RT-Feld schreiben
« Antwort #14 am: 08.10.08 - 16:37:48 »
und welche wären das?
habs jetzt mit Loop While rtnav.FindNextElement(5, 1)
und es kommt die gleiche Fehlermeldung
Andi
--------------------------------------------------------------------
http://www.andis-bilder.de
http://www.djk-rattenberg.de
http://www.bavarian-beach-boys.de
--------------------------------------------------------------------
Ziele sind wie Sterne am Himmel,
man kann sie nie wirklich erreichen,
aber sie geben uns eine gute Orientierung

Offline awagner

  • Junior Mitglied
  • **
  • Beiträge: 72
  • Geschlecht: Männlich
Re: Text hinter Doc-Link in RT-Feld schreiben
« Antwort #15 am: 08.10.08 - 16:41:55 »
DANKE!!!!

Es funktioniert.

Das Problem war das SAVE in der Schleife.

 :)
Andi
--------------------------------------------------------------------
http://www.andis-bilder.de
http://www.djk-rattenberg.de
http://www.bavarian-beach-boys.de
--------------------------------------------------------------------
Ziele sind wie Sterne am Himmel,
man kann sie nie wirklich erreichen,
aber sie geben uns eine gute Orientierung

Driri

  • Gast
Re: Text hinter Doc-Link in RT-Feld schreiben
« Antwort #16 am: 08.10.08 - 16:43:59 »
Ah, okay. Vermutlich wird durch das Save dann der Navigator zerschossen.

Offline awagner

  • Junior Mitglied
  • **
  • Beiträge: 72
  • Geschlecht: Männlich
Re: Text hinter Doc-Link in RT-Feld schreiben
« Antwort #17 am: 08.10.08 - 16:45:08 »
jup, kann durchaus möglich sein.

Aber nochmals besten Dank Ingo ;)
Andi
--------------------------------------------------------------------
http://www.andis-bilder.de
http://www.djk-rattenberg.de
http://www.bavarian-beach-boys.de
--------------------------------------------------------------------
Ziele sind wie Sterne am Himmel,
man kann sie nie wirklich erreichen,
aber sie geben uns eine gute Orientierung

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz