繁体   English   中英

使用Reporting Services将组保留在一个页面上

[英]Keep Group on One Page using Reporting Services

我使用Reporting Services创建了一个报告作为C#应用程序的一部分,我找不到我以前在其他环境中看到的一些功能。 我相信MS Access和Crystal报告都有一个名为“Keep Together”的选项,这样您就可以在一个页面上保留特定的数据分组,而不是将信息分成两页。

当我的报表在C#应用程序中本地呈现并使用.net报表查看器查看时,如何使用2005 Reporting Services执行此操作。 基本上,我想在一个页面上保留特定年份的所有记录。 我正在使用Visual Studio 2008。

年份是列之一,一年的行数始终小于页面。 我的报告只使用一个表,按年度分列最里面的分组,然后按客户名称进行另一个外部分组。

目前我可以在报告中使用两年的数据,但是,如果数据在第一年的中途开始,那么我得到以下内容:

例:

第一页:2004年的1/2,因为数据在04年中途开始

整个2005年

2006年上半年

第2页:2006年下半年

我宁愿做的是将2006年全部推到第二页。

我目前正在使用表格来处理报告中的所有数据。 表级别有一个保持在一起的选项,但我需要一个在组级别。 在这种情况下按年分组。

我们非常感谢您提供的任何帮助。

  1. 在报告中插入“列表”。
  2. 在其“Tablix属性”下,将“数据集名称”属性设置为数据集名称。
  3. 在设计视图中右键单击列表,然后选择“行组>组属性”。
  4. 在“组属性”窗口中,单击“组表达式”下的“添加”按钮,然后选择要在页面中分组的字段。
  5. 之后,您可以在行组内为您的详细数据插入“表”。
  6. 呈现报表后,报表会在分页符之间将数据保留在组内。

请在“行组”部分下的同一页面中单击要保留的组。 单击所需的组后,在属性部分中将Keep Together选项设为True ”。 而已。 它对我有用。

只是为John的回答添加一点。 对于SSRS 2005,List和Table对象确实具有KeepTogether属性,这意味着它们将尝试将所有内容保留在一个页面上。 我认为最好的方法是首先遵循约翰的建议。

好的,您需要做的是首先将报告页面大小定义为足以包含整个数据区域。

看到:

http://msdn.microsoft.com/en-us/library/bb677374.aspx

然后,您需要在Matrix中向分组添加分页符。 见下文:

http://msdn.microsoft.com/en-us/library/ms156434.aspx

使用Rectangle元素并将所有控件复制并粘贴到其中。 在tke矩形属性上,选中用于将内容保持在一起的框。 如果您不想要额外的线条,请不要包含边框。

我在页脚元素之外有一些项目,我需要一个页脚。 我只想在最后一页上使用它们,所以我无法使用标准页脚部分。 通过将它们放在矩形中我避免在组的中间分页。

问题是我需要在一页上花两年时间,即使特定的记录集开始于一年中的一半,也不需要半年。 事实证明,即使在表级别存在“保持在一起”选项,组级别也没有。 我在组级别需要此选项。 我没有使用格式解决方案,而是更改了报表的基础SQL。 如果只有1/2年的数据,我为年份的其他部分创建了正确日期的记录,但是所有其他值都为零。 这意味着如果页面格式正确,可以保存两年,那么它将始终显示两个完整年份,一年将永远不会被打破两页。 我也认为Mozy和John Sansom提供的答案很好,我把它们都投了出来。

谢谢您的帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM