Текущее время: Вт, июл 22 2025, 14:04

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Суммирование значений для узлов иерархии.
СообщениеДобавлено: Пт, фев 03 2012, 12:46 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Чт, дек 29 2011, 11:05
Сообщения: 48
Добрый день господа проблемма в следующем: есть отчёт и необходимо чтобы значение верхнего узла иерархии рассчитывалось как сумма вложенных узлов этой самой иерархии. В отчёте применён рассчитанный показатель: "Сумма на отчётный период", который выводится по иерархии основного счёта и представляет собой сумму значений двух показателей: "Сумма Д/К" и "Сальдо НарастИтогом". Также на показатель "Сумма на отчётный период" применяется фильтр "больше или = 0" таким образом после работы этого фильтра(условия) значения узлов иерархии считаются неправильно. Вот вид до применения условия: Изображение
А вот после применения условия: Изображение
Пробовал играть с агрегацией, рассчётом, куммулятивностью и прочими делами-ничего не выходит. Выходит, что после применения условия сумму нельзя пересчитать?

Красным выделен результат, а жёлтым значения узлов.

Благодарен!


Последний раз редактировалось klopokakikus Пт, фев 03 2012, 12:48, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Суммирование значений для узлов иерархии.
СообщениеДобавлено: Пт, фев 03 2012, 12:47 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Чт, дек 29 2011, 11:05
Сообщения: 48
Прошу прощения, чтобы изображения отражались на красный крестик нужно щёлкнуть)

Задача еще немного поменялась: в самых подробных(нижних узлах) могут быть отрицательные значения, но 2 уровень дерева должен содержать уже только положительные занчения. Т.е. если на самых нижних узлах содержатся занчения -10 -5 и 20 например, то результат уровня выше будет 5, а если -10 -5 и 10, то оставляем только +10 и результат уровня выше, тоже будет +10.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Суммирование значений для узлов иерархии.
СообщениеДобавлено: Чт, фев 09 2012, 14:47 
Специалист
Специалист

Зарегистрирован:
Чт, фев 24 2005, 17:48
Сообщения: 160
Откуда: Красногорск
Иерархия суммирует - играться с настройками почти бесполезно.
У Вас не однозначная логика - и если у Вас в иерархии всего 2а уровня, то вариант есть, больше это проблема.

Вы можете попробовать использовать функцию leaf - таким образом Вы можете отследить узел это или лист.

Формула - показывается пользователю
Показатель А - сумма всех чисел
Показатель Б - сумма только положительных чисел

Формула = Если не узел*Показатель А + Если узел*( Показатель А>0*Показатель А + Показатель A<=0*Показатель B)

Но в чем проблема с 3 мя уровнями... в том, что он складывает все нижестоящие листы, а не узлы.
Т.е.

L01 +75 >> по вашей логике оставляем +75 и вам прийдеться объяснять почему +15 и +85 в сумме дают +75, а не +100
L011 -10 >> +15 по вашей логике
L0111 +10
L0112 -25
L0113 +5
L02 +85 >> по вашей логике оставляем +85
L0111 +100
L0112 - 10
L0113 - 5

Либо оставьте логику - суммировать только положительные значения... тогда сработает и выше 2го уровня

Есть ещё вариант - если у Вас узлы иерархии не текстовые, т.е. вы как-бы агрегируете на позиции которые реально существуют в мастер-данных.
Вы можете создать куб (либо виртуальный, чтобы на лету) - просчитаете значения по заданной логике (ABAP вам в помощь) и на проведенные узлы второго уровня положите нужные вам значения. Далее через мультик сооединяете два этих куба, в отчета у Вас:

Формула - показывается пользователю
Показатель А - 1й куб - данные с листов
Показатель Б - 2й куб - данные с проведенных узлов (в иерархии можно настроить - скрывать проведенные узлы)

Используется таже функция leaf
Формула = Если узел*Показатель Б + Если не узел*Показатель A

p.s. Надеюсь помог если не решить, то по крайней мере осознать.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB