СКД. Помогите с сортировкой.

1. DrVl 15.11.18 16:06 Сейчас в теме
Есть отчет, запрос отбирает таблицу данных(упрощенно):

Абонент | ГодДолга | МесяцДолга | Сумма Долга
001-------| 2017-------| 01.01.2017---|--500
001-------| 2017-------| 01.02.2017---|--100
002-------| 2016-------| 01.11.2016---|--100
002-------| 2017-------| 01.02.2017---|--300
002-------| 2018-------| 01.01.2018---|--500
003-------| 2017-------| 01.01.2017---|--200
004-------| 2018-------| 01.05.2018---|--100
004-------| 2018-------| 01.03.2018---|--300
005-------| 2016-------| 01.04.2016---|----50
006-------| 2018-------| 01.04.2018---|--100
007-------| 2017-------| 01.07.2017---|--100
007-------| 2018-------| 01.04.2018---|----50

Абонент | ГодДолга | МесяцДолга - измерения
Сумма Долга - ресурс, расчет суммы по всем этим измерениям и общий итог

Настройка отчета в варианте:
Отчет
|
Таблица
|
|-Строки
| |
| Абонент
|
|-Колонки
| |
| Год долга

Нужна сортировка такого вида:

Абонент/ГодДолга | 2016 | 2017 | 2018
---------------002---|---100 |--300 |---500
---------------005---|----50 |--------|--------
---------------001---|--------|--600 |--------
---------------003---|--------|--200 |--------
---------------007---|--------|--100 |----50
---------------004---|--------|--------|--400
---------------006---|--------|--------|--100

Т.е. последовательная сортировка в колонках ГодДолга по убыванию, начиная с меньшего значения ГодДолга.

Не соображу, как это реализовать средствами СКД.
Найденные решения
11. vadim1011985 100 15.11.18 17:43 Сейчас в теме
(10) Ничего дополнительного делать не нужно
В самой СКД на закладке НаборыДанных для поля Сумма долга в строке "Выражение упорядочивание " указать выражение - ГодДолга - возрастание
Прикрепленные файлы:
ВнешнийОтчет1.erf
12. vasgius 15.11.18 18:51 Сейчас в теме
(10) того же самого, что и в (11) можно добиться, если для группировки "Абонент" (именно для нее, а не для всего отчета) убрать автосортировку и добавить следующие сортировки:
1) ГодДолга - Возрастание
2) СуммаДолга - Убывание

проверил на ваших тестовых данных.

+ Проверил, работает ли вариант предложенный в (6) - тоже все Ок (при условии, что добавлена сортировка по СуммаДолга)
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Pavel Rodinchenko 15.11.18 16:18 Сейчас в теме
Может так?
Прикрепленные файлы:
4. DrVl 15.11.18 16:24 Сейчас в теме
(2) такой вариант оставит только Итоги по годам одну строку.
3. dyuha 49 15.11.18 16:19 Сейчас в теме
Год долга по возрастанию. Месяц долга -> части дат -> Месяц по возрастанию.
А вообще Абонент по возрастанию, Период по возрастанию. В таблице должно получиться Абоненты сверху вниз по алфавиту. Года, месяцы слева направо по возрастанию. Чтобы пустые года отображались они должны быть в детальных записях.
5. DrVl 15.11.18 16:25 Сейчас в теме
(3)Сортировка нужна по сумме долга по возрастанию, последовательно по годам
7. dyuha 49 15.11.18 16:35 Сейчас в теме
(5) Период по возрастанию. Сумма долга по убыванию (сверху самый злостный в 2016)| по возрастанию (снизу самый злостный 2016). А чтобы по итогам отсортировать надо прилепить к абоненту еще в запросе "Текущий долг" и сначала отсортировать по нему, а потом по периоду. А так, чтобы каждый год новый "самый злостный" не получится в таблице, т.к. они каждый год разные могут быть.
9. DrVl 15.11.18 16:57 Сейчас в теме
(7)Да ошибся в ответе про возрастание, конечно по убыванию. Текущий долг, не подходит, нужно именно по принципу, самый старый, самый большой вверх и сортировка по суммам в пределах года, последовательно, выше писал как бы это выглядело в запросе.
6. vasgius 15.11.18 16:31 Сейчас в теме
добавьте вычисляемое поле "МинимальныйГодДолга", которое нужно загнать в ресурсы и рассчитывать как:
Минимум(ГодДолга)

и сортируйте Строки по этому полю

так же можно добавить аналогичное поле, которое будет рассчитываться как количество различных, чтобы абоненты с долгами за различные годы выводились сверху.
8. DrVl 15.11.18 16:45 Сейчас в теме
(6)Интересно, но не совсем то, что необходимо. В пределах года долг отсортирован не будет, да и в разных годах долги у большинства.
Нужно добиться сортировки, как если бы в запросе было:

УПОРЯДОЧИТЬ ПО
Долг2016 УБЫВ,
Долг2017 УБЫВ,
Долг2018 УБЫВ

Смысл - абоненты с наиболее старым и большим долгом вверху и при этом весь долг за все периоды собран в одной строке, а не раскидан по разным группировкам.

Но мысль реализовать какое то вычисляемое поле вычисленное по году и сумме интересная, надо подумать что вычислять.
10. DrVl 15.11.18 17:06 Сейчас в теме
(6) Первое что приходило на ум - это вычислить что то типа ГодДолга*10000000+СуммаДолга, но по абоненту нужен итог, т.к. это тоже группировка. Да и вопрос не сильно ли много вычислений будет т.к. данных много.
11. vadim1011985 100 15.11.18 17:43 Сейчас в теме
(10) Ничего дополнительного делать не нужно
В самой СКД на закладке НаборыДанных для поля Сумма долга в строке "Выражение упорядочивание " указать выражение - ГодДолга - возрастание
Прикрепленные файлы:
ВнешнийОтчет1.erf
12. vasgius 15.11.18 18:51 Сейчас в теме
(10) того же самого, что и в (11) можно добиться, если для группировки "Абонент" (именно для нее, а не для всего отчета) убрать автосортировку и добавить следующие сортировки:
1) ГодДолга - Возрастание
2) СуммаДолга - Убывание

проверил на ваших тестовых данных.

+ Проверил, работает ли вариант предложенный в (6) - тоже все Ок (при условии, что добавлена сортировка по СуммаДолга)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот