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

Программирование - Практика программирования

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

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

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

 

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

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

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

 

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

 

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

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

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

43

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. TrinitronOTV 05.06.13 18:09 Сейчас в теме
большое спасибо за предоставленный материал о возможностях системы компоновки данных, пригодится в дальнейшей работе...
2. Поручик 4171 05.06.13 22:19 Сейчас в теме
Меня терзают смутные сомнения...
Где же я это видел раньше?
3. anig99 2649 05.06.13 22:19 Сейчас в теме
Почесал левой ногой правое ухо
4. Поручик 4171 05.06.13 22:20 Сейчас в теме
7. anig99 2649 05.06.13 22:43 Сейчас в теме
(4) вычисляемые поля, ресурсы с итогами на разных уровнях, пользовательские поля - более простые и универсальные решения. Макет сложнее менять и он может поплыть, если менять схему отчета пользовательском режиме
user616057_andrig; echo77; Восьмой; kiros; baton_pk; +5 Ответить
5. Поручик 4171 05.06.13 22:22 Сейчас в теме
(3) Предлагаешь вычисляемые поля?
6. Поручик 4171 05.06.13 22:28 Сейчас в теме
(3) Скажи, как правильно чесать правое ухо и я так же буду делать.
8. kiros 51 06.06.13 11:06 Сейчас в теме
Вообще для подобных задач я бы использовал ресурсы как в выражении макета написано, но с суммами и на любом уровне считается одинаково.
9. Natain14 18.03.16 09:08 Сейчас в теме
Спасибо за материал! Очень помогло!
10. Serge_ASB 23.06.16 13:28 Сейчас в теме
Данное решение помогло.
А вот будет ли разница, если группировок несколько, и если нужно результат суммирования в одной группировке использовать в вышестоящей, например, итоговый процент по номенклатуре использовать для расчета по группировке по складам, или по клиентам-покупателям?
Подобная задачка есть. Пока размышляю, с какого боку к ней подойти, если решить в СКД.
11. kiv1c 475 08.12.16 17:35 Сейчас в теме
ОЧЕНЬ помогла статья, спасибо
12. Mialex 17.04.18 15:40 Сейчас в теме
Получилось сделать проще! Надо добавить свое "вычисляемое поле", например, поле средняя цена , выражение = сумма/количество, а затем добавить его в ресурсы. Но! В колонке "Выражение" в ресурсах прописать Сумма(сумма)/сумма(количество). И все работает)
JaneP; simgo83; +2 Ответить
Оставьте свое сообщение