Sql server 包装SQL报告矩阵

Sql server 包装SQL报告矩阵,sql-server,sql-server-2005,reporting-services,Sql Server,Sql Server 2005,Reporting Services,我有一个SQL报表矩阵,我希望它打印在A4纸上。如果矩阵有少于4列,那么它适合,但超过4列,我希望矩阵包装,每页仅显示4列。这可能吗?我正在本地模式下使用SQL Reporting 2005。我不这么认为。我发现,导出到excel然后打印是我发现的打印SSRS矩阵报告最灵活的方式,尤其是因为我的大多数用户都很熟悉excel 我不这么认为。我发现,导出到excel然后打印是我发现的打印SSRS矩阵报告最灵活的方式,尤其是因为我的大多数用户都很熟悉excel 我找到了一项工作: 首先,我在数据源中添

我有一个SQL报表矩阵,我希望它打印在A4纸上。如果矩阵有少于4列,那么它适合,但超过4列,我希望矩阵包装,每页仅显示4列。这可能吗?我正在本地模式下使用SQL Reporting 2005。

我不这么认为。我发现,导出到excel然后打印是我发现的打印SSRS矩阵报告最灵活的方式,尤其是因为我的大多数用户都很熟悉excel

我不这么认为。我发现,导出到excel然后打印是我发现的打印SSRS矩阵报告最灵活的方式,尤其是因为我的大多数用户都很熟悉excel

我找到了一项工作:

首先,我在数据源中添加了一个名为column count的字段。因为数据源是在业务对象中构建的,所以我很容易知道有多少列数据。 接下来,我在我的报告上创建了一个列表,并将矩阵移动到列表中。 我创建了组表达式=天花板字段!列表的ColumnCount.Value/4。 简言之,我告诉列表每4列中断一次。这将导致矩阵在4列之后拆分

这不会在所有情况下都起作用,可能会搞砸分类计数,但它在我的应用程序中起作用

免责声明:这不是我的想法……我从中改编。

我找到了一个解决方案:

首先,我在数据源中添加了一个名为column count的字段。因为数据源是在业务对象中构建的,所以我很容易知道有多少列数据。 接下来,我在我的报告上创建了一个列表,并将矩阵移动到列表中。 我创建了组表达式=天花板字段!列表的ColumnCount.Value/4。 简言之,我告诉列表每4列中断一次。这将导致矩阵在4列之后拆分

这不会在所有情况下都起作用,可能会搞砸分类计数,但它在我的应用程序中起作用


免责声明:这不是我的想法……我改编自。

没有办法从本质上包装列;Mboy上面的解决方案与我过去所做的非常相似,因此我不会在这里重复他的步骤,尽管我会警告您:对于具有大量列的矩阵,您将以指数方式增加报告中的页数。在您的情况下,这可能不是问题;但我们发现,在大多数情况下,不包装列在页面输出方面更便宜。

没有办法从本质上包装列;Mboy上面的解决方案与我过去所做的非常相似,因此我不会在这里重复他的步骤,尽管我会警告您:对于具有大量列的矩阵,您将以指数方式增加报告中的页数。在您的情况下,这可能不是问题;但我们发现,在大多数情况下,就页面输出而言,不包装列更便宜。

根据,Tablix数据区域水平分页的方式与表垂直分页的方式大致相同,也就是说,您可以在组更改时指定分页符。还有一篇MSDN文章建议使用分页表达式,但是MBoy已经解释了这种技术,所以我不会重复它,只是说它是一种认可的技术。

根据,Tablix数据区域水平分页的方式与表垂直分页的方式大致相同,也就是说,您可以在组更改中指定分页符。还有一篇MSDN文章建议使用分页表达式,但MBoy已经解释了这种技术,所以我不再重复,只是说这是一种认可的技术。

继MBoy的回答之后,我想在一页上显示多个图表,但图表的数量会因数据而异。我想要的是在一行上显示两个图表,并根据需要显示尽可能多的行。我做了如下工作:

正如MBoy所建议的,我在数据中创建了一个名为[ChartNumber]的“计数”字段,每个图表增加一个,因此如果我有7个图表,行的编号将为1-7。 为了实现这一点,我使用densite_RANK SQL函数在查询中创建了一个字段,例如densite_RANK OVER ORDER BY[Data]。[ItemtoCount]as[ChartNumber]。 因此,如果我希望每个部门都有一个不同的图表,我可以使用[数据][部门]作为[图表编号]

我在表单中添加了一个列表并绑定到我的数据集

然后我将行组设置为group on=CeilingFields!ChartNumber.Value/2

然后我在=CeilingFields上添加了一个column组!ChartNumber.Value Mod 2

在列表中创建一个图表并预览,您应该可以在每行上看到两个并排的图表

我使用了图表,但是你可以很容易地在列表中放入矩阵或任何其他项目


编辑:n列的一个更通用的解决方案是=CeilingFields!ChartNumber.Value/n和=Ceilingn*字段!ChartNumber.Value Mod n

关于MBoy的回答,我想在一页上显示多个图表,但图表的数量会根据数据的不同而有所不同。我想要的是 w一行上有两个图表,需要的行数尽可能多。我做了如下工作:

正如MBoy所建议的,我在数据中创建了一个名为[ChartNumber]的“计数”字段,每个图表增加一个,因此如果我有7个图表,行的编号将为1-7。 为了实现这一点,我使用densite_RANK SQL函数在查询中创建了一个字段,例如densite_RANK OVER ORDER BY[Data]。[ItemtoCount]as[ChartNumber]。 因此,如果我希望每个部门都有一个不同的图表,我可以使用[数据][部门]作为[图表编号]

我在表单中添加了一个列表并绑定到我的数据集

然后我将行组设置为group on=CeilingFields!ChartNumber.Value/2

然后我在=CeilingFields上添加了一个column组!ChartNumber.Value Mod 2

在列表中创建一个图表并预览,您应该可以在每行上看到两个并排的图表

我使用了图表,但是你可以很容易地在列表中放入矩阵或任何其他项目

编辑:n列的一个更通用的解决方案是=CeilingFields!ChartNumber.Value/n和=Ceilingn*字段!图表编号。数值模式n