как установить параметр в отчетах icCube, основанный на других параметрах?

У меня есть серверная функция (MDX++) месяцев (значение M, значение H).

Панель инструментов icCube содержит два события, привязанных к двум фильтрам (LOV): @{selM} и @{selH}.

Как присвоить результат функции month(@{selM}, @{selH} новому событию с именем @{selPeriod}, которое обновляется каждый раз при изменении одного из LOV?


person Arthur    schedule 29.09.2017    source источник


Ответы (1)


Возможно, такое событие может быть сгенерировано пользовательским фильтром mdx, основанным на ручном запросе. Вы можете каким-то образом скрыть этот фильтр из пользовательского интерфейса результатов, так как он будет использоваться только в автоматическом режиме.

Filter1 -> generates @{selM}
Filter2 -> generates @{selH}
Filter3 -> hidden, generates @{selPeriod}

Для Filter3 вам нужно переключить конфигурацию данных на MDX и поставить следующий запрос:

WITH
MEMBER ic3Name AS months(@{selM}, @{selH})  // event caption(your function)
MEMBER ic3UName AS months(@{selM}, @{selH}) // event value(your function)
MEMBER ic3PName AS NULL
MEMBER ic3Measure AS 0
MEMBER ic3IsSelected AS true // true to throw the event automatically
MEMBER ic3FilterName as [Measures].[ic3Name]
MEMBER ic3Key as 0
SELECT
{[Measures].[ic3Name],[Measures].[ic3UName],[Measures].[ic3PName],[Measures].[ic3Measure],[Measures].[ic3IsSelected],[Measures].[ic3FilterName],[Measures].[ic3Key]} ON 0,
TopCount([Calendar].[Year], 1) on 1 // any non empty level, to have 1 row in the response
FROM [Sales] // any cube
person Sergey Ryskal    schedule 02.10.2017
comment
Мне пришлось добавить, чтобы изменить его на: MEMBER ic3Name AS month(@{selM}, @{selH}).name MEMBER ic3UName AS month(@{selM}, @{selH}).key Но это работает! Спасибо, - person Arthur; 02.10.2017