Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Wirsing am 04.01.05 - 17:15:13

Titel: DocLink verweist auf falsche Ansicht
Beitrag von: Wirsing am 04.01.05 - 17:15:13
Hallo zusammen,


ich generiere innerhalb eines RTF-Feldes(im Hauptdokument) ein paar DocLinks zu den jeweiligen Antwortdokumenten (mit LotusScript).

Die Links werden generiert, beim Anklicken wird auch ein Dokument geöffnet, allerdings mit der Vorgabedatenbankmaske der Datenbank und nicht mit der ursprünglichen Maske des Dokumentes.

In einem Rückantwortdokument lasse ich ebenfals ein DocLink erstellen (per Formelsprache -> $Ref) - und dieser funktioniert einwandfrei.

Wenn ich nun die Eigenschaften der beiden Verknüpfungen vergleiche, fällt mir auf, dass die Ansichts-ID und die Verknüpfungsbeschreibung die einzigen Unterschiede sind.

Hat jemand eine Idee, wie ich den LS-Link richtig hingebogen bekomme?

Hier ein wenig Code (Queryopen) zum rumspielen:


Dim docsCollChild As NotesDocumentCollection
Dim doc As NotesDocument
Dim docChild As NotesDocument
Dim rtitem As NotesRichTextItem
      
Set doc = Source.Document
Set docsCollChild = doc.Responses
      
If doc.HasItem( "rtfUebersicht" ) Then   
   Call doc.RemoveItem( "rtfUebersicht" )
End If
      
Set rtitem = doc.CreateRichTextItem( "rtfUebersicht" )
      
For i =1 To docsCollChild.Count

   Set docChild = docsCollChild.GetNthDocument(i)
   
   Call rtitem.AppendDocLink( docChild , Cstr(docChild.text1(0)))
   Call rtitem.AppendText( " Text1: "  + docChild.text1(0) + " | Text2: " + docChild.text2(0))
   Call rtitem.AddNewline(1)

Next


Ich hab' hier schonmal was gelesen von einer Standardansicht, die vor dem Doc geöffnet werden sollte, bin da aber nicht so ganz durchgestiegen...  ???


Grüsse

Holger
Titel: Re: DocLink verweist auf falsche Ansicht
Beitrag von: deathcheater am 04.01.05 - 18:01:41
Hallo Holger,

hier hat bestimmt keiner Zeit zum "rumspielen".

Eines vorweg, ich bin kein Moderator !

Trotzdem solltest du eine Standard-Ansicht (Default View) festlegen, sonst kannst du alle deine Agenten gleich wieder in die Tonne klopfen !

Vuiele Grüße
deathcheater
Titel: Re: DocLink verweist auf falsche Ansicht
Beitrag von: Wirsing am 05.01.05 - 08:50:22
Ich hab' schon ne Stanbdardansicht, allerdings hat die nichts mit dieser Maske zu tun.
Titel: Re: DocLink verweist auf falsche Ansicht
Beitrag von: Axel am 05.01.05 - 10:45:25
Hi,

was steht denn für eine Maske im Form-Feld der Dokumente?

An deinem Code gibt's erstmal nichts auszusetzen.


Axel
Titel: Re: DocLink verweist auf falsche Ansicht
Beitrag von: Wirsing am 05.01.05 - 11:00:08
Oh, das habe ich vergessen oben mit reinzuschreiben:

Die Dokumente werden zwar in der Vorgabedatenbankmaske angezeigt, aber das Feld Form enthält den richtigen Maskenalias.

Ich überlege die gespeicherten DocLinks aus den erwähnten Rückanwortdokumenten (welche ja funktionieren) in die Hauptmaske zu übernehmen.

Also ungefähr so:
[snip]
...
Call rtitem.AppendText( "DocLink: " + docReChild.parentlink + " Text1: "  + docChild.text1(0) + " | Text2: " + docChild.text2(0))
...
[/snip]

Könnte da so auch klappen - ich meine wird der Wert dann wieder als Link angezeigt?


Grüsse

Holger
Titel: Re: DocLink verweist auf falsche Ansicht
Beitrag von: Wirsing am 05.01.05 - 11:49:45
Ok, ich hab's rausgefunden!  :D


Nach dem einfügen der Links kann man mit Hilfe der NotesRichtextNavigator und NotesRichtextDoclink die UNIDs der Links beeinflussen.
Diese habe ich nun mit Hilfe von NotesView auf die richtige ViewUNID "umgebogen" und siehe da, die richtigen Masken werden rangezogen...

Scheint so, als sei die Verwendung von Maskenformeln in der Ansichtsauswahl dafür Ausschlagsgebend.


Hier noch der Code:

Oben in die Deklarationen:

[snip]
...
Dim session as New NotesSession
Dim db as NotesDatabase
Dim rtnav As NotesRichTextNavigator
Dim rtlink As NotesRichTextDocLink
Dim View As NotesView
      
Set db = session.CurrentDatabase
Set view = db.GetView("ansicht")
[/snip]



Dann nach der Schleife:

[snip]
...
Set rtnav = rtitem.CreateNavigator
Call rtnav.FindFirstElement(RTELEM_TYPE_DOCLINK)
Set rtlink = rtnav.GetElement

'Sind ja mehrer DocLinks in diesem Richtextfeld also Loopen
Do
   Set rtlink = rtnav.GetElement
   rtlink.ViewUNID = view.UniversalID      
Loop While rtnav.FindNextElement
...
[/snip]



So, jetzt erst mal Mittagspause!


Grüsse

Holger