Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: jr am 03.04.03 - 12:36:41
-
Hallo,
ein kleines Problem: Hat jemand eine Ahnung, wie ich mit Formelsprache die doppelte Elemente eines Mehrfachwertes berechnen kann? (Für Eingabevalidierung ist Script leider nicht erlaubt :()
Die erste Idee war: @Trim(@Replace(x; @Unique(x); ""))
Klappt aber leider nicht, weil der Replace-Befehl ja jedes Auftreten eines Eintrags löscht, und somit auch die doppelten löscht.
Hat jemand eine Idee??
Gruß,
JR
-
willscht Du nun aus
A:B:C:C:E = A:B:C:E machen
oder
"C" als Ergebnis, dass DAS doppelt ist, rausbekommen
-
... wenn ich das richtig verstanden haben, dann "C" als das doppelte...
ata
-
und wenn du 3 oder mehrere gleiche Werte hast ???
ich nehme an weil du von Eingabevalidierung sprichst das kein doppelter Wert eingetragen werden soll, oder ?
cu
-
So ist es, ich möchte die (mindestens) doppelten einträge bekommen.
Also @Was'n'Doppelt("A:B:C:C:D:D:D:D:E:F") ==> "C:D"
Wenn's nur darum geht, ob überhaupt doppelte enthalten sind, das kann man mit "feldname = @Unique(feldname)" testen. Aber welche?
Gruß,
jr
-
(Für Eingabevalidierung ist Script leider nicht erlaubt :()
Doch, via QuerySave...
gruss
-
... oder PostRecalc , das wären auch meine Ansätze...
ata
-
Ok, PostRecalc wäre eine Möglichkeit.
Aber so eine Funktion braucht man ja öfters, vielleicht in anderen Formeln. Gibt's denn keine Möglichkeit mit @Formeln? ???
Solche Probleme machen mich immer ganz gribbelig... Man denkt es muss doch eine Lösung geben.
Nun, ich harre der Dinge die kommen...
Danke,
JR
-
... du kannst dir eine Function schreiben, die dir die Doppelten Werte in einem Arra zurückgibt. Die Funktion in einer Library, und du kanns die Funktion überall dort verwenden und so oft, wie du das eben benötigst...
ata
-
ach, jr, hör net auf die Nasen hier, die haben doch keine Ahnung...hab das mal in 10 Minuten runtergedaddelt und aus
"A":"B":"C":"C":"D" = kommt "C" raus...
die Formel aus meinem genialen Hirn für einen Button:
(FeldA enthält die Werte, FeldB bekommt das Ergebnis der Doppelten)
List := FeldA;
digitList := "0" : "1" : "2" : "3" : "4" : "5" : "6" : "7" : "8" : "9";
idList := @Subset(digitList *+ digitList; @Elements(List));
tmpList1 := @Unique(@Replace(List; List; idList));
tmpList2 := @Trim(@Replace(idList; tmpList1; ""));
duplicateList := @Replace(tmpList2; idList; List);
Field FeldB:=@Unique(duplicateList) ;
void
(ok..klar..ist natürlich nur ein Joke... ;D...natürlich sind die anderen keine Nase...ich bin - um ehrlich zu sein - viel zu doof für eine solche Lösung....aber ich habe es auf dem Notes.net Forum gefunden...siehe da:
http://www-10.lotus.com/ldd/46dom.nsf/55c38d716d632d9b8525689b005ba1c0/5059a07314f98b2585256a0f006fe021?OpenDocument
von Jay Paramanatha = großer Gott... :-*)
-
... mit der Permutationsregel - genial...
ata
-
ich hatte es selbst versucht, weil eigentlich klar war, daß man paarweise vergleichen muß, nur war ich einfach nicht auf den Trichter gekommen, wie die temporären Listen zu schachteln sind...
Permutation ist wohl eines der meisten unterschätzten Fietures von Notes.
-
... ich arbeite immer wieder damit, aber auf die Lösung wäre ich alleine auch nicht so schnell gekommen... ;D
ata
-
Ja, das ist ja einfach... ;D
Aber im Ernst, eine echt geniale Lösung. Mit den permutierten id-Listen habe ich selbst schon experimentiert, aber keine sinnvolle Lösung gefunden. Die Idee mit dem rüber- und nüber-schieben ist genial. Ohne den letzten @Unique gibts sogar die komplette Doppelt-Liste.
Vielen Dank an alle die geholfen haben und besonders an den grünen Robbie.
Tschau,
JR
-
@ Rob Green,
wow, Du bist ja super schnell. Steht schon auf Deiner Page. Das gibt 12 von 10 möglichen Punkten ;D ;D ;D für super schnelles Information-Sharing.
JR
-
dankeschön...das ist das einzige Kompliment was ich an mich ranlasse (sonst macht mich das immer ganz wuschelig...weiß auch nicht...), denn darauf lege ich höchsten Wert, daß man Wissen teilt, um jedem die Möglichkeit geben, daraus was zu machen...horten von Wissen und Infos war schon immer ein Graus für mich, um es als Machtinstrument oder Konkurrenzschwachsinnsgehabe zu vergeuden.