AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
18.11.19 - 21:58:25
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 9
| |-+  ND9: Entwicklung (Moderatoren: Axel, eknori, Thomas Schulte, koehlerbv, m3)
| | |-+  NotesViewEntryCollection - Intersect
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: NotesViewEntryCollection - Intersect  (Gelesen 896 mal)
spookycoder
Frischling
*
Offline Offline

Geschlecht: Männlich
Beiträge: 16


Harald


WWW
« 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
Gespeichert
Peter Klett
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2623



« Antworten #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
Gespeichert
Tode
Moderatoren
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 6279


Geht nicht, gibt's (fast) nicht... *g*


« Antworten #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...
Gespeichert

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...

Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
Peter Klett
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2623



« Antworten #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
Gespeichert
eknori
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 11294


« Antworten #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.
Gespeichert
spookycoder
Frischling
*
Offline Offline

Geschlecht: Männlich
Beiträge: 16


Harald


WWW
« Antworten #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
Gespeichert
eknori
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 11294


« Antworten #6 am: 11.07.19 - 13:33:14 »

Die intersect methode
Gespeichert
jBubbleBoy
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1118



« Antworten #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 Wink
https://www.ibm.com/support/knowledgecenter/en/SSVRGU_10.0.1/basic/H_INTERSECT_METHOD_VIEWENTRYCOLLECTION.html
Gespeichert

Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.8
--
Nur ein toter Bug, ist ein guter Bug!
spookycoder
Frischling
*
Offline Offline

Geschlecht: Männlich
Beiträge: 16


Harald


WWW
« Antworten #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 Wink
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.
Gespeichert
eknori
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 11294


« Antworten #9 am: 11.07.19 - 14:08:50 »

der neue Parameter heisst maintainOrder ...

https://www.eknori.de/2019-06-06/get-sorted-results-from-dql-queries/

Gespeichert
jBubbleBoy
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1118



« Antworten #10 am: 11.07.19 - 14:11:16 »

tatsächlich, man sollte die Hilfe doch immer bis zum Ende lesen Smiley
Gespeichert

Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.8
--
Nur ein toter Bug, ist ein guter Bug!
spookycoder
Frischling
*
Offline Offline

Geschlecht: Männlich
Beiträge: 16


Harald


WWW
« Antworten #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 Smiley

Danke für die Tippps!
Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: