Использование диапазона средства выбора даты в качестве фильтра в запросе многомерных выражений

Я создал отчет по демонстрационному кубу продаж. Он включает в себя средство выбора даты с диапазоном (от и до), где событие "при выборе" называется окном даты.
и сводную таблицу с запросом MDX, подобным этому:

SELECT 
        [Time].[Calendar].[Day].[7 Jan 2005]
      : 
        [Time].[Calendar].[Day].[10 Jan 2005] ON 0
FROM [Sales];  

Я хотел бы заменить фиксированные даты в запросе от и до в средстве выбора даты. Как это сделать?


person Mahamadou D.    schedule 19.04.2017    source источник


Ответы (3)


Как упоминалось выше, виджет IcCube Date Picker возвращает допустимое значение MDX для диапазона. Вот демонстрационный отчет с описанной конфигурацией.

Для получения более подробной информации проверьте настройки средства выбора даты и настройки mdx сводной таблицы.

person Artem Lopatiy    schedule 19.04.2017
comment
мне нужен логин для этой демонстрации! - person whytheq; 20.04.2017
comment
@whytheq я исправил ссылку - person Artem Lopatiy; 20.04.2017
comment
если я изменю средство выбора даты, ничего не произойдет с mdx - person whytheq; 20.04.2017
comment
@whytheq (1) Изменить нижний ввод (2) Изменилось содержимое таблицы (3) Представляет значение MDX для таблицы в реальном времени (4) Просто статическое значение, которое следует использовать в конфигурации таблицы storage6.static.itmages.com/i/17/0420/ - person Artem Lopatiy; 20.04.2017

Во многих диалектах mdx, если у вас есть параметр с именем @aDate и предположим, что его текущее значение равно 7 Jan 2005, вы можете добавить к mdx через функцию strToMember следующим образом:

strToMember('[Time].[Calendar].[Day].[' + @aDate + ']')

Или функция strToSet вот так:

strToSet('[Time].[Calendar].[Day].[' + @aDate + ']:[Time].[Calendar].[Day].[' + @aSECONDDate + ']')
person whytheq    schedule 19.04.2017

В icCube я бы предпочел использовать функцию MDX LookupByKey вместо strToMember. Помимо лучшей типизации, компилятор может легко угадать иерархию, что удобно в нескольких сценариях. ИМХО, попробуйте никогда не использовать StrToMember. Что-то типа :

 [Calendar].[Day].lookupByKey( StringToDate(@date,"d/M/yyyy") )

Для разбора строк в даты у вас есть несколько доступных функций ( здесь и здесь).

Я думаю, что фильтр диапазона напрямую возвращает выражение диапазона MDX в событии (свяжитесь с нами напрямую, если это не так).

person ic3    schedule 19.04.2017
comment
(поднято) Я завидую всем тем функциям, которые вы предоставляете для игры!! Желаю, чтобы MS была так же активна (или просто немного активна!), Когда дело доходит до их предложения и реализации mdx. - person whytheq; 19.04.2017