我从某人那里继承了一个 SQL Reporting Services .rdl 项目,需要帮助修复一些功能。在报表的每一行中,都有一个子报表。为了节省空间,子报表被分成 3 个。这样在报表的每一行中,它将子报表的数据分成 3 个较小的表。现在,它水平填充这 3 个子报表。(即,如果结果有 9 个值,第一个子表将有 1、4 和 7,第二个子表将有 2、5 和 8 等)有没有办法让它垂直填充子表?(即第一个子表将有 1,2 和 3)
谢谢!
我从某人那里继承了一个 SQL Reporting Services .rdl 项目,需要帮助修复一些功能。在报表的每一行中,都有一个子报表。为了节省空间,子报表被分成 3 个。这样在报表的每一行中,它将子报表的数据分成 3 个较小的表。现在,它水平填充这 3 个子报表。(即,如果结果有 9 个值,第一个子表将有 1、4 和 7,第二个子表将有 2、5 和 8 等)有没有办法让它垂直填充子表?(即第一个子表将有 1,2 和 3)
谢谢!
默认情况下,多列报表应垂直填充。事实上,甚至没有水平填充的选项,所以我想知道它是如何完成的。也许基础查询已被修改?
事实上,我对查询进行了更深入的研究,结果发现列号作为报告参数传递,并且使用列号的模对结果进行了重新排序。我现在没有它,所以我没有确切的语法。
任何尝试这样做的人的更多信息:事实证明,子报表查询生成一个指示行号的列
ROW_NUMBER() OVER (PARTITION BY columnName ORDER BY otherColumn) AS RowNumber
然后在报表中,子报表被包含 3 次。每个子报表都有一个名为 Column 的报表参数,第一个值为 1,第二个值为 2,最后一个值为 0。然后子报表上有一个过滤器
=RowNumber Mod 3 = 列
这样子报表结果被分成 3 个子报表,它们都可以放在同一行以节省空间。