Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: geissbock am 08.09.04 - 15:38:23
-
Hallo,
irgendwie stehe ich heut auf der Leitung. Folgende Problemstellung:
Bei Kommentareingabe in einem Dokument sollen abhängig von vergebenen Codes verschiedenen Leute benachrichtigt werden. Diese stehen widerum in entsprechenden Codedokumenten. Etwas genauer:
Habe ein Dok das in einem Multivaluefeld verschiedenen Codes drinstehen hat, z.B A1, B2, C3, für die einzelnen Codes gibt es andere dokumente in denen ein Multivaluefeld die Namen der Sachbearbeiter enthält die für diesen Code verantwortlich sind. Nun sollen alle Sachbearbeiter bei Eingabe eines Kommentars benachrichtigt werden, wobei die doppelten, also Müller ist sowohl für Code A1 als auch für C3 verantwortlich rausgefiltert werden sollen. Also prinzipiell durchlauf ich doch alle Einträge im Codefeld, hol mir die dazugehörigen Namen und scheib sie alle in ein Array oder? Aber irgendwie verschlunz ich mich heut in diesen verschachtelten For all Schleifen.
Bitte um Nachhilfe
Thanks geissbock
-
Schieß doch einfach alle Werte aus den Codedokumenten in eine Liste und jag @Unique drüber.
-
Formula oder LS ? Es klang wie LS.
In LS ist ein Evaluate auf @Unique machbar, erfordert wegen der Arrays aber natürlich ein paar Stunts.
Vielleicht gibst Du einer List-Variablen eine Chance ? Da ist "@Unique" integriert ;) Lists führend völlig unberechtigt ein Mauerblümchen-Dasein ...
HTH,
Bernhard
-
Das ist ein ganz wahres Wort .... hoch sollen die Listen leben
-
Danke für die Hinweise, hab mir das mit List noch mal genauer zu Gemüte geführt, aber das mit dem Unique drüberbügeln oder das unique bei Listen integiriert ist, hab ich irgendwie nicht kapiert.
-
Wenn Du eine List hast, kannst Du diese direkt über @Unique von doppelten Einträgen befreien. Im Array geht das nicht direkt. Das meinte mit Bernhard mit "integriert".
Du kannst dann in LS einfach das @Unique per Evaluate auf deine List loslassen.
-
Nein, das meinte Bernhard nicht ;)
Ich meinte tatsächlich
"A list is a one-dimensional collection of elements of the same data type."
Und das ListTag sorgt automatisch dafür, dass die "collection of elements" darüber "unique" sind, da ListTags ja immer nur einmal vorkommen.
Bernhard
-
Oha, da sollte ich mich wohl auch noch mal mit dem Thema List beschäftigen :-[ ;)
-
Das lohnt sich wirklich, Ingo.
-
Ja aber wo, also ich komm da mit der Designer-Hilfe und auch mit meinem "Raimund Mann" nicht klar und versteh irgendwie nicht, wie ich das bei meinem Beispiel umsetze. Also bin jetzt hier:
a=-1
b=-1
'hol mir mal alle Codes
For i = 0 To Ubound(codeitem.values)
a=a+1
'Dann hol ich mir das zum ersten code gehörende Doc
Set configdoc = configview.GetDocumentByKey(codeitem.values(a), True)
'Nun das Feld in dem die Sachbearbeiter stehen
Set SBItem = configdoc.GetFirstItem("PatentSB")
c = -1
hier dann die schleife über alle Sachbearbeiter
For d = 0 To Ubound(SBItem.values)
b = b+1
c = c+1
und schreib die in die listvaraible
verteiler(b) = SBItem.values(c)
Next
Next
Dann hab ich doch in der variable Verteiler alle Werte drin wie in nem Array.
Bin ich einfach zu blöd für, scheint mir.
-
Irgendwelche List-Variablen finde ich in Deinem Code aber nicht, geissbock ... Du verwendest Arrays.
Und Raimund Mann beschreibt das - wenn auch wirklich nicht tiefschürfend - ab Seite 24 des "Domino Designer R5".
Aber Dir bleiben ja auch sonst viele Wege, um ans Ziel zu kommen:
- Du kannst vor dem Hinzufügen eines Wertes in Array, ob dieser schon vorhanden ist
- Du übergibst Dein Array (mit evtl. doppelten Einträgen) an ein Feld in einem temp. Dokument und wendest auf dieses dann Evaluate ("@Unique (....") an.
To be continued ...
Bernhard
-
Hallo und danke,
ja die Lösung mit dem prüfen ob der Eintrag schon im Array steht, hatt ich dann jetzt auch gewählt, aber interessehalber wollt ich das mit den List Variablen eben auch noch mal testen.
Hab's mir noch mal genauer durchgelesen und heut bin scheinbar etwas frischer und jetzt hab ich's gerafft, aber zum Weiterverarbeiten bleib ich doch lieber bei meiner Arraylösung.
Vielen Dank jedenfalls für die konstruktive und hilfreichen Vorschläge. Wünsch noch einen schönen (wahrscheinlich letzten) Spätsommertag.
Gruß, der geissbock