Autor Thema: DocumentCollection sortieren nach Datum  (Gelesen 18363 mal)

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
DocumentCollection sortieren nach Datum
« am: 22.10.03 - 17:33:17 »
Ich hab hierzu auch schon den Beitrag gefunden nur geht der leider nicht wenn man nach Datum sortieren möchte!!
Hat da jemand eine Lösung?
http://www.atnotes.de/index.php?board=7;action=display;threadid=7644

http://eknori.dyndns.org/knowledge/devidea.nsf/Alpha/76D771F265E915268025687700475CEA?OpenDocument
Das vom Eknori hab ich gar nicht zum laufen gebracht!!

Ich hab eine DocCollection und die möchte ich nach dem Feld Termin(=Datum) sortieren!

------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:DocumentCollection sortieren nach Datum
« Antwort #1 am: 22.10.03 - 17:42:02 »
Wenn Du mit dem stuff nicht klar kommst von Axel oder Ulrich (warum auch immer), dann bist Du vielleicht schneller am Ziel, wenn Du Dir die Collection über eine nach Datum sortierte Ansicht bildet (NotesView.AllDocuments).

Oder Du schreibst mal, warum die beiden von Dir genannten Lösungen bei Dir nicht funktionieren bzw. wo Du Schwierigkeiten bei der Anpassung hast.

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:DocumentCollection sortieren nach Datum
« Antwort #2 am: 22.10.03 - 18:08:23 »
Bernhard, bist Du sicher, dass die DocCollection aus dem View sortiert kommt? Ich glaube nicht. Da müsste man dann schon über NotesViewEntryCollection gehen und von dort auf die Dokumente zugreifen.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:DocumentCollection sortieren nach Datum
« Antwort #3 am: 22.10.03 - 18:59:04 »
Oh, mein letztes Posting war peinlich. Ein übler Schnellschuss. NotesView.AllDocuments existiert ja nur in meinem Wunschdenken, aber nicht in der Klasse ...

Jo, denn also durch die sortierte View "schlaufen" (wie Semeaphoros jetzt sagen würde) oder über die NotesViewEntryCollection gehen.

Über sich selbst verärgert,
Bernhard

Glombi

  • Gast
Re:DocumentCollection sortieren nach Datum
« Antwort #4 am: 22.10.03 - 19:32:09 »
Ich weißnicht wie es Euch geht, aber ich habe mit der NotesViewEntryCollection nur böse Erfahrungen gemacht und das blöde Teil aus meinen Script-Fundus verbannt.

Wenn bspw. die View kategorisiert ist, funzt das nicht.

Andreas

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:DocumentCollection sortieren nach Datum
« Antwort #5 am: 22.10.03 - 19:46:09 »
Bernhard:
Na, immerhin hast Du mich erwischt, hab das auch nicht gemerkt, ich hab ja nur drauf getriggert, dass AllDocuments normalerweise nicht sortiert ist, aber das gibts eh nur in der DB, und da ist klar, dass sie unsortiert daherkommt.

Andreas:
Also die NotesViewEntryCollection brauche ich auch selten, ganz einfach, weil ich programmatisch eh in der Regel auf entsprechende, verborgend Views zugreife, und da lässt sich gut durch den View durchschlaufen (wie ich das laut Bernhard sagen würde :-), weil da Kategorien fast nie Sinn machen. Hab aber sonst eigentlich nix negatives gehört bisher. Das mit den Kategorien ist nicht wirklich soo kritisch, weil das Ding doch eigentlich Properties besitzt, die einem das ermöglichen sollten:

IsCategory
IsConflict
IsDocument
IsTotal
IsValid

Allerdings gebe ich Dir recht, dass das Arbeiten mit einem derart "schillernden" Objekt Unübersichtlichkeit impliziert
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Glombi

  • Gast
Re:DocumentCollection sortieren nach Datum
« Antwort #6 am: 22.10.03 - 19:55:53 »
Hab hier was aus der KBase:

The documents contained within a NotesDocumentCollection object are sorted by the created date.  By design, the sort order of the view or folder the documents reside within is ignored.

Domino Designer 5.0 includes two new classes that enable you to access documents in the order they appear within a view:  The NotesViewEntryCollection class and the NotesViewEntry class.  The NotesView class also includes  additional methods and properties that allow you to create object handles to these new classes.

In the following example,  the new AllEntries property of the NotesView class is used to get a handle to all the documents in the view "Test View".   You can then loop through these documents using the NotesViewEntryCollection class' GetNthEntry method.

