Службы отчетов помещают данные из двух строк DataSet в одну ячейку таблицы. - PullRequest
0 голосов
/ 18 июня 2011

Мне нужно создать отчет с таблицей, которая выглядит следующим образом

             Country 1    Country 2    Country 3    Total
Category 1     1(2)         2(1)         5(6)        8(9)
Category 2     2(3)         2(1)         4(0)        8(4)
Category 3     3(2)         2(1)         3(1)        8(4)
Total          6(7)         6(3)         12(7)       24(17)

Отчет содержит данные о TI WI и информацию о количестве WI за текущую неделю и количество WI за последние недели (в скобках)

Набор данных, на котором основан этот отчет на основе запроса многомерных выражений к кубу хранилища TFS, и имеет такую ​​структуру:

Category    Country    Week   Count
   1           1       this     1  
   1           2       this     2
   1           3       this     5    
   1           1       last     2  
   1           2       last     1
   1           3       last     6    

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

Ответы [ 3 ]

0 голосов
/ 20 июня 2011

В MDX вы можете создать два калька - на этой и на прошлой неделе (конечно, вам нужно изменить это для работы с вашим кубом):

WITH
MEMBER [Measures].[thisWeekCount] AS
    ([Date].[Week].[this], [Measures].[Count])
MEMBER [Measures].[lastWeekCount] AS
    ([Date].[Week].[last], [Measures].[Count])
SELECT
{
    [Measures].[thisWeekCount],
    [Measures].[lastWeekCount]
} ON 0,
{
    ...
} ON 1
FROM [Your Cube]

Затем вы можете использовать их в качестве заполнителей какобъяснил jimconstable, но без функций iif .

0 голосов
/ 21 июня 2011

Спасибо всем за ответы!

Я обнаружил, что основную проблему (службы отчетов допускают только одну меру на столбцах) можно решить с помощью поставщика OLE DB сервера анализа.Есть некоторые недостатки, например, параметры не поддерживаются, но я могу с этим смириться.

0 голосов
/ 19 июня 2011

Rowgroup по категории. Columngroup по стране.

Внутри ячейки у вас должно быть 2 заполнителя со вторым в скобках. Первое выражение должно быть:

=Sum(iif(Fields!Week.Value = "this", Fields!Count.Value, 0))

Второй должен быть:

=Sum(iif(Fields!Week.Value = "last", Fields!Count.Value, 0))
...