SSRS 2012在多个列上的递归层次结构

时间:2012-10-15 12:23:02

标签: reporting-services recursion report hierarchy

我目前正在努力处理我在SSRS 2012中创建的报告。我有一个具有4级层次结构的数据集,并希望创建一个递归层次结构。无论我到哪里,我都会找到在一列中创建此层次结构的方法,并使用填充来区分不同级别。但是,我的报告将导出到Excel,并有机会按列中的值进行筛选。这意味着我需要将层次结构中的每个级别划分为不同的列。

我正在使用位置,所以我有一个Location_ID和一个Parent_Location_ID

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

xxxx
  xxxx
    xxxx
      xxxx
      xxxx
      xxxx
    xxxx
      xxxx
  xxxx
    xxxx
      xxxx
      xxxx

2 个答案:

答案 0 :(得分:0)

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

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

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

Level1  Level2 Level3 .... Level10 MyDataField1 MyDataField2

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

答案 1 :(得分:0)

This tech net reference对于尝试在单个列中解决SSRS中的递归关系的任何其他人都可能有用。在我的情况下,我开始查看多个列,但是一个列最终运行良好。

创建递归层次结构组:

  1. 在“设计”视图中,添加表格,然后拖动要显示的数据集字段。通常,要显示为层次结构的字段位于第一列。
  2. 右键单击表格中的任意位置以选择它。 “分组”窗格显示所选表的详细信息组。在“行组”窗格中,右键单击“详细信息”,然后单击“编辑组”。 “组属性”对话框将打开。
  3. 在“组表达式”中,单击“添加”。网格中会出现一个新行。
  4. 在“列表中的组”中,键入或选择要分组的字段。
  5. 点击高级。
  6. 在递归父列表中,输入或选择要分组的字段。
  7. 单击“确定”。
  8. 运行报告。
  9. 添加缩进以显示层次结构级别。您可以使用以下方法在文本框中添加填充:

    =CStr(2 + (Level()*10)) + "pt"