Sample Script:

   Dim session As New notessession
   Dim db As notesdatabase
   Dim view As notesview   
   Dim viewcol As notesviewentrycollection
   Dim viewentry As notesviewentry
   Dim doc As notesdocument
   
   Set db=session.currentdatabase
   Set view=db.getview("Test View")
   Set viewcol=view.allentries
   
   For i = 1 To viewcol.count    
      Set viewentry=viewcol.getnthentry(i)
      Set doc=viewentry.document
      Messagebox doc.created
   Next


Wie gesagt, wenn man eine kat. View hat, gibt es ein Fehler "Dokument nicht länger in der Collection" oder sowas in der Art. Also: NIEMALS kategorisieren.

Wegen der Performacen würde ich das getnthentry(i) nicht machen, sondern wie es sich gehört mit
...firstentry und ...nextentry.


Andreas
« Letzte Änderung: 22.10.03 - 19:56:51 von Glombi »

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:DocumentCollection sortieren nach Datum
« Antwort #7 am: 22.10.03 - 20:00:45 »
Sieh mal einer an, danke Andreas.

Das war doch etwa das, was ich von Anfang an gesagt habe. Danke für den Beleg hier. Das macht ja eigentlich alles klar.

Gruss, Jens
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:DocumentCollection sortieren nach Datum
« Antwort #8 am: 23.10.03 - 07:42:13 »
Das Problem ist:
Ich fülle mein dc mit einem search befehl!

   Set dc = db.Search("@Adjust(@Today;0;0;3;0;0;0) => @Date(Termin) & Entscheid != ""erledigt VA""", Nothing, 0)

Was mach ich jetzt?

robert
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:DocumentCollection sortieren nach Datum
« Antwort #9 am: 23.10.03 - 08:10:16 »
Genau das, was Bernhard gesagt hat unter Berücksichtigung meiner und Andreas' Ergänzungen:

Einen versteckten View (Namen in Klammer gesetzt) anstelle des Search
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Glombi

  • Gast
Re:DocumentCollection sortieren nach Datum
« Antwort #10 am: 23.10.03 - 08:14:10 »
In diesem Fall geht folgendes:
Du erstellst Dir im Designer Client einen Ordner in der Datenbank. Die erste Spalte sortierst Du nach dem Feld Termin.

In Deinem Script löscht kopierst Du alle Dokumente der dc in diesen Ordner. Anschließend iterierst Du über alle Dokumente im Ordner mit
set view = db.GetView("DeinOrdner")
set odoc = view.GetFirstDocument
While not(odoc is Nothing)

'... ... ...

set odoc = view.GetNextDocument(odoc)
Wend

Anschließend alle Dokumente aus dem Ordner entfernen (zur Sicherheit auch vor dem Kopieren der DOkumente in den Ordner)



Andere Möglichkeit (aber nicht unbedingt empfehlenswert wegen @Today).
Erstelle eine Ansicht mit der Zugriffsformel
SELECT @Adjust(@Today;0;0;3;0;0;0) => @Date(Termin) & Entscheid != "erledigt VA"

Sortiere die View nach Termin.
Iteriere über alle Dokumente in der View.

Andreas

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:DocumentCollection sortieren nach Datum
« Antwort #11 am: 23.10.03 - 08:15:16 »
 :D :D Jetzt hast du den Motor angekurbelt!!!!

Genau das geht so wirklich:
Ansichtsauswahl: SELECT Form="report" & Entscheid!="erledigt VA" &@Adjust(@Today;0;0;3;0;0;0) >= @Date(Termin)

nach Datum sortieren und viewentrycoll. und dann müsste es das gewesen sein!!!!

ich sag danke fürs erste Probier das gleich aus und werde den eintrag nach erfolgreichem testen auf finish setzen. ;D
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:DocumentCollection sortieren nach Datum
« Antwort #12 am: 23.10.03 - 08:59:13 »
Die Ueberlegungen von Andreas wegen @Today sind es Wert, darüber nachzudenken.

A-bär (... würde Bär-nhard jetzt sagen ...)
Nimme man einen Folder und zwei machen das gleichzeitig, bekommt man Spagetthi-Daten. Also müsste man einen SPOFU-Folder (Shared - Private on  first use) machen. Diese Dinger wiederum funktionieren von Script aus nicht so ohne weiteres (hatten wir doch auch schon mal in einem Thread - oder?)

Darüber hinaus gibt es verschiedene Strategien, um das @Today-Problem im View zu umgehen, beispielsweise den Refresh nur alle paar Stunden durchzuführen.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:DocumentCollection sortieren nach Datum
« Antwort #13 am: 23.10.03 - 10:56:14 »
Es hat jetzt alles geklappt!
Das einzige was nicht so schön ist was Semeaphoros angesprochen hat ist das die Ansichtsauswahl mit einem Datum ist und die ansicht jetzt ständig den Aktualisierungspfeil hat.
Aber sieht ja eh niemand!

