具有多列内容和固定维度的 s-s-rS 报告
Posted
技术标签:
【中文标题】具有多列内容和固定维度的 s-s-rS 报告【英文标题】:s-s-rS report with multi-column content and fixed dimensions 【发布时间】:2011-07-22 18:18:54 【问题描述】:我需要设计一个报告,其中包含一些我遇到问题的非常具体的要求。
报告需要在顶部和底部有固定的边距(以允许在纸上预先打印内容)。在报告正文中,需要有两列单独的数据(学生信息)。在此之下,需要有一个部分包含将根据其长度(学生课程和成绩信息)包装到新列的信息。此外,课程/年级信息不能分解给定的学年。最后,需要有指示“(End of Column)”和“(End of Transcript)”的消息。
此外,由于数据的性质,我目前将报告的不同部分分为子报告。
设计此报告的最佳方式是什么?
【问题讨论】:
【参考方案1】:您可以使用 Tablix 让您的数据显示在两列中。
对于 tablix 中的行,您可以将“CanGrow”保留为“true”以确保它可以换行,并且您需要根据年份在数据源上设置分组。
您可能需要在数据库中设置一个仅设置为年份的新字段,然后您可以在报告中的该字段上创建一个组。如果是 SQL Server,你可以在 "SELECT" 语句末尾的 "FROM" 语句之前添加以下内容
,DATEPART(YEAR,DateField) AS Year
对于“列结尾”和“成绩单结尾”,您将使用分组。您可以根据需要设置组页眉和页脚以显示消息。
关于设置组的教程:
http://database.blogs.webucator.com/2010/09/10/add-format-and-grouping-to-a-report-in-sql-server-reporting-services-2008/
响应操作 cmets 的更新:
此外,您可以使用表达式 in 对数据进行分组,因此您可能可以使用以下表达式进行分组:
=FORMAT(Parameters!YearField.Value,"yyyy")
【讨论】:
按年份设置列分组实际上是行不通的(因为任何一年的数据只占页面的一小部分),而且通常需要 4 年的时间数据的。我曾考虑尝试将其他数据添加到数据集中以进行分组(基于来自 SP 的数据量),但是,我宁愿不必走那条路(因为它会变得混乱)。 “课程/年级信息不能分解给定年份”是什么意思?如果您的意思是您希望以其他方式平均或汇总数据,则删除详细信息行并仅使用页脚行并根据需要使用 AVG 或 SUM 表达式,并像我刚刚发布的那样对表达式进行分组。如果没有,请告诉我。我知道我们可以解决这个问题:) 对不起...我的意思是给定年份的信息不能跨列分解。另外,我想避免尝试按年份设置列分组,因为没有任何硬性和快速的方法来确保正确分解数据(例如,学年 w 和 x 适合一列,学年 y和 z)。 您应该能够使用 KeepTogether 为 true 并将每一行的单元格内容包装在一个矩形中,以确保它们不会在页面之间被分解。这样一来,您就可以在单个页面上获得一年或多年,并且仍然确保您不会拆分任何单独的年份。这行得通吗? KeepTogether 在矩形的内容上。以上是关于具有多列内容和固定维度的 s-s-rS 报告的主要内容,如果未能解决你的问题,请参考以下文章