2014-11-25 2 views
1

Может ли кто-нибудь помочь мне решить следующую проблему?Spotfire - Dynamic OVER Statement в расчетной колонке

Мы должны создать отчет, который показывает разницу между двумя типами количества на разных уровнях агрегации из той же таблицы данных с параметрами фильтрации. Мы уже пробовали инструкцию OVER в вычисленных столбцах, но не учитываем фильтры, которые пользователь может установить.

Я связал таблицу образцов, которая похожа на нашу таблицу данных. Цель состоит в том, что пользователь может выбрать, что график показывает цифры на выбранном уровне агрегации, но также фильтрует доступные параметры фильтрации.

Уровни агрегации - Уровень 3, Уровень 4, Материал и упаковка. Фильтры представляют собой все столбцы. Кроме цифр (количество прогнозов, количество запросов, дельта и абсолютная дельта).

На графике должно отображаться запрошенное количество и процент Абсолютной Дельты и Суммарного Прогноза на выбранном уровне агрегации.

Наша проблема заключается в том, что поля «Пакет» и «Клиент» не находятся в иерархии материалов, поэтому он блокирует цифры Абсолютной Дельты и вызывает неправильное значение, если мы включим эти поля в оператор OVER с агрегированным значением.

Мой главный вопрос: как может вычисляемый столбец с инструкцией Over быть динамическим, который с учетом фильтров?

Дополнительная информация: Материал находится в иерархии, которая включена во второй лист. На разных уровнях агрегации Дельта должна быть разницей в сумме Прогнозируемого количества и Запрошенного количества, а абсолют является абсолютом ранее детализированной Дельты.

Пример файл: https://drive.google.com/file/d/0B6T-8YUYuuSEb3pQN29JRU5QeGs/view?usp=sharing

+0

Вы построили иерархию в Spotfire? Если нет, попробуйте это ... Вставить> Иерархия, а затем добавьте свои столбцы в правильный иерархический порядок в правой панели. Дайте ему имя (или оставьте его как «Новая иерархия») и нажмите «ОК». Вы увидите иерархию в панели фильтров, и вы можете пересечь и фильтровать иерархию. Это поможет вам двигаться в правильном направлении? – AmbivalentGeek

ответ

1

Рассматривали ли вы с помощью оператора OVER непосредственно при отображении, а не предварительно вычисление нового столбца?

Если вы используете оператор OVER непосредственно в свойстве оси, данные будут вычисляться по мере создания дисплея, поэтому результаты будут отвечать на фильтры пользователя. Calculating at display time

Этот динамический расчет также будет работать для таких вещей, как бары ошибок, то ваши столбики ошибок будут реагировать на фильтры пользователя, а также .: enter image description here

... Наконец, если вам нужно изменить расчет динамически, есть способ сделать это, и я могу объяснить, если вам нужно.

Смежные вопросы