Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: CLI_Andreas_Schmidt am 30.03.04 - 08:37:11

Titel: Auswahl Picklist und Doclink
Beitrag von: CLI_Andreas_Schmidt am 30.03.04 - 08:37:11
Hi,

ich möchte in einer Picklist ein Dokument auswählen und dann für dieses Dokument einen Doclink in einer Maske speichern. Jed dat ?

Gruss

Andreas
Titel: Re:Auswahl Picklist und Doclink
Beitrag von: Glombi am 30.03.04 - 08:43:50
Ja, dat geht!

Du brauchst folgende Methode:
Call notesRichTextItem.AppendDocLink( linkTo, comment$ [, HotSpotText$ ])

Das Dokument für den Link holst Du Dir mit
Set notesDocumentCollection = notesUIWorkspace.PickListCollection(  PICKLIST_CUSTOM[,multipleSelection ] [, server$ ] [, databaseFileName$ ] [, viewName$ ] [, title$ ] [, prompt$ ] )

Andreas
Titel: Re:Auswahl Picklist und Doclink
Beitrag von: CLI_Andreas_Schmidt am 30.03.04 - 10:47:21
Ja danke auch. Klasse ich probiere es so.

Super.

Andreas.
Titel: Re:Auswahl Picklist und Doclink
Beitrag von: CLI_Andreas_Schmidt am 30.03.04 - 15:27:42
Ich habe es mal runterprogrammiert. Leider tut es nicht. Die Picklist läuft gut und auch die Collection funktioniert. Nur der Doclink taucht nicht auf.

gucks du hier for Fehlersuche.

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,"SPSRV1","Parchiv","Presentations","Info","select a document")
   Set doc = col.getfirstdocument
   If col.Count = 0 Then
      Msgbox ("Sie haben kein Dokument ausgewählt")
      Exit Sub
   End If
   
   Set rtitem = New NotesRichTextItem( backdoc, "Presentationsdoclink" )
   Call rtitem.AppendDocLink( doc, db.title)
   Call backdoc.Save(True, True)
   Call uidoc.Reload
   
   
End Sub


Sieht jemand den Fehler ?

Gruss

Andreas
Titel: Re:Auswahl Picklist und Doclink
Beitrag von: animate am 30.03.04 - 15:29:42
auch nicht nach nochmal schließen und öffnen?
Titel: Re:Auswahl Picklist und Doclink
Beitrag von: koehlerbv am 30.03.04 - 15:30:54
Der Reload bringt Dir bei dieser Kombination nichts - das übliche Problem bei RTFs.
Du musst Dein NotesUIDocument wirklich schliessen und erneut laden.

Bernhard
Titel: Re:Auswahl Picklist und Doclink
Beitrag von: koehlerbv am 30.03.04 - 15:33:18
Code
Set doc = col.getfirstdocument
   If col.Count = 0 Then
      Msgbox ("Sie haben kein Dokument ausgewählt")
      Exit Sub
   End If
Das ist übrigens Dummfug: Erst auf col.Count = 0 prüfen und erst dann versuchen, das erste Dokument zu instantiieren.
Das hat natürlich nichts mit Deinem eigentlichen Problem zu tun.

Bernhard
Titel: Re:Auswahl Picklist und Doclink
Beitrag von: CLI_Andreas_Schmidt am 30.03.04 - 16:02:18
Den reload habe ich rausgenommen. Wenn er eh nicht funktioniert. Aber der Doclink taucht nicht auf. Ich schliesse das Dokument und öffne es wieder. "LEER"

Einen Fehler seht Ihr also auch nicht ? hmmmmmm. Dann ist das mal wieder notzig ? Benutze 6.5  ich hoffe doch nicht, das hier ein Bug vorliegt.

Aja:

was ist denn daran falsch:

Set doc = col.getfirstdocument
  If col.Count = 0 Then
      Msgbox ("Sie haben kein Dokument ausgewählt")
      Exit Sub
  End If

Die picklist bringt doch die collection zurück. Sie besteht aus den Dokumenten, die markiert sind. Dann frage ich nach 0 (also nix ausgewählt) oder verstehe ich das jetzt hier falsch ?

Interessant.
Titel: Re:Auswahl Picklist und Doclink
Beitrag von: Glombi am 30.03.04 - 16:06:58
Das UI-Dokument darf nicht geöffnet sein, wenn im Backend was im RTF Feld geändert wird. Wenn es nämlich offen ist, ist das RTF Feld leer (da nur im Backend geändert) und beim Speichern wird das Backend wieder mit dem aktuellen UI überschrieben.

Also: Das UI Dok. schließen, im Backend ändern und dann wieder das UI Dok. öffnen.
Set notesUIDocument = notesUIWorkspace.EditDocument( editMode , notesDocument)


Das andere
Statt
Set doc = col.getfirstdocument
  If col.Count = 0 Then
      Msgbox ("Sie haben kein Dokument ausgewählt")
      Exit Sub
  End If

besser:
 If col.Count = 0 Then
      Msgbox ("Sie haben kein Dokument ausgewählt")
      Exit Sub
  End If
Set doc = col.getfirstdocument

Andreas
Titel: Re:Auswahl Picklist und Doclink
Beitrag von: CLI_Andreas_Schmidt am 30.03.04 - 16:10:27
Ok verstanden,

ich werde Deine Lösung gleich ausprobieren. Melde mich gleich wieder.


Danke....
Titel: Re:Auswahl Picklist und Doclink
Beitrag von: koehlerbv am 30.03.04 - 16:13:57
Code
besser:
If col.Count = 0 Then
      Msgbox ("Sie haben kein Dokument ausgewählt")
      Exit Sub
  End If
Set doc = col.getfirstdocument

Und hier noch zur Erklärung: Deine Variante war sehr amerikanisch ("Erst schiessen, dann fragen"). Wenn NotesDocumentCollection.Count = 0 - was ist dann Dein erstes Dokument, was Du mit GetFirstDocument holst ?

HTH,
Bernhard
Titel: Re:Auswahl Picklist und Doclink
Beitrag von: CLI_Andreas_Schmidt am 30.03.04 - 16:24:39
jupp. Läuft gut.

Hier fertiger Code zum rauskopieren.

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,"SPSRV1","Parchiv","Presentations","Info","select a document")
   
   If col.Count = 0 Then
      Msgbox ("Sie haben kein Dokument ausgewählt")
      Exit Sub
   End If
   
   Set doc = col.getfirstdocument
   
   
   Set rtitem = New NotesRichTextItem( backdoc, "Presentationsdoclink" )
   Call rtitem.AppendDocLink( doc, db.title)
   Call uidoc.Save   
   Call uidoc.Close   
   Call backdoc.Save(True, True)
   Set uidoc = ws.EditDocument( editMode , backdoc)
   
End Sub

Danke...
Titel: Re:Auswahl Picklist und Doclink
Beitrag von: Glombi am 30.03.04 - 16:30:23
Ich hätte es so gemacht:

Set doc = col.getfirstdocument

'Schließe UI Dokument, bevor RTF Feld geändert wird
   Call uidoc.Save  
   Call uidoc.Close  
 
   
   Set rtitem = New NotesRichTextItem( backdoc, "Presentationsdoclink" )
   Call rtitem.AppendDocLink( doc, db.title)
   Call backdoc.Save(True, True)
   Set uidoc = ws.EditDocument( True, backdoc)  ' ÄNDERUNG, damit im Editmode geöffnet wird


Andreas