我在数据库中有以下表格:
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的
答案 0 :(得分:1)
要在报告级别解决此问题,您可以设置允许此操作发生的基于表达式的组。
我根据以下数据创建了一个示例:
我设置了两个参数来控制在行和列级别使用哪些列:
对于行组和列组,我使用以下表达式进行分组,并显示在标题中。
行:
=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()
添加到详细信息文本框即可显示实体数量。报告看起来不错:
所以在报告层面做起来也不错。希望这能大致了解所涉及的内容以及是否应该在数据集级别进行。