danke robert
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:DocumentCollection sortieren nach Datum
« Antwort #14 am: 23.10.03 - 10:58:47 »
Hast Du auch die Aktualisierung entsprechend kastriert? Ok, der Recyclingpfeil kommt trotzdem ....
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:DocumentCollection sortieren nach Datum
« Antwort #15 am: 23.10.03 - 11:12:06 »
Hi,

logsich, dass der Aktualisierungspfeil kommt. Es wird ja auch @Today (liefert nicht nur Datum sondern auch Uhrzeit) in der Ansichtsformel verwendet. Dadurch kann die Ansicht nie aktuell werden. Das bringt nur eine große Serverlast, da erständig versucht die Ansicht zu aktualisieren.

Man sollte @Today und @Now tunlichst in Ansichtenformeln vermeden.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Glombi

  • Gast
Re:DocumentCollection sortieren nach Datum
« Antwort #16 am: 23.10.03 - 11:12:07 »
Wenn Du die View nimmst, brauchst Du natürlich keine NotesViewCollection mehr.
Denn dann kannst Du einfach mit
set doc = view.GetFirstDocument
while not (doc is nothing)

set doc = view.GetNextDocument(doc)
wend

darüber iterieren.

Wegen des Refreshsymbols: Da hatte eknori mal was gepostet - es ging um
@TextToTime("Today")

Ich hatte das dann noch sprachabhängig gemacht
@TextToTime("Heute")

suche mal hier in den alten Einträgen...

Andreas

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:DocumentCollection sortieren nach Datum
« Antwort #17 am: 24.10.03 - 09:16:58 »
Danke glombi mit @TextToTime hat das jetzt funktioniert!! :D
Obwohl du funktion ja unlogisch ist weil eigentlich sollte die ja @TimeToText heißen? Oder? ;)
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:DocumentCollection sortieren nach Datum
« Antwort #18 am: 24.10.03 - 09:22:54 »
Nein, die heisst schon richtig.

"Today" oder auch "Heute" ist ein String, sprich Text.
Das Resultat ist eine Zeitangabe, muss ja, sonst kannst Du das nicht für einen Zeitvergleich brauchen.

Also wird ein Text genommen und in eine Zeitangabe umgewandelt. Pseudografisch:

Textstring  ---->  Zeitangabe, und dasist ja auch der Name der Funktion: TextToTime

Dass es funktioniert, liegt daran, dass oberflächlich betrachtet keine Zeitfunktion verwendet wird. Das TextToTime interpretiert aber den Text und entdeckt statt eines konkreten Datums wie "10/24/2003" oder so ähnlich (je nach Lokalisierung) findet die Funktion ein Schlüsselwort, das wiederum zu einem Funktionsaufruf führt. Die Tagesfunktion wird also erst indirekt in zweiter Linie aufgerufen, deshalb wird das Ding dann auch vom Indexer nicht als zeitabhängig eingestuft.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline AC

  • Senior Mitglied
  • ****
  • Beiträge: 367
  • Geschlecht: Männlich
Re:DocumentCollection sortieren nach Datum
« Antwort #19 am: 24.10.03 - 11:56:30 »
@Glombi
Hi Andreas,

>>Ich weißnicht wie es Euch geht, aber ich habe mit der >>NotesViewEntryCollection nur böse Erfahrungen gemacht und >>das blöde Teil aus meinen Script-Fundus verbannt.
>>Wenn bspw. die View kategorisiert ist, funzt das nicht.

Ich habe da keine Probleme, es funktioniert wunderbar.
Läuft bei mir als periodischer Agent.

Fallbeispiel:
Ich habe eine kategorisierte Ansicht auf die Kundennummer und darunter als Dokumente die Bestellungen der Kunden. Innerhalb der Kategorie ist nach Datum der letzten Bestellung dann absteigend sortiert (letztr Bestellung immer oben).
Ich schnappe mir nun immer das erste Dokument (also die letzte Bestellung) der Kategorie (in eine dc) und pump die gefundenen Dokumente in einen Ordner (also ein Dokument pro Kunde eben die letzte Bestellung) .  Im Order zeige ich dann über eine berechnete Spalte mit einem Symbol (icons - thumbs up bis zu Bombe) an , ob der Zeitraum der letzten Bestellung bis heute für den Kunden ok ist oder nicht (verschiedene Symbole und Einstufungen)

Läuft wunderbar und ist auch alles richtig.

Wenn Du den Code brauchst, sag Bescheid, ich setz ihn hier rein.

 Verschnupfte und Kopfschmerzgrüße, Holcomb

Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Introduction
Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Solution Development

"...Glücklich ist, wer vergisst, was doch nicht zu ändern ist..."

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz