Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: cebolina am 06.05.11 - 11:12:31

Titel: Sortierung nach Datum - Teilstring in Mehrfachfeld
Beitrag von: cebolina am 06.05.11 - 11:12:31
Hallo zusammen,
ich habe auch mal wieder ein Problem, wofür ich eine Lösung suche:

Ich habe aus einem automatischen Import in meinem Dokument die Felder "Personalnummer" (Text), "Datum" (Datum/Zeit) und "Art" (Text) mit diesem Werten:
Personalnummer(0) = "004711"
Personalnummer(1) = "004711"
Personalnummer(2) = "004711"
Personalnummer(3) = "004711"
Personalnummer(4) = "004711"
Personalnummer(5) = "004711"
Datum(0) = 01.03.2011
Datum(1) = 02.03.2011
Datum(2) = 10.04.2011
Datum(3) = 11.04.2011
Datum(4) = 20.03.2011
Datum(5) = 21.03.2011
Art(0) = "Urlaub"
Art(1) = "Urlaub"
Art(2) = "Krank"
Art(3) = "Krank"
Art(4) = "Freizeit"
Art(5) = "Freizeit"

In einem Text-Feld "MeinFeld" (Mehrfachwerte zulassen) berechne ich mir eine Liste in diesem Format:
Personalnummer~Datum1~Abwesenheit1
Personalnummer~Datum2~Abwesenheit2
...

MeinFeld:
004711~01.03.2011~Urlaub
004711~02.03.2011~Urlaub
004711~10.04.2011~Krank
004711~11.04.2011~Krank
004711~20.03.2011~Freizeit
004711~21.03.2011~Freizeit

Jetzt möchte ich mir diese Rohdaten nach Datum sortiert in einem weiteren berechneten Feld anzeigen lassen.

Frage:
Wie kann ich diese Mehrfachwerte sortieren, dass dieses Ergebnis (nach Datum sortiert) herauskommt?
004711~01.03.2011~Urlaub
004711~02.03.2011~Urlaub
004711~20.03.2011~Freizeit
004711~21.03.2011~Freizeit
004711~10.04.2011~Krank
004711~11.04.2011~Krank

Ich hoffe, jemand kann mir dir Richtung angeben, in die ich laufen muss.

Danke und Gruß
Stefan
Titel: Re: Sortierung nach Datum - Teilstring in Mehrfachfeld
Beitrag von: eknori am 06.05.11 - 11:18:17
 @Sort(list; [CustomSort]) ist dein Freund

Beispiel

list :=
"Ulrich Krause - 10" :
"Werner Motzet - 37" :
"Tim Pistor - 9" :
"Thomas Schulte - 9" :
"Thomas Bahn - 13" :
"Julian Buss - 6" :
"Andreas Schulte (IBM) - 27";

list := @Sort(list; [CustomSort];
@ToNumber(@Trim(@RightBack($A;" - ")))
<= @ToNumber(@Trim(@RightBack($B; " - "))));

@Prompt([Ok]; ""; @Implode(list; @Char(10)))

Sortiert die Liste nach der Zahl.
Titel: Re: Sortierung nach Datum - Teilstring in Mehrfachfeld
Beitrag von: Bastel123 am 06.05.11 - 11:23:29
Ich würde das Feld so berechnen:
Als erstes das Datum (umgewandelt in das Format "JJJJ-MM-TT"), dahinter Personalnummer und Art. Darum noch ein @Sort.

Sollte funktionieren.

Sebastian  
Titel: Re: Sortierung nach Datum - Teilstring in Mehrfachfeld
Beitrag von: marschul am 06.05.11 - 11:26:28
Folgende Formel auf die Schnelle gebaut (noch nicht optimiert, da div. Berechnungen mehrfach, aber dürfte funzen):

