1

我在数据库中有下表:

    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 列的不同值。

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

你将如何实现这一点?

谢谢,哈雷尔

4

1 回答 1

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()到详细文本框以显示实体计数。报告看起来不错:

在此处输入图像描述 在此处输入图像描述

所以在报告级别上做也不错。希望这可以大致了解所涉及的内容以及您是否应该改为在数据集级别执行此操作。

于 2013-03-07T14:12:51.520 回答