Autor Thema: Doppelte Werte in einer collection  (Gelesen 4691 mal)

Offline skywook

  • Senior Mitglied
  • ****
  • Beiträge: 445
  • Ich liebe dieses Forum!
Doppelte Werte in einer collection
« am: 26.09.08 - 21:40:28 »
Hallo,
wie kann ich doppelte Werte aus einer Dokument-Collection löschen? z.B. wenn es mehrere Dokumente mit dem gleichen Namen gibt.

Offline LN4ever

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 505
  • Geschlecht: Männlich
Re: Doppelte Werte in einer collection
« Antwort #1 am: 26.09.08 - 22:03:12 »
Suchst du nach notesDocument.Removeitem (du sprichst von "Werten") oder nach notesDocumentCollection.DeleteDocument( document ) ?

Gruß

Norbert
Situs vilate in isse tabernit.

Offline yes2002

  • Aktives Mitglied
  • ***
  • Beiträge: 193
  • Ich liebe dieses Forum!
Re: Doppelte Werte in einer collection
« Antwort #2 am: 29.09.08 - 10:07:42 »
Hallo,

man könnte eine Liste erstellen:

(Auszug aus der Hilfe)

' Make string comparison case insensitive
' in this module.
Option Compare NoCase
' Declare a list—myList—to hold first names.
' The list tags will be unique IDs.
Dim myList List As String
Dim newTag As String
Dim newValue As String
' Put some elements in the list.
myList("A1234") = "Andrea"
myList("A2345") = "Vera"
myList("A3456") = "Isabel"

Als Listtag - hier "A1234" - den möglichen doppelten Wert verwenden. Und als Zuweisung z.B. die Dokumentenuniversal ID.

In einer Liste müssen die Listtags eindeutig sein. D.h. man kann diese Konstruktion ganz gut zur Vereinzelung von doppelten Werten verwenden.

Gruß

Offline skywook

  • Senior Mitglied
  • ****
  • Beiträge: 445
  • Ich liebe dieses Forum!
Re: Doppelte Werte in einer collection
« Antwort #3 am: 30.09.08 - 14:49:10 »
das Problem liegt darin:

ich suche mit DocumentByKey in einer Ansicht z. B. nach "Mustermann". In der Collection kann "Mustermann" aber mehrmals vorkommen.

Die Collection verschiebe ich in einen Ordner. Aber darin soll der Mustermann nur einmal vorkommen.

Gibt es hierfür ein Lösung? Wo kann ich die doppelten Werte löschen in der Collection oder im Ordner?

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Doppelte Werte in einer collection
« Antwort #4 am: 30.09.08 - 15:06:33 »
Wo kann ich die doppelten Werte löschen in der Collection oder im Ordner?

Ich würde das in der Collection machen.

Mal so ins Blaue gedacht, könnte ich mir folgenden Weg vorstellen:

1. Suche mit DocumentByKey
2. Erzeugen einer leeren zweiten Collection
3. Zugriff auf erstes Dokument der ersten Collection
4. Name in eine Liste aufnehmen
5. Prüfen ob Name bereits in der Liste vorhanden ist. Wenn nein,Dokument in die zweite Collection einfügen
6. Nächstes Dokument aus ersten Collection
7. Alle Dokument aus der zwieten Collection in Ordner einfügen.

Schritte 4-6 ausführen bis alle Dokumente in der ersten Collection abgearbeitet wurden.

Ist nur mal so 'ne Idee. Ich bin mir nicht sicher, ob das so praktikabel ist.

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

Offline Kadlec

  • Senior Mitglied
  • ****
  • Beiträge: 489
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Doppelte Werte in einer collection
« Antwort #5 am: 30.09.08 - 16:42:43 »
Wie schon erwähnt erstellst Du eine Liste. Als ListTag nimmst Du einfach den Key "Mustermann" damit wird die Liste Unique.
Dann gehst Du nochmal durch die Liste greifst Dir über den Key wieder ein Dokument, verschiebst das in den Ordner und fertig.

Boris

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Doppelte Werte in einer collection
« Antwort #6 am: 30.09.08 - 17:01:42 »
ich suche mit DocumentByKey in einer Ansicht z. B. nach "Mustermann". In der Collection kann "Mustermann" aber mehrmals vorkommen.

Die Collection verschiebe ich in einen Ordner. Aber darin soll der Mustermann nur einmal vorkommen.

Gibt es hierfür ein Lösung? Wo kann ich die doppelten Werte löschen in der Collection oder im Ordner?
Axels und Boris Lösung funktioniert, nur kann ich keinen Sinn hinter dieser Aktion erkennen. Du nimmst damit ein x-beliebiges Dokument aus deiner Collection nur weil es zufälligerweise gerade an der ersten Stelle steckt und steckst genau dieses Dokument mit zig anderen zusammen in einen Ordner. Ist das denn überhaupt das richtige Dokument? Kann es nicht sein das dein Benutzer im Ordner jetzt ein ganz anderes Dokument erwartet?
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline skywook

  • Senior Mitglied
  • ****
  • Beiträge: 445
  • Ich liebe dieses Forum!
Re: Doppelte Werte in einer collection
« Antwort #7 am: 30.09.08 - 23:06:17 »
Danke Euch für die Anworten.

Ich würde es gerne mit einer Textliste lösen (denke das ist ein guter Ansatzpunkt). Aber finde keine genaue Erklärung wie so eine Liste aufgebaut bzw funktioniert. In Best Practices wurde zwar mal darüber diskutiert aber es nie genau erklärt.

Für eine Erklärung wäre ich sehr dankbar.

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Doppelte Werte in einer collection
« Antwort #8 am: 30.09.08 - 23:21:56 »
Schon mal die Designer-Hilfe zu dem Thema befragt?
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Doppelte Werte in einer collection
« Antwort #9 am: 01.10.08 - 08:26:37 »
Du kannst das einfach in einem dynamischen Array speichern. List benötigst du imho nicht. Der Name ist sowieso irreführend. List enthält key-value Paare, dir gehts aber einfach nur um eine LISTE ohne Duplikate. Das läßt sich prima in einem array speichern. Vor dem Einfügen überprüfst du einfach in deinem Code, ob sich ein Dokument mit der DocUnid des einzufügenden Dokuments bereits in dem Array befindet.

Das wär vielleicht mal ein Fall für Klassen. Eine Implementierung von unterschiedlichen Collection wie im Java Collection Framework.
Möglicherweise hat sich Peter Presnell (http://www.openntf.org/Projects/pmt.nsf/ProjectView?ReadForm&CollapseView&Query=.Domino%20Framework~Releases) darum gekümmert.
Set -> ungeordnete Liste, keine Duplikate
List -> geordnet nach Einfügung, mit Duplikate
Bag -> ungeordnet, Duplikate
TreeSet -> sortiert nach dem natürlichen Key der eingefügten Elemente
Stack -> keine Zeit das jetzt zu erklären
Queue -> keine Zeit das jetzt zu erklären

Wär mal interessant zu sehen, wie weit man mit den Mitteln von LotusScript da wirklich kommt. Viele dieser Dinge sind ja in Java implementiert und den Source Code kann man sich ja, wenn man da ganz viel Zeit investiert, auch anschauen.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Doppelte Werte in einer collection
« Antwort #10 am: 01.10.08 - 08:30:19 »
Zitat
Vor dem Einfügen überprüfst du einfach in deinem Code, ob sich ein Dokument mit der DocUnid des einzufügenden Dokuments bereits in dem Array befindet.

oder du übernimmst alles und haust dann mit ArrayUnique ( siehe Designer help ) die Duplikate raus
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz