Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services SSRS 2012多列递归层次结构_Reporting Services_Recursion_Report_Hierarchy - Fatal编程技术网

Reporting services SSRS 2012多列递归层次结构

Reporting services SSRS 2012多列递归层次结构,reporting-services,recursion,report,hierarchy,Reporting Services,Recursion,Report,Hierarchy,我目前正在努力完成我在SSRS 2012中创建的一份报告。我有一个具有4级层次结构的数据集,希望创建一个递归层次结构。无论我到哪里,我都能找到在一列中创建这个层次结构的方法,并使用填充来区分不同的级别。但是,我的报告将导出到Excel,并有机会按列中的值进行筛选。这意味着我需要将层次结构中的每个级别划分为不同的列 我正在处理位置,因此我有一个位置ID和一个父位置ID 最后,我希望报告中的层次结构如下所示 xxxx xxxx xxxx xxxx xxxx

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

我正在处理位置,因此我有一个位置ID和一个父位置ID

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

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

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

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

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

Level1  Level2 Level3 .... Level10 MyDataField1 MyDataField2
我会在SQL查询中生成这些。这将是一个混乱的、重复的SQL(不是干的),但在SSRS和导出端很容易处理。

对于试图在单个列上解决SSRS中的递归关系的任何其他人都可能有用。在我的例子中,我开始查看多个列,但单个列最终运行良好

创建递归层次结构组:

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

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

    谢谢你的回复。我想使用我已有的数据集,避免混乱的SQL。最后,我在一列中创建了一个递归层次结构,然后通过检查位置的级别,将层次结构中的值隐藏并显示在可见或不可见的列中。这并没有给我想要的全部功能性,因为我不能垂直合并列,但现在它已经足够好了。