СКД группировки - вывести без суммирования
Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
Добрый день, уважаемые!
Прошу прохелпить! Задача кажется простой, но что-то с первого раза не получилось (((
Без лишней воды, сразу по факту: получаю результат в СКД (левее не картинке) из запроса (правее на картинке)
Хотелось бы в группировках видеть не сумму по группе, а значения количеств сгруппированного элемента (на картинке левее, указано стрелочкой). Подскажите путь решения этой задачки?
ПС: экспериментировал с группировками, с ВычислитьВыражение(), но не получил нужного. Удалял ресурсы, но тоже не то. Думаю менять запрос, но решил спросить мнение знающих. Хелпните, кто знает.
Прошу прохелпить! Задача кажется простой, но что-то с первого раза не получилось (((
Без лишней воды, сразу по факту: получаю результат в СКД (левее не картинке) из запроса (правее на картинке)
![](http://radikall.com/images/2013/12/14/bkR1d.jpg)
Хотелось бы в группировках видеть не сумму по группе, а значения количеств сгруппированного элемента (на картинке левее, указано стрелочкой). Подскажите путь решения этой задачки?
ПС: экспериментировал с группировками, с ВычислитьВыражение(), но не получил нужного. Удалял ресурсы, но тоже не то. Думаю менять запрос, но решил спросить мнение знающих. Хелпните, кто знает.
По теме из базы знаний
Найденные решения
В (13) неверно написал. У нас же в выражении МИНИМУМ. Поэтому, в других группировках тоже будет минимум. Чтобы решить задачу ресурсами надо изменить структуру запроса. Допустим есть таблица с заготовками и таблица с марками. Эти две таблицы надо ОБЪЕДИНИТЬ. В результате, получим что-то типа:
Ось = Ось1, Марка = Марка1, Заготовка = Null, Количество = 0, КоличествоМарки = 10 - строка из таблицы марок
Ось = Ось1, Марка = Марка1, Заготовка = Заготовка1, Количество = 5, КоличествоМарки = 0 - строка из таблицы заготовок
Ось = Ось1, Марка = Марка1, Заготовка = Заготовка2, Количество = 5, КоличествоМарки = 0 - строка из таблицы заготовок
и т.д.
тогда в ресурсах вместо МИНИМУМ() смело используем СУММА()
Ось = Ось1, Марка = Марка1, Заготовка = Null, Количество = 0, КоличествоМарки = 10 - строка из таблицы марок
Ось = Ось1, Марка = Марка1, Заготовка = Заготовка1, Количество = 5, КоличествоМарки = 0 - строка из таблицы заготовок
Ось = Ось1, Марка = Марка1, Заготовка = Заготовка2, Количество = 5, КоличествоМарки = 0 - строка из таблицы заготовок
и т.д.
тогда в ресурсах вместо МИНИМУМ() смело используем СУММА()
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
В подсчете группировок использовать функцию Количество?
Или вам нужно иначе, чтобы знать какой элемент повторяется сколько раз? Тогда в СКД где группировочные и суммовые поля, в суммовом поле использовать функцию для ресурса - Количество различных
Пробовали с количественными функциями?
Или вам нужно иначе, чтобы знать какой элемент повторяется сколько раз? Тогда в СКД где группировочные и суммовые поля, в суммовом поле использовать функцию для ресурса - Количество различных
Пробовали с количественными функциями?
Ага! Не совсем удачный результат запроса. "Количество" тут не помощник или что-то не домысливаю.
На самом деле хочется визулизировать следующее:
Тест/Б1-0 по спецификации нужно 3 штуки (Количество), дли изготовления которых необходимо:
Тест/14 - 6 шт.
Тест/25 - 9 шт.
Тест/30 - 9 шт.
Тест/4 - 3 шт.
и представить виде:
_______________Группировка________________
Тест/Б1-0 - 3 шт.
__________________________________________
Тест/14 - 6 шт.
Тест/25 - 9 шт.
Тест/30 - 9 шт.
Тест/4 - 3 шт.
у меня же в группировку (вместо 3 шт.) попадает сумма 6 + 9 + 9 + 3 = 27 шт. (на картинке показано синим).
На самом деле хочется визулизировать следующее:
Тест/Б1-0 по спецификации нужно 3 штуки (Количество), дли изготовления которых необходимо:
Тест/14 - 6 шт.
Тест/25 - 9 шт.
Тест/30 - 9 шт.
Тест/4 - 3 шт.
и представить виде:
_______________Группировка________________
Тест/Б1-0 - 3 шт.
__________________________________________
Тест/14 - 6 шт.
Тест/25 - 9 шт.
Тест/30 - 9 шт.
Тест/4 - 3 шт.
у меня же в группировку (вместо 3 шт.) попадает сумма 6 + 9 + 9 + 3 = 27 шт. (на картинке показано синим).
Представленный запрос разобрал на 2: первый с заготовками (где поле марка заполнено), второй - с марками (где поле марка пустое) и левым соединением их соединил по маркам и этот запрос передал в СКД.
Без создания ресурсов создал 2 группировки (по маркам и заготовкам) с перечнем полей, в одинаковой последовательности вывода. Получилось ровненько и красивенько.
Но... без итогов!!! Что тоже не хорошо.
Уже есть желание плюнуть на СКД и все что нужно сделать в Дереве с полуручным редактированием.
Без создания ресурсов создал 2 группировки (по маркам и заготовкам) с перечнем полей, в одинаковой последовательности вывода. Получилось ровненько и красивенько.
![](http://radikall.com/images/2013/12/15/qyTkL.jpg)
Но... без итогов!!! Что тоже не хорошо.
Уже есть желание плюнуть на СКД и все что нужно сделать в Дереве с полуручным редактированием.
(9) echo77, Посмотрите последнюю картинку (сообщение 6), на ней Тест/Б1-1 показывает именно то, что мне нужно, Т.е. для изготовления этой марки нужны следующие заготовки, причем количество заготовок кратно количеству создаваемых марок.
В этом случае для создания 2-х марок Тест/Б1-1, нужны соответственно
/14 заготовки - 2 шт,
/25 заготовки - 4 шт,
/30 заготовки - 4 шт,
/5 заготовки - 2 шт.
Надо визуализировать в точности как на последеней картинке, только что бы ещё можно было просуммировать по группировкам выше. Т.е. если смотреть последнюю картинку (сообщение 6), то по группировке Ось, и Объект.
Если это делать стандартными средствами СКД, то я не увижу марок - 2, а увижу сумму по заготовкам (2+4+4+2). Сейчас проблема ясна?
В этом случае для создания 2-х марок Тест/Б1-1, нужны соответственно
/14 заготовки - 2 шт,
/25 заготовки - 4 шт,
/30 заготовки - 4 шт,
/5 заготовки - 2 шт.
Надо визуализировать в точности как на последеней картинке, только что бы ещё можно было просуммировать по группировкам выше. Т.е. если смотреть последнюю картинку (сообщение 6), то по группировке Ось, и Объект.
Если это делать стандартными средствами СКД, то я не увижу марок - 2, а увижу сумму по заготовкам (2+4+4+2). Сейчас проблема ясна?
Эта задача легко решается на закладке "Ресурсы". Допустим в запросе у вас есть 2 поля: КоличествоМарки, Количество. На закладке ресурсы добавляем 2 строки:
Поле: Количество, Выражение: Сумма(Количество), Рассчитывать по: Заготовка
Поле: Количество, Выражение: Максимум(КоличествоМарки), Рассчитывать по: Марка
Иными словами, для одного поля на каждую группировку можно задать свое выражение
Поле: Количество, Выражение: Сумма(Количество), Рассчитывать по: Заготовка
Поле: Количество, Выражение: Максимум(КоличествоМарки), Рассчитывать по: Марка
Иными словами, для одного поля на каждую группировку можно задать свое выражение
(11) BAPBAP, респектоз, однозначно!!! Не знал этого.
Осталась последняя заморочка, правильно проссумировать вышестоящие группировки как указано на картинке.
Группировку Ось проссумировать получилось через ВычислитьВыражениеСГруппировкойМассив() (может и не в те дебри залез), но вот выше (Объект строительства и Общие итоги) достать никак не могу. (((
![](http://radikall.com/images/2013/12/16/LATwi.jpg)
Осталась последняя заморочка, правильно проссумировать вышестоящие группировки как указано на картинке.
Группировку Ось проссумировать получилось через ВычислитьВыражениеСГруппировкойМассив() (может и не в те дебри залез), но вот выше (Объект строительства и Общие итоги) достать никак не могу. (((
В (13) неверно написал. У нас же в выражении МИНИМУМ. Поэтому, в других группировках тоже будет минимум. Чтобы решить задачу ресурсами надо изменить структуру запроса. Допустим есть таблица с заготовками и таблица с марками. Эти две таблицы надо ОБЪЕДИНИТЬ. В результате, получим что-то типа:
Ось = Ось1, Марка = Марка1, Заготовка = Null, Количество = 0, КоличествоМарки = 10 - строка из таблицы марок
Ось = Ось1, Марка = Марка1, Заготовка = Заготовка1, Количество = 5, КоличествоМарки = 0 - строка из таблицы заготовок
Ось = Ось1, Марка = Марка1, Заготовка = Заготовка2, Количество = 5, КоличествоМарки = 0 - строка из таблицы заготовок
и т.д.
тогда в ресурсах вместо МИНИМУМ() смело используем СУММА()
Ось = Ось1, Марка = Марка1, Заготовка = Null, Количество = 0, КоличествоМарки = 10 - строка из таблицы марок
Ось = Ось1, Марка = Марка1, Заготовка = Заготовка1, Количество = 5, КоличествоМарки = 0 - строка из таблицы заготовок
Ось = Ось1, Марка = Марка1, Заготовка = Заготовка2, Количество = 5, КоличествоМарки = 0 - строка из таблицы заготовок
и т.д.
тогда в ресурсах вместо МИНИМУМ() смело используем СУММА()
(14) BAPBAP, все верно, всё вышло, но появилось одно маленькое но...
с марки остается пустое значение. Если от него пытаться избавиться через Отбор, то пропадают расчеты группировок, поскольку именно от этого значения и ведется расчет.
В принципе, что бы пустое поле не бросалось в глаза, изменил сортировку по Заготовке и это поле переместилось вниз (типа задумка режиссера для лучшей визуализации), но избавиться от него не получилось.
Не, можно конечно обработать массив перед помещением его в СКД и добавить одно из значений из группировки, что бы слились в одну строку. Если ничего цивилизованного не предложится, то так и сделаю.
Поэтому последний вопрос - можно ли цивилизованно избавиться от пустых значений заготовок, что бы расчеты группировок остались?
ПС: Тема и предложенные $m (я ещё подложу немного) в любом случае ваши.
![](http://radikall.com/images/2013/12/16/kzrND.jpg)
с марки остается пустое значение. Если от него пытаться избавиться через Отбор, то пропадают расчеты группировок, поскольку именно от этого значения и ведется расчет.
В принципе, что бы пустое поле не бросалось в глаза, изменил сортировку по Заготовке и это поле переместилось вниз (типа задумка режиссера для лучшей визуализации), но избавиться от него не получилось.
Не, можно конечно обработать массив перед помещением его в СКД и добавить одно из значений из группировки, что бы слились в одну строку. Если ничего цивилизованного не предложится, то так и сделаю.
Поэтому последний вопрос - можно ли цивилизованно избавиться от пустых значений заготовок, что бы расчеты группировок остались?
ПС: Тема и предложенные $m (я ещё подложу немного) в любом случае ваши.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот