SSRS 2012报告更改了行组和列组

时间:2013-03-07 07:22:31

标签: reporting-services

我在数据库中有以下表格:

    A    B    C    D
    ----------------
    A1   B1   C1   D1
    A2   B2   C2   D2
    A3   B3   C3   D3
    ...
    ...

我想允许用户生成一个报告,在该报告中他可以选择两个表格列,并将它们用作X和Y轴 - 即,获得计数的记录相应的值作为矩阵中的细节

在此示例中,用户选择A列(数据库中的值为A1,A2和A3)和C(数据库中的值为C1,C2,C3)分别为X和Y:

     C1   C2   C3
-----------------
A1 | 100  43   232
A2 | 232  12   23
A3 | 124  23   3434

在本例中,用户分别选择B和D作为X和Y:

     D1   D2   
--------------
B1 | 9    3   
B2 | 88   12   
B3 | 53   23   
B4 | 1    3   

其中标题中的值分别是A,B,C,D列的不同值。

我无法弄清楚是否应该通过更改数据源,矩阵本身来完成,或者这可能是一个应该使用多维数据集解决的复杂问题。

你会如何实现这个?

谢谢, Harel的

1 个答案:

答案 0 :(得分:1)

要在报告级别解决此问题,您可以设置允许此操作发生的基于表达式的

我根据以下数据创建了一个示例:

enter image description here

我设置了两个参数来控制在行和列级别使用哪些列:

enter image description here

对于行组和列组,我使用以下表达式进行分组,并显示在标题中。

行:

=Switch(Parameters!RowGroup.Value = "A", Fields!A.Value
    , Parameters!RowGroup.Value = "B", Fields!B.Value
    , Parameters!RowGroup.Value = "C", Fields!C.Value
    , Parameters!RowGroup.Value = "D", Fields!D.Value
    )

柱:

=Switch(Parameters!ColumnGroup.Value = "A", Fields!A.Value
    , Parameters!ColumnGroup.Value = "B", Fields!B.Value
    , Parameters!ColumnGroup.Value = "C", Fields!C.Value
    , Parameters!ColumnGroup.Value = "D", Fields!D.Value
    )

最后,只需将CountRows()添加到详细信息文本框即可显示实体数量。报告看起来不错:

enter image description here enter image description here

所以在报告层面做起来也不错。希望这能大致了解所涉及的内容以及是否应该在数据集级别进行。