Несогласованное поведение свертывания в объекте сетки PerformancePoint

У меня есть базовая панель инструментов, которая состоит из одного объекта «сетка», отображающего 3 показателя во времени, разбитых по иерархии бизнес-единиц...

При фильтрации по одному элементу на любом из уровней иерархии бизнес-единиц все сводится правильно...

введите здесь описание изображения

Однако, когда я фильтрую более одного элемента на одном уровне, сводные значения больше не основаны на визуальных итогах...

введите здесь описание изображения

На изображении выше значения в строке «Все» представляют значения для всей неотфильтрованной иерархии бизнес-подразделений. Было бы идеально, если бы сетка сворачивалась, как если бы был включен «VisualTotals»… независимо от выбора фильтра. В этом случае для второго изображения выше я ожидаю, что значения в строке «Все» будут выглядеть так...

PO E-PO Count = 3531     (497 + 3034)
PO Count =      7923     (2094 + 5829)

Я рассматривал возможность использования многомерной функции VisualTotals(), но предпочел бы не настраивать запрос, потому что я где-то читал, что это снижает способность конечных пользователей копаться вверх/вниз/поперек.


person Bill Anton    schedule 06.02.2012    source источник


Ответы (1)


Оказывается, именно так работает PPS. В итоге я использовал профилировщик для захвата MDX, сгенерированного в обоих сценариях, а PPS использует вычисляемый член для агрегирования множественного выбора (вместо использования SUBSELECT, как в Excel), поэтому, когда уровень ROWS объединяется вместе с функцией HIERARCHIZE, вы получаете эффект невизуальных тоталов...

WITH MEMBER [Business Unit].[Segment Division Plant].[ Aggregation] AS 
Aggregate
(
  {
    [Business Unit].[Segment Division Plant].[Plant].&[PAK]&[FLG]&[2520]
   ,[Business Unit].[Segment Division Plant].[Plant].&[PAK]&[FLG]&[2504]
  }
) 
,SOLVE_ORDER = 0 
SELECT

...<snip>...

    Hierarchize
    (
      {
        [Business Unit].[Division Plant].[All]
       ,Descendants
        (
          [Business Unit].[Division Plant].[All],
         ,AFTER
        )
      }
    ) ON ROWS

...<snap>...

Если бы он использовал SUBSELECT, такой как Excel, поведение представляло бы VisualTotals, а MDX выглядел бы следующим образом...

  FROM 
  (
    SELECT 
      {
        [Business Unit].[Segment Division Plant].[Plant].&[PAK]&[FLG]&[2504]
       ,[Business Unit].[Segment Division Plant].[Plant].&[PAK]&[FLG]&[2520]
      } ON COLUMNS
   FROM [<cube name>]
  )
person Bill Anton    schedule 25.02.2012