Невозможно отсортировать массив дат по убыванию в Lotusscript

Ищу твоей помощи. Я пытаюсь отсортировать массив дат в порядке убывания, но безрезультатно.

Вот фрагмент моего кода:

Dim sortValue as Variant

Dim sortValueResult as Variant

Dim r1 as String

SortValue = entry.Columnvalues(1)

' The values are (0) 19/5/2018 and (1) 26/5/2018

r1 = Join(sortValue, ";")

sortValueResult = Evaluate ( {@Sort("} & r1 & {";[DESCENDING])})`

Я получаю 19/5/2018; 26/5/2018

26/5/2018 должен прийти первым до 19/5/2018.

Кто-нибудь может мне помочь?

Спасибо.

1 ответ

@Sort может работать со списками дат, но вы не переходите в список. Вы передаете в строке.

В синтаксисе языка формул Notes список представлен элементами, разделенными символами ":"; строковое представление с ";" символы на самом деле не список. Вы можете перемещаться между строковым и списочным форматами с помощью @Explode а также @Implode, но на выходе @Explode это всегда текстовый список, а не список дат. Вы могли бы справиться с этим с @TextToTime, но вы действительно можете просто избежать этого, создавая нотацию списка. Вам необходимо заключить каждую строку данных в квадратные скобки, чтобы превратить ее в константу даты, и разделить их символами двоеточия, поместив их все в строку LotusScript.

Нечто подобное (не проверенное) должно привести к правильной записи списка перед тем, как вы сделаете свой вызов Evaluate:

forall r in r1
  r = "[" + r + "]"         ' [19/5/2018] is proper date constant notation
end forall
r1 = Join(sortValue, ":")   ' colon is list separator
' result here should be r1 = "[9/5/2018] : [26/5/2018]"
Другие вопросы по тегам