Ivanhoe,
Цитата:
1. Вы утверждаете, что нужно поменять name column в аттрибуте так, чтобы он возвращал код (например, 33) вместо названия? Т.е. пользователь в ОЛАП-отчете увидит именно 33, а не понятный ему SALES.
Я утверждаю (и KPIWalktrough взятый с msdn тому подтверждение), что NameColumn - это то поле, на которое накладывается фильтр = '33', а не то, что увидит пользователь в отчете. В отчете пользователь видит сумму:
(([Mesures].[Master Amount - Ledger],[Ledger account descriptions].[Ledger account categories].&[33])
+ ([Measures].[Master Amount - Ledger],[Ledger account descriptions].[Ledger account categories].&[48])
что означает дословно 'выбрать сумму AmountMST из LedgerTrans ака измерение
[Mesures].[Master Amount - Ledger],
у которых счету из LedgerTable соответствует категория из LedgerAccountCategory
c фильтром на
NameColumn = 33 ака
[Ledger account descriptions].[Ledger account categories].&[33]' и т.д.
Если как в стандарте, то правильно было бы [Ledger account descriptions].[Ledger account categories].&[SALES]
Цитата:
2. Вы утверждаете, что MDX выражение работает именно с name-column аттрибута, а не с ключом? Т.е. многие другие KPI в этом и других кубах написаны неверно, ведь там повсеместно используется конструкция вида [SIZE=2][Employee].[Status].&[1], т.е. фильтр на значение ключа аттрибута, а не его наименования?
Именно так. В других точно также: Status = 1 означает то же самое, что NameColumn = 1. Под выражением 'NameColumn' в OLAP подразумевается скорее всего что-то типа "именованного столбца", а не аксаптовского "наименования". А KeyColumn содержит уникальный ключ таблицы.