如何将标题添加到报表中动态创建的矩阵的列中?

时间:2019-06-12 13:30:45

标签: reporting-services

我有一个矩阵,该矩阵在运行时会创建3列,并且我无法按照客户端的要求向那些动态创建的列添加标题,并且无法在线找到任何修复程序或示例。我希望将矩阵和文本框放入表中可能会起作用,但是发生与以下图像相同的结果。 这看似简单的事情是不可能的,还是我没有找到解决方法?

Design View

Result Textbox displayed after columns

Row and Column Groups visible

1 个答案:

答案 0 :(得分:0)

如果每个NTLH2值都有3个MTLH1值,则可以执行以下操作... (因为您未提供任何示例数据,所以我从示例WideWorldImporters数据库中生成了一些示例数据)。我的查询给了我5列,结果与下面类似。

CustomerCategoryName  Qtr  Mnth  MnthName  OrderValue
Computer Store         1    1     Jan      10
Computer Store         1    2     Feb      12
Computer Store         1    3     Mar      15
Computer Store         2    4     Apr      20
Corporate              1    1     Jan      11
....

基本上我们每个季度要呆3个月

然后,我向报表中添加了一个矩阵控件,将CustomerCategoryName拖到行,Mnth拖到列,Qtr上方的Mnth使其成为父列,最后OrderValue到数据“单元格”。

我实际上将Mnth字段换为列标题中的MnthName以便于阅读,但是列顺序仍然按Mnth(数字版本)排序。然后,我将列标题居中以提高可读性。

最终设计如下

enter image description here

如果我们运行报告,结果将如下所示。

enter image description here

您可以看到我们有4个组,每个季度一组,每组3列。

如果要自定义季度名称,可以根据需要通过更改单元格中的表达式来执行。例如,如果我们希望除第二个季度以外的所有季度都在数字前加“ Q”,那么我们可以使用类似的字符串。

 =IIF(
    Fields!Qtr.Value = 2, 
    "Second Quarter",
    "Q" + Cstr(Fields!Qtr.Value)
    )

现在最终输出看起来像这样...

enter image description here

或者,您可以在t-sql中生成所有列标题,因此在我有MnthName的地方,您可以创建一个Quartername或类似名称。

希望这是有用的。如果没有,请发布示例数据和该示例数据的预期结果,然后我将修改答案。