我目前正在努力处理我在SSRS 2012中创建的报告。我有一个具有4级层次结构的数据集,并希望创建一个递归层次结构。无论我到哪里,我都会找到在一列中创建此层次结构的方法,并使用填充来区分不同级别。但是,我的报告将导出到Excel,并有机会按列中的值进行筛选。这意味着我需要将层次结构中的每个级别划分为不同的列。
我正在使用位置,所以我有一个Location_ID和一个Parent_Location_ID
最后,我希望报告中的层次结构如下所示。
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
答案 0 :(得分:0)
如果我要设计报告,我会决定层次结构中要处理的最大级别数,比方说10。
然后我会有一个查询返回遇到的最大值,并使用该查询的结果隐藏任何未使用的列。
我的核心数据查询将有一组固定的列:
Level1 Level2 Level3 .... Level10 MyDataField1 MyDataField2
我会在SQL查询中生成这些内容。这将是凌乱的,重复的SQL(不是DRY。)但是它很容易处理SSRS和导出方。
答案 1 :(得分:0)
This tech net reference对于尝试在单个列中解决SSRS中的递归关系的任何其他人都可能有用。在我的情况下,我开始查看多个列,但是一个列最终运行良好。
创建递归层次结构组:
添加缩进以显示层次结构级别。您可以使用以下方法在文本框中添加填充:
=CStr(2 + (Level()*10)) + "pt"