gifts2017

Свои итоги в СКД или расчет среднего значения

Опубликовал Max Черепахин (tamaks) в раздел Программирование - Практика программирования

Описание настройки СКД для вывода в отчете среднего значения ресурса расчитаного на основе итогов других столбцов.

 

Разберем пример:

Клиенту отгружают несколько единиц товара с разной скидкой. Требуется вывести в отчете значения скидок по каждому товару и расчитать среднюю скидку. Создадим отчет на СКД.
Для всех полей по которым требуется выводить итоги зададим на вкладке "Ресурсы" выражение (метод) их расчета. Для Поля "Скидка" зададим метод расчета как "Среднее".

 

Выводим отчет:

 Как видно итог по полю "Скидка" расчитан как среднее арифметическое значений поля, т.е. сумма всех значений деленное на количество значений. Но т.к. объемы отгружаемого товара с разной скидкой различны, то средняя скидка может быть расчитана и другим способом: например как отношение общей суммы отгруженного товара с учетом скидки к общей сумме отгруженного товара. Но тут возникает вопрос: если для расчета значений полей детальных записей в СКД можно прописать формулу, то итоги расчитываются автоматически по выражению указанному на вкладке "Ресурсы", а там, как мы видели ранее, "Среднее" расчитается как среднее арифметическое выводимых значений, как же в этом случае расчитать итог в данной колонке по собственной формуле?
На самом деле это не сложно. Для этого скорректируем наш отчет, добавив в него необходимые поля, которые будут учавствовать в расчете, в нашем случае это "СуммаСоСкидкой" и "СуммаПоПрайсу".

Для Того чтобы СКД "научить" выводить наши итоги проделываем следующие шаги:
1. на вкладке "Настройки" для группировки "" присвоим имя, например "ИтогСКД", для этого вызываем контекстное меню для группировки и нажимаем "присвоить имя";

 

2. на вкладке "Макеты" добавляем "макет заголовка группировки", где выбираем ранее назначенное имя "ИтогСКД";

     

3. рисуем строку макета, где все итоги, расчет которых нас устривает оставляем как есть, а для расчета среднего процента скидки пишем формулу для расчета;

Если все здели верно, то при выводе отчета под ним будут выведены две строки итогов, сначала та, что формируется автоматически, затем созданная Вами.

 Для того что оставить вывод только вашей строки итогов необходимо на вкладке "Настройки" в разделе "Другие настройки" вывода макета, отключить вывод для "Расположение общих итогов по горизонтали" и  "Расположение общих итогов по вертикали" 

 

 

 

 

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Александр Лыткин (TrinitronOTV) 05.06.13 18:09
большое спасибо за предоставленный материал о возможностях системы компоновки данных, пригодится в дальнейшей работе...
2. Сергей Ожерельев (Поручик) 05.06.13 22:19
Меня терзают смутные сомнения...
Где же я это видел раньше?
3. Александр Медведев (anig99) 05.06.13 22:19
Почесал левой ногой правое ухо
4. Сергей Ожерельев (Поручик) 05.06.13 22:20
5. Сергей Ожерельев (Поручик) 05.06.13 22:22
(3) Предлагаешь вычисляемые поля?
6. Сергей Ожерельев (Поручик) 05.06.13 22:28
(3) Скажи, как правильно чесать правое ухо и я так же буду делать.
7. Александр Медведев (anig99) 05.06.13 22:43
(4) вычисляемые поля, ресурсы с итогами на разных уровнях, пользовательские поля - более простые и универсальные решения. Макет сложнее менять и он может поплыть, если менять схему отчета пользовательском режиме
echo77; Восьмой; kiros; baton_pk; +4 Ответить
8. Кирилл (kiros) 06.06.13 11:06
Вообще для подобных задач я бы использовал ресурсы как в выражении макета написано, но с суммами и на любом уровне считается одинаково.
9. Наталья Криулина (Natain14) 18.03.16 09:08
Спасибо за материал! Очень помогло!
10. Сергей Племянников (Serge_ASB) 23.06.16 13:28
Данное решение помогло.
А вот будет ли разница, если группировок несколько, и если нужно результат суммирования в одной группировке использовать в вышестоящей, например, итоговый процент по номенклатуре использовать для расчета по группировке по складам, или по клиентам-покупателям?
Подобная задачка есть. Пока размышляю, с какого боку к ней подойти, если решить в СКД.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа