cro-logo      
Добро пожаловать, Гость. Пожалуйста, выберите Вход или Регистрация

 
 
  ГлавнаяСправкаПоискВходРегистрация  
 
Переключение на Главную Страницу Страниц: 1
Послать Тему Печать
Не работает сортировка дат в SORTEX() (Прочитано 314 раз)
yavik
Опытный пользователь
***
Вне Форума



Сообщений: 55
Не работает сортировка дат в SORTEX()
21.09.2017 :: 22:38:26
 
Столкнулся с простой задачей выдачи связанных обьектов отсортированных по дате, ниже поле DF2. Код формулы в форме выдачи выглядит примерно так
@i:=1
LOOP(LC16_DF,
@A(@i,1) :=DF1
@A(@i,2) :=DF2
@A(@i,3) :=DF3
@i:=i+1
)
@res:=SORTEX(@A,2)
@ret:=@res

Так вот не сортируются почему-то записи по столбцу DF2 дата. Причем по текстовому столбцу сортируются, временно решил вводом дополнительного столбца
@A(@i,4) :=Date(DF2) и соответственно @res:=SORTEX(@A,4) - так работает, но как-то это некрасиво и лишний столбец с цифрами выдается, может кто-че подскажет. Версия кроноса старая 5.0.11003 понимаю что скорее всего в ней проблема, но очень нужна сортировка  Озадачен
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 2 214
Санкт-Петербург
Re: Не работает сортировка дат в SORTEX()
Ответ #1 - 22.09.2017 :: 10:08:03
 
Все делается гораздо проще:
Код:
@A:=LC16_DF
@A:=SORTRECORDS(@A,"DF",2<<@VALUESEPARATOR1<<0)
 


А дальше выдавайте как хотите
Наверх
 
 
IP записан
 
yavik
Опытный пользователь
***
Вне Форума



Сообщений: 55
Re: Не работает сортировка дат в SORTEX()
Ответ #2 - 22.09.2017 :: 22:02:00
 
Спасибо, действительно просто и работает, но в конструкции sortrecords() столкнулся с другой проблемой -  при сортировке одного столбца все ОК, но при попытке провести сортировку по 2-м столбцам Дата и время не удается получить результат сортировки кот. получаю в sortex().
Результаты сортировки по 2-м столбцам(2-дата,3-время)
@A:=SORTRECORDS(@A,"DF",2<<@VALUESEPARATOR1<<0<<3<<@VALUESEPARATOR1<<0)
20.07.2017 16:50
20.07.2017 18:24
09.07.2017 10:04
09.07.2017 11:36
14.06.2017 17:24
14.06.2017 18:34
30.05.2017 16:03
30.05.2017 17:02
(не понятно почему дата выше получ. по убыванию, ведь стоит 0 по возрастанию, пробовал разные варианты никак не становится как ниже в sortex)

Результаты сортировки по 2-м столбцам(8-дата ,3-время)
Правда дату пришлось привести к числу функцией Date и поместить в 8 столбец, кот. и  подсунуть в sortex
@sort_rules:= 8<<@VALUESEPARATOR<<3;
@res:=SORTEX(@A,@sort_rules)
30.05.2017 16:03
30.05.2017 17:02
14.06.2017 17:24
14.06.2017 18:34
09.07.2017 10:04
09.07.2017 11:36
20.07.2017 16:50
20.07.2017 18:24
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 2 214
Санкт-Петербург
Re: Не работает сортировка дат в SORTEX()
Ответ #3 - 22.09.2017 :: 23:02:21
 
Внимательно читайте мануалы:
Код:
@A:=SORTRECORDS(@A,"DF",2<<@VALUESEPARATOR1<<0<<@VALUESEPARATOR<<3<<@VALUESEPARATOR1<<0) 

Наверх
 
 
IP записан
 
yavik
Опытный пользователь
***
Вне Форума



Сообщений: 55
Re: Не работает сортировка дат в SORTEX()
Ответ #4 - 25.09.2017 :: 10:59:09
 
Увы не работает. Наверно 5 старая версия и в ней проблемы  Озадачен Ведь простая же задача и sortex сортирует по 2 столбцам см. выше, но у него с датой проблема. Здесь похоже со 2-м столбцом проблема

@A:=SORTRECORDS(@A,"DF",2<<@VALUESEPARATOR1<<0<<@VALUESEPARATOR1<<3<<@VALUESEPAR
ATOR1<<0)
30.05.2017 17:02
30.05.2017 16:03
14.06.2017 18:34
14.06.2017 17:24
09.07.2017 10:04
09.07.2017 11:36
20.07.2017 16:50
20.07.2017 18:24

@A:=SORTRECORDS(@A,"DF",2<<@VALUESEPARATOR1<<0)
30.05.2017 17:02
30.05.2017 16:03
14.06.2017 18:34
14.06.2017 17:24
09.07.2017 10:04
09.07.2017 11:36
20.07.2017 16:50
20.07.2017 18:24

@A:=SORTRECORDS(@A,"DF",3<<@VALUESEPARATOR1<<0)
09.07.2017 10:04
09.07.2017 11:36
30.05.2017 16:03
20.07.2017 16:50
30.05.2017 17:02
14.06.2017 17:24
20.07.2017 18:24
14.06.2017 18:34
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 2 214
Санкт-Петербург
Re: Не работает сортировка дат в SORTEX()
Ответ #5 - 25.09.2017 :: 13:20:19
 
Внимательность и еще раз внимательность:
было написано:
Код:
@A:=SORTRECORDS(@A,"DF",2<<@VALUESEPARATOR1<<0<<@VALUESEPARATOR<<3<<@VALUESEPARATOR1<<0) 


а пишите:
Код:
@A:=SORTRECORDS(@A,"DF",2<<@VALUESEPARATOR1<<0<<@VALUESEPARATOR1<<3<<@VALUESEPARATOR1<<0) 


Найдите отличия.
Наверх
 
 
IP записан
 
yavik
Опытный пользователь
***
Вне Форума



Сообщений: 55
Re: Не работает сортировка дат в SORTEX()
Ответ #6 - 25.09.2017 :: 15:22:10
 
Спасибо, заработала сортировка по 2-м столбцам.  Очень довольный Все оказалось просто. Действительно @valueseparator  -разделитель элементов массива. @valueseparator1 - разделитель параметров сортировки столбца массива.

Учиться и учиться .....
Наверх
 
 
IP записан
 
Переключение на Главную Страницу Страниц: 1
Послать Тему Печать