1

我目前正在为我在 SSRS 2012 中创建的报告而苦苦挣扎。我有一个具有 4 级层次结构的数据集,并且想要创建一个递归层次结构。我到处寻找方法来在一列中创建此层次结构并使用填充来区分不同级别。但是,我的报告将被导出到 Excel,并有机会按列中的值进行过滤。这意味着我需要将层次结构中的每个级别划分为不同的列。

我正在处理位置,所以我有一个 Location_ID 和一个 Parent_Location_ID

最后,我希望报告中的层次结构如下所示。

xxxx
  xxxx
    xxxx
      xxxx
      xxxx
      xxxx
    xxxx
      xxxx
  xxxx
    xxxx
      xxxx
      xxxx
4

2 回答 2

0

如果我要设计报告,我会决定层次结构中要处理的最大级别数,比如说 10。

然后我会有一个查询返回遇到的最大值,并使用该查询的结果来隐藏任何未使用的列。

然后,我的核心数据查询将具有一组固定的列:

Level1  Level2 Level3 .... Level10 MyDataField1 MyDataField2

我会在 SQL 查询中生成这些。这将是混乱的、重复的 SQL(不是 DRY。)但在 SSRS 和导出端很容易处理。

于 2012-10-15T13:55:59.447 回答
0

此技术网参考可能对任何其他试图解决 SSRS 中单个列上的递归关系的人有用。就我而言,我开始查看多个列,但单个列最终运行良好。

要创建递归层次结构组:

  1. 在设计视图中,添加一个表,然后拖动数据集字段进行显示。通常,要显示为层次结构的字段位于第一列中。
  2. 右键单击表中的任意位置以将其选中。分组窗格显示所选表的详细信息组。在“行组”窗格中,右键单击“详细信息”,然后单击“编辑组”。组属性对话框打开。
  3. 在组表达式中,单击添加。新行出现在网格中。
  4. 在 Group on 列表中,键入或选择要分组的字段。
  5. 单击高级。
  6. 在 Recursive Parent 列表中,输入或选择要分组的字段。
  7. 单击确定。
  8. 运行报告。

添加缩进以显示层次结构级别。您可以使用以下方法将填充左侧添加到文本框:

=CStr(2 + (Level()*10)) + "pt"
于 2013-10-29T23:08:46.760 回答