Autor Thema: Evaluate & @Sort & Datum  (Gelesen 2429 mal)

Offline udo187

  • Junior Mitglied
  • **
  • Beiträge: 98
Evaluate & @Sort & Datum
« am: 29.04.14 - 13:48:37 »
Hallo !

Bitte um einen kurzen Denkanstoss:

Array mit x-Datumswerten, welche ich sortieren möchte.

Wert(0) = 20.12.2012
Wert(1) = 01.01.2014
Wert(2) = 05.10.2013


Ich verwende zum Sortieren gerne das "@Sort" mittels Evaluate.
Und Evaluate arbeitet mit Text -> wenn ich das Array mittels Implode umwandle,
werden die Datumswerte auch als Text sortiert, die Reihenfolge stimmt dann natürlich nicht.


Was mir einfällt:

Möglichkeit 1: Umwandeln der Datumswerte in Zahlen, sortieren und wieder in ein Datum zurückumwandeln
Möglichkeit 2: Werte im Array im Format "[20.12.2012]" hinterlegen - @Sort funktioniert dann auch


Oder ganz was anderes ?

Danke im Voraus für weitere Vorschläge !

Gruss
Udo

Offline Bastel123

  • Senior Mitglied
  • ****
  • Beiträge: 355
  • Geschlecht: Männlich
Re: Evaluate & @Sort & Datum
« Antwort #1 am: 29.04.14 - 13:54:59 »
Ich arbeite bei sowas immer mit dem Datumsformat YYYY-MM-DD hh:mm:ss.
Dann kann man schön sortieren und auch wieder zurück in ein datum umwandeln, da man ja einen definierten String hat,

Gruß
Sebastian
Gruß Sebastian
-----------------------------------------------------
Kaum macht man's richtig, schon funktioniert's.

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Evaluate & @Sort & Datum
« Antwort #2 am: 29.04.14 - 15:05:52 »
Zitat
Und Evaluate arbeitet mit Text -> wenn ich das Array mittels Implode umwandle,
Warum wandelst du es denn in Text um?

Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline udo187

  • Junior Mitglied
  • **
  • Beiträge: 98
Re: Evaluate & @Sort & Datum
« Antwort #3 am: 29.04.14 - 16:02:46 »
Evaluate benötigt als Input einen String, daher zuerst das Implode.
Oder liege ich hier falsch ?

Gruss
Udo

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Evaluate & @Sort & Datum
« Antwort #4 am: 29.04.14 - 17:19:19 »
Hallo Udo,

Vermutlich machst du folgendes:
Code
s = Implode(arr,|":"|)
v = Evaluate(|@Sort("| + s + |")|)
Dieser Code ist "böse", da durch eine gezielte Falscheingabe in "arr" Formelcode eingeschleußt werden kann (@Formula-injection, Erklärung siehe hier: http://atnotes.de/index.php/topic,55469.msg357844.html#msg357844)

Außerdem dürfen Formeln nicht länger als 2048 Zeichen sein.

Besser ist:
Code
tmpDoc = new NotesDocument(db)
tmpDoc.toSort = arr
v = Evaluate("@Sort(toSort)", tmpDoc)
Dann funktioniert das auch korrekt mit Datumswerten und bis zur 32k-Grenze


Gruß
Roland

Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline udo187

  • Junior Mitglied
  • **
  • Beiträge: 98
Re: Evaluate & @Sort & Datum
« Antwort #5 am: 30.04.14 - 07:11:43 »
Guten Morgen Roland,

danke für deinen Hinweis.
Mein Code sah genau so aus wie Du vermutet hattest.

Mit dem temporären Dokument funktioniert die Sortierung wie gewünscht.
Einfacher und keine Zeichenbeschränkung -> was will man mehr  :)


Danke !

Gruss
Udo

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz