Autor Thema: Sortierung in Collection  (Gelesen 1774 mal)

Offline Wiesel

  • Aktives Mitglied
  • ***
  • Beiträge: 188
  • Geschlecht: Weiblich
Sortierung in Collection
« am: 12.11.09 - 12:41:49 »
Hallo!
Ich habe eine Schaltfläche mit der ich basierend auf dem stehenden Dokument aus einer Ansicht heraus ein neues Dokument erstelle. In diesem neuen Dokument bereite ich Daten aus mehreren Dokumenten auf. Die Dokumente hole ich mir dabei in eine Collection. Die Collection wird aus einer versteckten Ansicht erstellt.
Klappt auch.
Nur eine Sache wurmt mich:
Die erste Ansicht hat eine andere Sortierung als die zweite Ansicht, die ich mir für die Collection heranhole. Die Collection soll die Daten Dokumente, die ich mir zusammenstelle, auf Basis der Sortierung der zweiten (versteckten) Ansicht aufbauen. Die Sortierung bezieht sich aber immer auf die Ansicht, aus der ich das Script starte.

Hier mal mein Script:
Sub ProtokollDruck()
   Dim workspace As New NotesUIWorkspace
   Dim db As NotesDatabase
   Dim session As New NotesSession
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Dim Newdoc As NotesDocument
   Dim col As NotesDocumentCollection
   Dim doc2 As NotesDocument
   Dim view As NotesView
   Dim strAntwortdoc As String
   Dim strNr As Variant
   Dim strNr2 As Variant
   Dim strBereich As Variant
   Dim strBereichn As Variant
   
   Set db = session.CurrentDatabase
   Set doc = session.DocumentContext
   
   If doc.form(0) = "Protokoll" Then
      
      'Neues Dokument erstellen
      Set Newdoc = DB.CreateDocument
      Newdoc.form = "(DruckProtokoll)"
      
      strNr = doc.GetItemValue( "numNiederschrift" )
      
      Set view = DB.GetView("(BBeschluss)")
      Set col = view.getalldocumentsbykey(strNr)
      Set doc2 = col.GetFirstDocument
      
      strAntwortdoc = ""
      Do  Until doc2 Is Nothing
         strBereichn =doc2.optPBereich(0)
         If strBereich = strBereichn Then 'Solange optPBereich der selbe ist
            
            strAntwortdoc =    strAntwortdoc & _
            Chr(13) & Chr(13) & _
            Chr(13) & Chr(13) & _
            "   " & doc2.numBeschluss(0) & " " & doc2.txtBetreff(0) &_
            Chr(13) & _
            "   " & Chr(13) & "   " & doc2.txtBeschlussvorlage & Chr(13)  & _
            Chr(13) & Chr(13) & "________________________________________________________________"
         Else
            strAntwortdoc =    strAntwortdoc & _
            Chr(13) & Chr(13) & _
            Chr(13) & Chr(13)  & _
            doc2.optPBereich(0) & _
            Chr(13) & Chr(13) & _
            "   " & doc2.numBeschluss(0) & " " & doc2.txtBetreff(0) & _
            Chr(13) & _
            "   "  & Chr(13) & "   "  & doc2.txtBeschlussvorlage & Chr(13)  & _
            Chr(13) & Chr(13) & "________________________________________________________________"
         End If   
         strBereich = doc2.optPBereich(0)
         Set doc2 = col.getnextdocument(doc2)
      Loop
      
      'Antwortdokumente in Druck unterbringen
      Newdoc.txtBeschlussvorlage = strAntwortdoc
      'Dokument zum Bearbeiten anzeigen
      Call workspace.EditDocument(True,Newdoc)
   End If   
End Sub

Die Sortierung der Ansicht (BBeschluss) ist halt anders aufgebaut als die Ansicht aus der ich die Schaltfläche starte. Die Collecton arbeitet die Dokumente aber nach der Startansicht ab.

Kann ich das beeinflussen?

Danke und Grüße,
Wiesel

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Sortierung in Collection
« Antwort #1 am: 12.11.09 - 12:47:05 »
Hallo,

Schon mal die Klasse NotesViewEntryCollection angesehen.


Andreas

Offline TRO

  • Senior Mitglied
  • ****
  • Beiträge: 296
Re: Sortierung in Collection
« Antwort #2 am: 12.11.09 - 12:48:04 »
Hallo!

Kann ich das beeinflussen?

Danke und Grüße,
Wiesel

Ja, indem Du statt einer NotesDocumentCollection eine NotesViewEntryCollection verwendest.

hth

Thomas

Offline Wiesel

  • Aktives Mitglied
  • ***
  • Beiträge: 188
  • Geschlecht: Weiblich
Re: Sortierung in Collection
« Antwort #3 am: 12.11.09 - 13:54:41 »
Das habe ich noch nie benutzt. Stelle mich gerade auch etwas dumm an.....wie laufe ich denn da die Dokumente durch?
Ich möchte ja bestimmte Daten aus den Dokumenten neu zusammenstellen....

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Sortierung in Collection
« Antwort #4 am: 12.11.09 - 14:07:08 »
Eigentlich genauso, wie Du eine "normale" DocumentCollection durchlaeufts.

Code
Set vecol = view.GetAllEntriesByKey("Test")
For i = 1 To vwCol.Count
  Set veEntry = vecol.GetNthEntry(i)
  Set doc = veEntry.Document
Next

Als Anregung zu verstehen.


Andreas

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz