2016-11-07 9 views
0

У меня есть отчет с 4 параметрами;Уровень иерархии для отображения от уровня ниже в отчете SSRS

@LevelParameterCheat; Hierarchy Level, this is the level inside the cube 
@DimOrganizationCustomerHierarchy; Organizational Level 
@FromDimDateDateSK/@ToDimDateDateSK; used for filtering 

Ниже приведен запрос DataSet MDX;

SELECT NON EMPTY { [Measures].[Count] } ON COLUMNS, NON EMPTY 
{ (DESCENDANTS([Dim Organization].[Customer Hierarchy].Levels(@LevelParameterCheat).ALLMEMBERS)) } 
DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME, PARENT_UNIQUE_NAME, LEVEL_NUMBER ON ROWS FROM (SELECT ( 
STRTOSET("[Dim Organization].[Customer Hierarchy].&[" + @DimOrganizationCustomerHierarchy + "]", CONSTRAINED)) ON COLUMNS FROM (SELECT (STRTOMEMBER("[Dim Date].[Date SK].&[" + Format(@FromDimDateDateSK,"yyyyMMdd") + "]", CONSTRAINED) : 
STRTOMEMBER("[Dim Date].[Date SK].&[" + Format(@ToDimDateDateSK,"yyyyMMdd") + "]", CONSTRAINED)) 
ON COLUMNS FROM [Portal Data Mart])) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS 

Что мне нужно: во время выполнения пользователь знает свой уровень и даты для фильтрации. Отчет должен отображать все данные с выбранного уровня Org.

Что я ищу; Мне нужно как-то использовать уровень Org для запроса куба и поискать определенный уровень выбранного Org и подключить его в функции DECENDANTS, чтобы он отображался только с этого уровня.

Что я сделал; ... .ahhhhgggg для многих испытаний и ошибок . Последний должен был попытаться получить уровень делает что-то вроде этого ...

WITH MEMBER MEASURES.LevelNumber AS [Dim Organization].[Customer Hierarchy].&[@DimOrganizationCustomerHierarchy].Level.Ordinal 

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

{ (DESCENDANTS(STRTOSET("[Dim Organization].[Customer Hierarchy].Levels(“level “" + LevelNumber + ").ALLMEMBERS)"))} 

Ну, что-то не так, потому что это не работает. Я очень новичок в MDX и не испытываю синтаксиса, поэтому, если кто-то может указать мне в правильном направлении, я был бы очень признателен. Пока что запрос выше работает над отчетом, потому что я вручную вводил комбинацию Org/Level, но пользователь не знал бы, что такое их уровень. Я занимаюсь этим почти две недели и должен это исправить. Я чувствую, что я близок, но пока нет. Пожалуйста, помогите

enter image description here

enter image description here

ответ

0

ну вот ответ на проблему;

`ВЫБОР непустой {[Measures]. [Count]} на колоннах, непустым

{(Происходящие (StrToMember ("[Dim Организация]. [Иерархия клиентов]. & [" + @DimOrganizationCustomerHierarchy + "]", ПРЕПЯТСТВОВАЛИ) .Level.ALLMEMBERS))}

ИЗМЕРЕНИЕ СВОЙСТВА MEMBER_CAPTION, MEMBER_UNIQUE_NAME, PARENT_UNIQUE_NAME, LEVEL_NUMBER НА ROWS FROM (SELECT ( StrToSet ("[дим организации]. [Иерархия клиентов]. & [ "+ @DimOrganizationCustomerHierarchy +"] ", CONSTRAINED)) ON COLUMNS FROM (SELECT ()STRTOMEMBER ("[Dim Date]. [Дата SK]. & ["+ Формат (@FromDimDateDateSK," yyyyMMdd ") +"] ", CONSTRAINED): STRTOMEMBER (" [Dim Date]. [Дата SK]. & ["+ Формат (@ToDimDateDateSK," yyyyMMdd ") + ] ", CONSTRAINED)) ON COLUMNS FROM [Portal Data Mart])) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS`