Иккуб: мера как фильтр

Iccube - Reporting: я хотел бы использовать определенные значения мер в качестве фильтра.

Например: измерение: продукт - мера: цена

Я хотел бы отфильтровать все продукты, которые< 50€. Обходной путь - это "измерение" второго измерения, но я не хочу этого, потому что схема будет загружаться гораздо дольше.

Необязательно: я могу определить цену как пользовательское свойство измерения.

Примечание: я не хочу использовать что-то вроде этого ([product].CurrentMember.properties("price") = '50'), потому что есть много разных значений

ура J

1 ответ

Решение

Вы можете решить это на сервере или в отчете.

На сервере:

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

В отчетности.

Фильтр пока отсутствует в мастере данных, но вы можете ввести MDX, который фильтрует ваши продукты. Вы можете сделать это с помощью функции фильтра MDX.

Смысл этого решения в том, что если вы запрашиваете определение подвыбора или предложение where и хотите ли вы использовать его при фильтрации ваших продуктов. Использование контекста запроса означает, что если ваш запрос определяет конкретный фильтр, например [MyCountryInFilter], он будет использоваться при оценке меры фильтра.

Filter( [Products] , [Measures].[MyMeasure] )

оценит [MyMeasure] как ( [MyMeasures], [MyCountryInFilter]). Вы действительно можете сделать это независимым от фильтра, используя

Filter( [Products], ( [Country].defaultmember, [MyMeasure] )

Более надежная версия, позволяющая сделать этот "фильтр" независимым, - использование статического набора. Если набор всегда один и тот же, вы можете создать статический набор (определите его в схеме), как описано здесь:

  CREATE STATIC SET [MyFilteredProducts] as Filter( ...

также возможно определить набор, оцененный со статическим контекстом на уровне запроса

WITH 
  STATIC SET [MyFilteredProducts] as Filter( ...
...

Надеюсь, поможет

Другие вопросы по тегам