Code
_tmpWert := @Sort(@Right(@Word(Eingabe; "~"; 2); 4) + @Middle(@Word(Eingabe; "~"; 2); 3;2) + @Left(@Word(Eingabe; "~"; 2); 2) + "~" + @Word(Eingabe; "~"; 1) + "~" + @Word(Eingabe; "~"; 3));

@Word(_tmpWert; "~"; 2) + "~" + @Right(@Word(_tmpWert; "~"; 1); 2) + "." + @Middle(@Word(_tmpWert; "~"; 1); 4; 2) + "." + @Left(@Word(_tmpWert; "~"; 1); 4) + "~" + @Word(_tmpWert; "~"; 3)

EDIT: Der Name "Eingabe" im Beispiel repräsentiert den Inhalt in "MeinFeld" aus dem Ursprungs-Post.
Titel: Re: Sortierung nach Datum - Teilstring in Mehrfachfeld
Beitrag von: cebolina am 06.05.11 - 11:35:37
Danke für die Rückmeldungen (wußte doch, dass man sich auf Euch verlassen kann;-))

@eknori
Mit @Sort habe ich experimentiert, aber nicht zum fliegen bekommen.

@Babstel123
Gute Idee, so werde ich es machen.

Danke
Stefan
Titel: Re: Sortierung nach Datum - Teilstring in Mehrfachfeld
Beitrag von: eknori am 06.05.11 - 11:44:45
list :=
"004711~01.03.2011~Urlaub":
"004711~02.03.2011~Urlaub":
"004711~10.04.2011~Krank":
"004711~11.04.2011~Krank":
"004711~20.03.2011~Freizeit":
"004711~21.03.2011~Freizeit";
list := @Sort(list; [CustomSort];
@ToTime(@Word($A;"~";2))
=> @ToTime(@Word($B; "~";2)));

@Prompt([Ok]; ""; @Implode(list; @Char(10)))
Titel: Re: Sortierung nach Datum - Teilstring in Mehrfachfeld
Beitrag von: marschul am 06.05.11 - 11:55:09
@Ulrich: Wow - das habe ich gleich mal ausprobiert und es klappt sogar (absteigend sortiert) ;)

Das mit $A & $B kannte ich noch nicht und ehrlich geschrieben: ich kapiers auch nicht und in der Hilfe hab ich nix dazu gefunden  ??? Wo gibt's denn Infos dazu?


EDIT: Frage zurückgezogen, hab's in der Hilfe zu @Sort gefunden  :D
Titel: Re: Sortierung nach Datum - Teilstring in Mehrfachfeld
Beitrag von: cebolina am 06.05.11 - 12:57:14
@eknori
Danke. Jetzt kann ich die Formel auch nachvollziehen.

Stefan
Titel: Re: Sortierung nach Datum - Teilstring in Mehrfachfeld
Beitrag von: Tode am 06.05.11 - 14:47:30
Auszug aus den Examples zum Befehl @Sort aus der Designerhilfe...

@Sort(pswd1:pswd2:pswd3;[CUSTOMSORT];@If(@PasswordQuality($A) < @PasswordQuality($B);@True;@PasswordQuality($A) > @PasswordQuality($B);@False;@False))

Auszug aus der Hilfe zu @Sort:

customSortExpression
Formula. Required when the [CUSTOMSORT] keyword is specified. A formula that uses the temporary variables $A and $B to compare the values of elements in the list two at a time. Return @True or a number greater than 0 to specify that $A is greater than $B. Return @False or a number less than or equal to 0 to specify that $B is greater than $A.
An error is produced if the return value is a data type other than a number.
Titel: Re: Sortierung nach Datum - Teilstring in Mehrfachfeld
Beitrag von: cebolina am 06.05.11 - 15:48:16
@Tode
Die Hilfe zu @Sort habe ich sehr wohl gelesen - aber halt nicht verstanden ;-)
Titel: Re: Sortierung nach Datum - Teilstring in Mehrfachfeld
Beitrag von: Tode am 06.05.11 - 17:59:02
die Antwort war auch für marschul...