Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Don Pasquale am 02.10.02 - 17:08:07

Titel: NotesCollection nach angewähltem Dokument bilden
Beitrag von: Don Pasquale am 02.10.02 - 17:08:07
Hallo Leute,

auf ein Neues :

Ich möchte eine Aktion schreiben, die in der aktuellen
Ansicht alle Dokumente raussucht, die diegleiche Dokumentart besitzen, wie das angewählte Dokument.
Die Ansicht ist nach Dokumentart in der ersten Spalte sortiert.


Ich bin mir recht sicher, dass ich das Suchkriterium "e4fldDokArt" im Back-end
ansprechen sollte und nicht im Front-end.

Aber wie geht das ?


Code


Dim ws As New NotesUIWorkspace  
Dim uidoc As NotesUIDocument  
Set uidoc = ws.CurrentDocument  

Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim dc As NotesDocumentCollection
Set db = session.CurrentDatabase
Set view = db.GetView( "e4vwFallgruppen" )

Dim item As NotesItem
Dim frontenddoc As Notesdocument
Dim key As String
Set frontenddoc = uidoc.document
     
key$ = frontenddoc.e4fldDokArt(0)
     
Set dc = view.GetAllDocumentsByKey(key$, True)
Set doc = dc.getfirstdocument
     
While Not (doc Is Nothing)
           
 Set item = doc.GetFirstItem("e4fldDokArt")

 Set doc = dc.GetNextDocument(doc)
Wend      
Titel: Re: NotesCollection Front-end zu Back-end
Beitrag von: Rob Green am 02.10.02 - 17:23:27
ob Du den Key über
key$ = frontenddoc.e4fldDokArt(0) oder
fieldgettext aus der UI Klasse Dir holst, spielt in Deinem Ansatz so wie das sehe keine Rolle.

"Regel": solange man nicht als User am PC etwas anzustoßen hat, benötigt man eigentlich keine Frontendklassen.

Interessant finde ich die Schleife  ;D

Set item = doc.GetFirstItem("e4fldDokArt")  

Nachdem Du Dir also außerhalb der Schleife den Searchkey gebildet hast, läßt Du Dir noch vor Eintritt der Schleife die entspr. Docs holen, nur um in der Schleife das Item mit ebendiesem Wert zu besetzen. Etwas ... selbstbeschäftigend, oder?   ;)

Irgendwo muß da noch ein Haken sein, worauf Du hinauswillst.
Titel: Re: NotesCollection Front-end zu Back-end
Beitrag von: Don Pasquale am 03.10.02 - 09:36:47
Hi Rob,

Haken ?
"Irgendwie hast Du ja recht"

Was ich will :
Ich habe eine Ansicht in der alle Dokumente nach Dokumentart kategorisiert sind.
Auf Wunsch sollen alle Dokumente _einer_ Dokumentart
ausgewählt werden. Dies soll über Anwahl eines beliebigen Dokuments passieren.
Später will ich aus allen Dokumenten die Besitzer auslesen ( jeden Besitzer aber nur einmal) und das Ganze einer Serienbriefdatei in WinWord übergeben.

ciao

Don Pasquale
Titel: Re: NotesCollection Front-end zu Back-end
Beitrag von: Don Pasquale am 03.10.02 - 17:40:53
So, nun habe ich das was ich wollte.

Das von User angewählte Dokument bestimmt die
Dokumentart für die Collection.
Jetzt muss noch richtig getestet werden.


Ciao Don Pasquale

Code
      Dim key  As String
     Set session = New notessession
     Set db=session.currentdatabase
     Set Collection=db.UnprocessedDocuments  
     Set doc=Collection.GetFirstDocument  
     key = doc.e4fldDokArt(0)
     
     Messagebox key
     Dim s As New NotesSession
     Dim view As NotesView
     
     Dim tmpdoc As NotesDocument
     Set view = s.Currentdatabase.GetView( "e4vwFallgruppen" )       
     Dim dc As NotesDocumentCollection
     
     Set dc = view.GetAllDocumentsByKey(key, True)
     
     Set doc = dc.getfirstdocument
     
     While Not (doc Is Nothing)
           Messagebox "Hurra"
           Set doc = dc.GetNextDocument(doc)
     Wend      
     End