Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: MarkusL am 17.04.13 - 11:42:51

Titel: Feld sortieren
Beitrag von: MarkusL am 17.04.13 - 11:42:51
Hallo zusammen,

ich habe ein Text-Feld, in dem in jeder neuen Zeile ein Eintrag steht.
Nun möchte ich das Feld per Script sortieren lassen.

Mit der Formelsprache sieht es so aus:
list1 := @Sort(Feld);
list2 := @Unique(list1);
@SetField("Feld" ; list2)

@Unique erreiche ich über FullTrim (Wobei das wahrscheinlich überflüssig wird).
Ich habe nur für @Sort keinen Befehl in der Scriptsprache gefunden.
Kann man mit Script überhaupt Felder sortieren lassen?

Danke für Eure Hilfe.
Markus
Titel: Re: Feld sortieren
Beitrag von: TimDom am 17.04.13 - 11:52:19
Klar geht das.

Man nehme die Liste der Werte aus dem Feld, wende dann irgendeinen Sortieralgorithmus (Quick Sort, Bubble sort oder wie sie auch alle heissen) darauf an und schreibe die sortierte Liste wieder zurück.

Titel: Re: Feld sortieren
Beitrag von: Peter Klett am 17.04.13 - 11:53:36
M.W. musst Du Dir das selber bauen, z.B. mit einem einfachen Bubble-Sort. Idealerweise legst Du den in eine Scriptbibliothek, um solche allgemeingültigen Routinen auch in anderen Anwendungen verwenden zu können.
Titel: Re: Feld sortieren
Beitrag von: Glombi am 17.04.13 - 12:11:32
Das ist ganz einfach mit Evaluate zu machen:

dim reteval as variant
reteval = Evaluate( |FIELD Feld := @Sort(@Unique(@Trim(Feld)));@True|, doc )

Andreas
Titel: Re: Feld sortieren
Beitrag von: Glombi am 17.04.13 - 12:14:06
Einen Sortieralgorithmus für Lotus Script gibts von IBM:

Using LotusScript to sort values in a field (http://www-01.ibm.com/support/docview.wss?uid=swg21109011)

Andreas
Titel: Re: Feld sortieren
Beitrag von: Tode am 17.04.13 - 12:27:08
Tipp: Der @Sort- Algorithmus ist saumässig schnell. Ein
Code
varResult = Evaluate( "@Sort( Feld )" , doc )
mit doc = NotesDocument, das das Feld enthält bekommst Du eine Sortierung, die Du wahrscheinlich selbst nicht schneller hinkriegst (mit einfachen Quick- Sort, Bubble- Sort oder wie auch immer Routinen), und das obwohl das Evaluate natürlich etwas Performance zieht.

Wenn Du auf LotusScript "Native" bestehst, dann schau Dir die Gruppen- Maske in der pubnames.nsf oder pernames.ntf an, da sind Quicksort und BubbleSort als Functions in den Globals mit drin...
Titel: Re: Feld sortieren
Beitrag von: MarkusL am 17.04.13 - 12:48:45
Hallo zusammen,

ich danke Euch allen. Mit Euren ganzen Hinweisen hat es super funktioniert und vor allem schnell.
DANKE.

Gruss
Markus