Autor Thema: NotesViewEntryCollection - Intersect  (Gelesen 4353 mal)

Offline spookycoder

  • Frischling
  • *
  • Beiträge: 21
  • Geschlecht: Männlich
  • Harald
    • Harrys Blog
NotesViewEntryCollection - Intersect
« am: 11.07.19 - 08:57:22 »
Einen schönen guten Morgen zusammen,

ich habe hier einen schöne NotesViewEntryCollection von einem View der in der UI angezeigt wird.

Ich will die Einträge mittels COM nach Excel exportieren, das funktioniert auch schön, auch in der Sortierreihenfolge die im Client angezeigt wird.

Will ich nun nur die Einträge exportieren, welche der Benutzer in der UI markiert habe, hole ich mir aus der UIView die Documents (ist eine NotesDocumentCollection) und wende die mit der Intersect-Methode auf die NotesViewEntryCollection an.

Funktioniert prinzipiell auch, nur ist dann leider die Sortierung der verbleibenden Einträge eine andere. Ein neuerliches resortView auf die View hat leider auch nix gebracht.

Muss ich damit leben, oder seht ihr hier eine andere Möglichkeit noch?

lg

Harald

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: NotesViewEntryCollection - Intersect
« Antwort #1 am: 11.07.19 - 09:20:36 »
Wenn Deine NotesViewEntryCollection richtig sortiert ist, dann gehe doch durch die und übertrage die Daten nach Excel in Abhängigkeit davon, ob das jeweilige Dokument in der NotesDocumentCollection enthalten ist. Dann hast Du die richtigen Dokumente in der richtigen Reihenfolge

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.870
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: NotesViewEntryCollection - Intersect
« Antwort #2 am: 11.07.19 - 10:00:57 »
Hast Du denn die "Intersect"- Methode in beide Richtungen probiert? Also dcSelected.Intersect(dcViewEntries) und dcViewEntries.Intersect(dcSelected)? Ich wette, die Reihenfolge unterscheidet sich in beiden Fällen. Ich würde fast wetten, dass die zweite Methode die Reihenfolge der View beibehält...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: NotesViewEntryCollection - Intersect
« Antwort #3 am: 11.07.19 - 10:21:23 »
Hast Du denn die "Intersect"- Methode in beide Richtungen probiert? Also dcSelected.Intersect(dcViewEntries) und dcViewEntries.Intersect(dcSelected)? Ich wette, die Reihenfolge unterscheidet sich in beiden Fällen. Ich würde fast wetten, dass die zweite Methode die Reihenfolge der View beibehält...
Das klingt sinnvoll und wäre wohl besser (performanter und einfacher geschrieben), als mein Vorschlag

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.710
  • Geschlecht: Männlich
Re: NotesViewEntryCollection - Intersect
« Antwort #4 am: 11.07.19 - 11:36:45 »
Das Beibehalten der Sortierung gibt es erst ab V10. Da hat die Methode einen zusätzlichen Parameter.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline spookycoder

  • Frischling
  • *
  • Beiträge: 21
  • Geschlecht: Männlich
  • Harald
    • Harrys Blog
Re: NotesViewEntryCollection - Intersect
« Antwort #5 am: 11.07.19 - 12:53:33 »
Hallo,

danke für die vielen Antworten.

Sorry, meine Angabe war nicht  ganz vollständig:

@Torsten: Ich wende die Intersect-Methode der NotesViewEntryCollection an, ich will ja die vielen Einträge dezimieren, sodass in der NotesViewEntryCollection nur die Dokumente drinnen bleiben, welche auch in der NotesDocumentCollection sind. Umgekehrt macht es meiner Meinung nach keinen Sinn, dh. wenn ich die Intersect-Methode auf der NotesDocumentCollection anwende, verändert sich deren Inhalt ja nicht, es sind ja nur Dokumente drinnen, die ohnehin in der NotesViewEntryCollection sind.

Den Ansatz von Peter kann ich natürlich machen, schnell ist das natürlich nicht. Wenn es allerdings nicht anders geht werde ich das so machen müssen, jedoch einen ViewNavigator mit dem Caching verwenden damit die Schleife halbwegs performant bleibt.

Ullrich, welche Methode meinst Du denn konkret, die Resort-Methode des Views mit dem programmatischen Name der Spalte? Bin gespannt ob ich dann das so hinkriege, ich wollte die Methode recht generisch haben, sodass ich diese Aktion in jede View reinwerfen kann ohne jetzt speziell Anpassungen machen zu müssen.

danke & lg

Harald

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.710
  • Geschlecht: Männlich
Re: NotesViewEntryCollection - Intersect
« Antwort #6 am: 11.07.19 - 13:33:14 »
Die intersect methode
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.276
  • Geschlecht: Männlich
Re: NotesViewEntryCollection - Intersect
« Antwort #7 am: 11.07.19 - 14:02:16 »
wenn diese Funktion einen neuen Parameter bekommt, dann würden ja alte Programme nicht mehr laufen, deshalb glaube ich nicht daran ;)
https://www.ibm.com/support/knowledgecenter/en/SSVRGU_10.0.1/basic/H_INTERSECT_METHOD_VIEWENTRYCOLLECTION.html
Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16
--
Nur ein toter Bug, ist ein guter Bug!

Offline spookycoder

  • Frischling
  • *
  • Beiträge: 21
  • Geschlecht: Männlich
  • Harald
    • Harrys Blog
Re: NotesViewEntryCollection - Intersect
« Antwort #8 am: 11.07.19 - 14:08:27 »
wenn diese Funktion einen neuen Parameter bekommt, dann würden ja alte Programme nicht mehr laufen, deshalb glaube ich nicht daran ;)
https://www.ibm.com/support/knowledgecenter/en/SSVRGU_10.0.1/basic/H_INTERSECT_METHOD_VIEWENTRYCOLLECTION.html

Sie steht eh schon dort:

maintainOrder

(Optional) Boolean. Specifies that after the Intersect operation is complete, whatever order the originating view was in when the NotesEntryCollection was created will remain in force for subsequent entry processing. That is, either the default view order will be used or that last set by calling ResortView.

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.710
  • Geschlecht: Männlich
Re: NotesViewEntryCollection - Intersect
« Antwort #9 am: 11.07.19 - 14:08:50 »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.276
  • Geschlecht: Männlich
Re: NotesViewEntryCollection - Intersect
« Antwort #10 am: 11.07.19 - 14:11:16 »
tatsächlich, man sollte die Hilfe doch immer bis zum Ende lesen :)
Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16
--
Nur ein toter Bug, ist ein guter Bug!

Offline spookycoder

  • Frischling
  • *
  • Beiträge: 21
  • Geschlecht: Männlich
  • Harald
    • Harrys Blog
Re: NotesViewEntryCollection - Intersect
« Antwort #11 am: 11.07.19 - 16:38:37 »
Ja, der kleine Parameter macht den großen Unterschied - jetzt brauche ich nur noch warten, dass wir den 10er Client ausrollen und die Server komplett umgestellt haben :)

Danke für die Tippps!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz