|
Как узнать какой член измерения выбран первым?
|
|||
---|---|---|---|
#18+
Товарищи, если кто знает - подскажите пожалуйста. Есть измерение, которое в кубе будет играть роль, можно сказать фильтра. Т.е. пользователь, в OLAP клиенте (Excel) выбирает одно из значений в этом измерении, и по данному значению производится действие. Например: Измерение "К": К |. Name |..Value Пользователь выбирает в поле - фильтре член измерения "К", и далее на значение Value этого члена умножаются значения [measure].[Sale]. Как должен выглядеть запрос вычисляемого поля, содержащего результат умножения? Я так понимаю необходима какая - то функция, определяющая, какой элементы выбран в измерении "К". Может кто подскажет что это за функция? Есть тут ещё одно "но". В Excel можно выбрать несколько членов измерения, поэтому ф-ия наверное должна определять первый из них. Заранее всем ответившим спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2003, 10:04 |
|
Как узнать какой член измерения выбран первым?
|
|||
---|---|---|---|
#18+
То, что выбрал клиент, знает только клиент и должно определяться средствами клиента. На мой взгляд, Вы можете а) перехватить и проанализировать MDX, который формирует клиент при выборе фильтра. В случае Excel, например, ActiveSheet.PivotTables("PivotTable1").mdx: SELECT NON EMPTY HIERARCHIZE(AddCalculatedMembers({DrillDownLevel({[Store].[All Stores]})})) DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON COLUMNS , NON EMPTY HIERARCHIZE(AddCalculatedMembers({DrillDownLevel({[Customers].[All Customers]})})) DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON ROWS FROM [Sales] WHERE ([Measures].[Store Sales], [Time].[1998].[Q1]. ) для одиночного фильтра и WITH MEMBER [Time].[XL_QZX] AS ' Aggregate ( { [Time].[1998].[Q1]. , [Time].[1998].[Q1]. } ) ' SELECT NON EMPTY HIERARCHIZE(AddCalculatedMembers({DrillDownLevel({[Store].[All Stores]})})) DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON COLUMNS , NON EMPTY HIERARCHIZE(AddCalculatedMembers({DrillDownLevel({[Customers].[All Customers]})})) DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON ROWS FROM [Sales] WHERE ([Measures].[Store Sales], [Time].[XL_QZX]) для множественного б) посмотреть, что сидит в поле фильтра на клиенте. В случае Excel, например, пройдитесь по коллекции ActiveSheet.PivotTables("PivotTable1").PageFields, для каждого проверьте св-во CubeField.EnableMultiplePageItems, если True, то смотрите св-во CurrentPageList, иначе CurrentPageName. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2003, 14:04 |
|
Как узнать какой член измерения выбран первым?
|
|||
---|---|---|---|
#18+
Блин, Саша, что за фигня? То, что выбрал клиент, знает только клиент и должно определяться средствами клиента. На мой взгляд, Вы можете а) перехватить и проанализировать MDX, который формирует клиент при выборе фильтра. В случае Excel, например, ActiveSheet.PivotTables("PivotTable1").mdx: Код: plaintext
Код: plaintext
б) посмотреть, что сидит в поле фильтра на клиенте. В случае Excel, например, пройдитесь по коллекции ActiveSheet.PivotTables("PivotTable1").PageFields, для каждого проверьте св-во CubeField.EnableMultiplePageItems, если True, то смотрите св-во CurrentPageList, иначе CurrentPageName. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2003, 14:08 |
|
Как узнать какой член измерения выбран первым?
|
|||
---|---|---|---|
#18+
Спасибо Дед Мазай!\r Просто я хотел максимально сделать всё на уровне Analysis Service, не привязываясь к конкретному клиенту, так как он может поменяться.\r А можно ли как нибудь так.\r Элемент, который выбран в фильтре, я впринципе могу определить выражением типа\r [К].CurrentMember\r И фиг с ним, что пользователь выбрал несколько элементов - это его проблема, пусть в этом случае не работает.\r Но, (извиняюсь за тупость) я что то не понимаю как добраться до уровня Value уже известного члена.\r Выражение типа [K]. CurrentMember.[Value] не проходит (пользователь выбирает в поле фильтра именно наименование единицы, а не само Value). Что то я тут туплю.\r И на самом деле задача у меня посложнее. Я всё пытаюсь решить проблему описанною мной в /topic/18713.\r В том случае пользователь выбирает наименование единицы измерение в измерении "ЕдиницыИзмерения".\r Я так думал что по известному выбранному члену ([ЕдиницыИзмерения].currentnumber) я смогу каким нибудь образом помножить члены меры с данными о продаже на соответсвующие коэффициенты в измерении "КоэффициекнтыПересчётаЕдиниц" (они связаны с "ЕдиницыИзмерения" по Id единицы.\r Но встаёт вопрос, как помножить данные о продажах на нужные коэффициенты?\r Скажите хотя бы как добраться до Value измерения "К" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2003, 14:25 |
|
Как узнать какой член измерения выбран первым?
|
|||
---|---|---|---|
#18+
А что есть Value? И во-вторых. Меня зовут Маздай. Вы что все, сговорились? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2003, 14:50 |
|
Как узнать какой член измерения выбран первым?
|
|||
---|---|---|---|
#18+
Сорри! Маздай, так Маздай! :) Value есть в моём примере: ..... Измерение "К": К |. Name |..Value ..... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2003, 07:08 |
|
|
start [/forum/topic.php?fid=49&fpage=415&tid=1873583]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 246ms |
total: | 357ms |
0 / 0 |