将长列值吐出到可管理的大小,以便整齐地呈现数据

时间:2015-10-17 10:05:07

标签: sql reporting-services

您好我想知道在这种情况下是否有分割长列值的方法我使用SSRS将带有产品ID数量的不同值与类别中的SSRS中的矩阵/数据透视表一起获取。问题在于,不同类别的数量使我们说报告看起来很漂亮是一场噩梦。有没有动态的方法来分割10个组中的列,以使表看起来更好,更容易阅读。我想在运算符中使用值列表,但这意味着每次添加新类别时都要管理数据。有没有一种动态的方式以尽可能最好的方式呈现数据?有135个不同的类别值

此外,如果有人有任何想法,我愿意接受使报告更好的建议。我是SSRS的新手并试图掌握它。

这是我的问题的一个例子

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:0)

你能做这样的事情: enter image description here

以下给出了步骤(在两列中,向下然后跨越)

enter image description here

答案 1 :(得分:0)

您的列名是否在您在上述评论中注明的SubCat字段下的数据库中返回?如果是这样,我想你的数据集看起来像这样

Subcat   |     Logno
---------+---------------
SubCatA  |       34
SubCatB  |       65
SubCatC  |       120
SubCatD  |       8
SubCatE  |       19

您可以使用Row_Number()函数对此进行编辑,以便还返回每个类别的索引。添加字段

ROW_NUMBER() OVER (ORDER BY SubCat ASC) AS ColID

给你的查询。这将导致以下结果。

Subcat     |     LogNo    |   ColID
-----------+--------------+----------
SubCatA    |       34     |     1
SubCatB    |       65     |     2
SubCatC    |       120    |     3
SubCatD    |       8      |     4
SubCatE    |       19     |     5

现在每个列都有一个数字标识符,您可以在其上执行某些逻辑,以便在页面上很好地排列。

此解决方案涉及Tablix,嵌套在嵌套在Matrix内的Matrix内,如下所示

enter image description here

首先创建一个Matrix(Matrix1),并将其数据源设置为您的数据集。将行组属性设置为对以下表达式进行分组,其中“4”是您希望水平显示的列数。

=CInt(Floor((Fields!ColID.Value - 1) / 4))

enter image description here

然后在矩阵的数据部分(右下角)插入一个矩形,并在此插入一个新矩阵(矩阵2)。删除最左边的行。将列标题设置为Column Name SubCat。这将自动将列分组设置为SubCat。

enter image description here

最后,在Matrix 2的数据部分中添加一个新的矩形并在其上添加一个Tablix。删除标题行,并将其设置为仅一列宽。将数据设置为您要显示的信息,即LogNo。

最后,删除Matrix 1中的Leftmost和Topmost行/列,使其看起来更整洁(注意仅删除列行!不是关联的组!)

然后,当报告运行时,它应该类似于以下内容。请注意我的示例SubCat = ColName和LogNo = NumItems,并且每个SubCat都有多个值。

enter image description here

希望你觉得这很有帮助。如果没有,请要求澄清。