Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: cebolina am 14.03.14 - 09:52:30

Titel: Weiterbearbeitung von Listen
Beitrag von: cebolina am 14.03.14 - 09:52:30
Hallo zusammen,
ich hänge gerade an einer (zumindest für mich) kniffligen Herausforderung bei der Weiterverarbeitung von Listen.

Ich habe diese 3 Listen erstellt (dim listXYZ List As String) und gefüllt:

listMitarbeiter("PersonalNr") = "Name~Vorname"
listStelleninhaber("Stelle") = "PersonalNr"
listStellen("PersonalNr") = "Stelle(n) mit ~ getrennt"

Im Ergebnis sehen die Listen so aus:

listMitarbeiter("123") = "Christ~Kind"
listMitarbeiter("345") = "Laus~Niko"
listMitarbeiter("567") = "Ruprecht~Knecht"
listMitarbeiter("789") = "Ren~Rudolph"

listStelleninhaber("Chef") = "123"
listStelleninhaber("Oberknecht") = "345"
listStelleninhaber("Unterknecht") = "567"
listStelleninhaber("Ren") = "789"

listStellen("123") = "Chef"
listStellen("345") = "Chef~Oberknecht"
listStellen("567") = "Chef~Oberknecht~Unterknecht"
listStellen("789") = "Chef~Oberknecht~Unterknecht~Ren"

Jetzt sollen die vorhandenen Listen in eine 4. Liste (listHierarchie) zusammengefasst werden.
dim listHierarchie list as string
Das Ergebnis soll so aussehen:

listHierarchie("123") = "Christ~Kind"
listHierarchie("345") = "Christ~Kind~Laus~Niko"
listHierarchie("567") = "Christ~Kind~Laus~Niko~Ruprecht~Knecht"
listHierarchie("789") = "Christ~Kind~Laus~Niko~Ruprecht~Knecht~Ren~Rudolph"

Kann mir bitte jemand beim Schleifenkonstrukt helfen?

Danke und Gruß
Stefan
Titel: Re: Weiterbearbeitung von Listen
Beitrag von: Glombi am 14.03.14 - 10:33:15
Mit einer Forall / For Schleife über die erste Liste und dann mit Listtag arbeiten.
Titel: Re: Weiterbearbeitung von Listen
Beitrag von: Peter Klett am 14.03.14 - 10:37:16
Dim array As Variant
Forall listStelle In listStellen
   array = Split (listStelle, "~")
   Forall a In array
      a = listMitarbeiter (a)
      a = listMitarbeiter (listStelleninhaber (a))
   End Forall
   listHierarchie (ListTag (listStelle)) = Join (array, "~")
End Forall

ungetestet aus dem Bauch, wobei Split und Join nur gefühlt sind, dafür verwende ich immer eigene Routinen und habe deshalb die "Neuen" (seit R5  ;) ) nicht im Kopf.

Und natürlich ohne Fehlerhandling, also If Iselement usw.

Edit: war etwas kurz gesprungen ...
Titel: Re: Weiterbearbeitung von Listen
Beitrag von: cebolina am 14.03.14 - 11:04:44
Perfekt - wie immer! (Ich dachte mir schon, wo die richtige Antwort herkommt ;D)
Danke
Titel: Re: Weiterbearbeitung von Listen
Beitrag von: thkn777 am 17.03.14 - 11:17:22
Tip: Ich würde in der listHierarchie nicht das gleiche Trennzeichen "~" benutzen.

Warum:
Christ~Kind~Laus~Niko~Ruprecht~Knecht~Ren~Rudolph läßt sich später schwieriger wieder "auseinandernehmen" und weiterverarbeiten als z.B. Christ~Kind#Laus~Niko#Ruprecht~Knecht#Ren~Rudolph
Titel: Re: Weiterbearbeitung von Listen
Beitrag von: umi am 17.03.14 - 14:00:44
Hallo

Listen können auch eigene Objekte....
Titel: Re: Weiterbearbeitung von Listen
Beitrag von: cebolina am 18.03.14 - 07:32:19
Tip: Ich würde in der listHierarchie nicht das gleiche Trennzeichen "~" benutzen.
Das hatte ich mir auch überlegt.
In diesem speziellen Fall ist die Struktur allerdings eindeutig. Deshalb ist die Weiterverarbeitung der Einträg kein POroblem.
Trotzdem Danke.

Listen können auch eigene Objekte....
ist mir bekannt. Danke für den Hinweis.