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

JK.*_*JK. 12 .net c# sql-server 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年全部推到第二页.

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

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

小智 8

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


小智 5

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

  • 有趣的是,这个选项根本没有改变任何东西。 (4认同)

JK.*_*JK. 0

问题是我需要在一页上写两年,而不是 1/2 年,即使特定的记录集是在一年中开始的。事实证明,尽管表级别有“保持在一起”选项,但组级别却没有。我在团体层面需要这个选项。我没有使用格式解决方案,而是更改了报告的基础 SQL。如果只有 1/2 年的数据,我会为该年的其他部分创建具有正确日期的记录,但所有其他值均为零。这意味着,如果页面格式正确以保存两年,那么它将始终显示完整的两年,并且一年永远不会被分成两页。我还认为 Mozy 和 John Sansom 提供的答案很好,我对他们都投了赞成票。

谢谢您的帮助!