在Microsoft SQL Server 2005 Reporting Services平台下,报表可以使用交互排序功能对一定范围的数据进行排序,本文基于该功能针对实际开发过程中遇到的问题进行一些经验性总结。 无论是在SQL Server 2005的联机帮助中,还是在Reporting Services相关的书籍中,对报表交互排序的阐述都过于简洁或者语焉不详,如果完全按照其上的阐述进行交互排序操作有时会导致失败。细究其原因,在交互排序中需要注意的有如下几个方面: - 明确排序区域 在报表中有几个概念:数据集、表格、组,这些概念在联机帮助中已经有了较好的阐述,故在此不再赘述。上述几个概念实质上分别代表几个区域,排序的时候需要指定打算排序的区域。
- 明确排序表达式 通常在排序表达式的下拉列表中给出的表达式并不是实际需要的排序表达式,这个时候需要手工添加实际的排序表达式。
- 明确详细信息组与一般性分组的区别 在报表交互排序的设置过程中,详细信息组与一般性分组是有区别的,在作用域内排序表达式结果的选项中分别予以区分。
- 明确什么时候应分组和不应分组 这一点在对详细信息组进行分组时体现较为明显,若只针对详细信息进行分组,则详细信息组不应添加分组字段,否则应将数据放在普通分组里。
示例(具体报表见AdventureWorks Sample Reports里的Territory Sales Drilldown.rdl): 如图1,要在Total Sales文本框上对组“1”里的Sum (Fields!TotalDue.Value)值进行交互排序和对详细信息作用域里的Fields!TotalDue.Value进行排序:图1中“1”组分组方式如图2。
现欲对“1”组对应的“Total Sales”进行交互排序:排序设置见图3。
排序结果对比见图4、图5。

若对详细信息区域进行排序,则在图3中,该详细信息区域不应分组,排序区域选择当前表或者数据集,“计算此作用域内排序表达式的结果”选“详细信息作用域”,方法与上面介绍的类似,在此不再赘述。
另外,交互排序有一个使用起来不太友好的地方,即如果对详细信息区域进行交互排序(实际上是默认折叠的所有分组),点击交互排序的按钮后产生了排序效果,但排序的时候刷新了报表,即使点击前已经展开到详细信息区域,也会因为刷新而返回到报表默认的折叠状态,此时如果要看排序的结果,需要再次展开报表到之前所看到的层次。 … 上述内容选自《Windows IT Pro Magazine国际中文版》2008年第10期,更多精彩内容,敬请参阅这儿,订阅《Windows IT Pro Magazine国际中文版》,请点击这儿。 关于我们 Windows ITPro是业界提供“IT技术信息"与“IT专业咨询服务"的知名品牌,其杂志、社区及Newsletter等服务信息覆盖IT领域内各大企业及相关行业,包括业务决策者、企业技术专家以及各类IT专业人士,200 多个Club,1000多名VIP,影响人群超过30万。无论是平面及电子杂志、线上线下社区、竞赛调查平台、市场活动、圆桌会议、技术培训还是创新产品,Windows ITPro必定是全方位服务信息的最佳提供者。 全文共2494字节 |