Hilfe ...
ich muss eine Document Collection sortieren
die Dokumente haben 2 Nummernfelder, nach denen sortiert werden soll
1. LZSortOrder
2. LZSortOrderSub
Was kann ich tun?!
Bitte helft mir :cry:
Hilfe ...
ich muss eine Document Collection sortieren
die Dokumente haben 2 Nummernfelder, nach denen sortiert werden soll
1. LZSortOrder
2. LZSortOrderSub
Was kann ich tun?!
Bitte helft mir :cry:
Standardmäßig gibt es da erstmal nix.
Aber vielleicht git es eine andere Lösung deines Problems.
Was soll denn gemacht werden?
Gruss
MeinerEiner
es geht mit einem 2-dimensionalen Array.
' dc... Deine NotesDocumentCollection
' array_dc(0,x) ... enthält Sortierschlüssel
' array_dc(1,x) ... enthält DocumentUniqueID
dim array_dc() as String
redim array_dc(1, dc.Count)
dim doc as NotesDocument
set doc = dc.GetFirstDocument
i = 0
Trenner = " ##### "
while not doc is Nothing
array_dc(0, i) = doc.LZSortOrder(0) & Trenner & oc.ZSortOrderSub(0)
array_dc(1,i) = dc.UniversalID
set doc = dc.GetNextDocument(doc)
i = i + 1
wend
' ... hier muss ein Sortierroutine, die ein 2-dimensionales Array sortieren kann, rein!
Alles anzeigen
mit "set doc = db.GetDocumentByUNID(Array(1,x))" kommst Du dann an die Dokumente heran.
Falls Du noch einen QSort brauchst, der Arrays sortieren kann, ich habe da was fertig.
Gruß
Dirk
Hi,
da gibt es eine isSorted-Property. Dazu steht in der Hilfe
ZitatRead-only. Indicates whether the documents in a collection are sorted. A collection is sorted only when it results from a full-text search of a database.
Wenn es also möglich ist, hole die die Coll über eine Volltextsuche, dann ist sie schon sortiert.
also ...
Diali ... das nehm ich als notlösung ... vielen Dank für die Mühe
lodsnods ... die documentcollection sind unprocessed documents ... daher nicht per volltextsuche zu holen
Ich werd jetzt einfach an alle Dokumente aus der DocumentCollection ein Item anhängen (copy_run="true") und dann in einer neuen view die erste spalte nach copy_run sortieren und dann eine schöne sortierte entry collection "byKey" erstellen.
Ist das ne Idee?! :strike:
Hab gehört, dieses view entry dingens hätte bei der 5er Version nen Bug ... stimmt das?! :-?
is ne Idee, wird aber langsamer sein, weil Du die Dokumente in der DC bearbeiten und speichern musst und dann muss der View-Index neu aufgebaut werden.
Gruß
Dirk
gibt es denn diesen bug in der view entry collection?! :-?
konnte noch keinen Bug feststellen. HAbe dieses Teil unter 5.0.9, 5.0.11 und unter 6.5.x benutzt.
Gruß
Dirk
also bei mir gehts jetzt auch ...
'### unprocessed documents sortieren
'alle relevanten Documente mit dem item copy_run versehen
Set docAktuell = dcoCount.GetFirstDocument
While Not(docAktuell Is Nothing)
Set iteAktuell = docAktuell.ReplaceItemValue("copy_run","true")
Call docAktuell.Save (True,True)
Set docAktuell = dcoCount.GetNextDocument(docAktuell)
Wend
'in einer sortierten ansicht nach copy_run suchen
Set vwCopyRun = dbcount.GetView("vw_copy_run")
Set dcoViewEntryCollection = vwCopyRun.GetAllEntriesByKey("true",True)
Set entViewEntry = dcoViewEntryCollection.GetFirstEntry()
While Not (entViewEntry Is Nothing)
Set docAktuell = entViewEntry.Document
Messagebox(docAktuell.Form(0) & docAktuell.LZSortOrder(0))
Set entViewEntry = dcoViewEntryCollection.GetNextEntry(entViewEntry)
Wend
'item copy_run wieder entfernen
Set docAktuell = dcoCount.GetFirstDocument
While Not(docAktuell Is Nothing)
Call docAktuell.RemoveItem("copy_run")
Call docAktuell.Save (True,True)
Set docAktuell = dcoCount.GetNextDocument(docAktuell)
Wend
'### unprocessed documents sortieren
und das alles nur, um eine document collection zu sortieren :-o
[Blockierte Grafik: http://www.schamster.de/sagdochmal/scheissnotes.gif] :lol:
Hi,
wenn Du Deine Schaffenskraft mehr in sinnvolle Überlegungen anstatt in dümmliche Bilder gesteckt hättest, würdest Du vielleicht bemerkt haben, das Dein Programm genauso idiotisch ist wie Deine Grafik.
Setzte es nur so ein, wie es ist und die gerechte Strafe wird Dich früher oder später massiv ereilen.
Hallo,
erstmal, ja es gibt einen Bug bei NotesViewEntry. Hab die Unterlagen in der anderen Firma liegen, aber es war sowas, dass es nicht funktioniert, wenn man in irgendeiner Spalte "Mehrfachwerte getrennt anzeigen" gewählt hat.
Und was die Sortierung betrifft .... ich würde die Collection nehmen, die aus dem UnprocessedDocuments gebildet wurde, mit PutAllInFolder in einen verborgenen Ordner schieben. Dadurch sind sie sortiert, und ich kann sie gaaaaanz gemütlich mit GetFirstDocument und dann GetNextDocument abarbeiten. Anschließend aus Folder removen, schon fertig.
Hope this helps, :sunclaus:
LG aus dem matschig verschneiten Frankfurt,
Tina
mit der Ansicht und dem Ordner gibt es ein Problem, was ist wenn 2 Personen gleichzeitig die Funktion ausführen?
Gruß
Dirk
Das kannst Du verhindern indem Du den Ordner erst anlegst wenn Du ihn benötigst und ihn dann auch gleich wieder löscht.
Zudem könntest Du vorher Abfragen, ob es schon einen Ordner mit diesem Namen gibt.
Gruss
MeinerEiner
P.S. Der Nachteil hierbei is, das der Ordner welcher als Sortierer benutzt werden soll, als "Vorgabe-Ordner für neue Ordner" gesetzt sein muss.
... und wie sortiert Ihr dann die Collection, wenn der User nur Leserechte auf die DB hat?
Gruß
Dirk