Текущее время: Вт, июл 22 2025, 08: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 часа


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

Сейчас этот форум просматривают: Google [Bot]


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

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