Telerik 公司宣布发布 RadPivotGrid for WPF 和 Silverlight 两个版本的控件,其中包含的新特性有排序,过滤,运算,聚合函数,版式合计列和提示,也包含对 OLAP 的支持。其中包括 RadPivotFieldList ,它是一个能在运行期间对 RadPivotGrid 进行各种设置的控件,并且能让用户轻易修改 RadPivotGrid 的设置和根据当前数据生成不同的报表。
在 RadPivotFieldList 的帮助下,开发者能够修改行,分组列,设置聚合,以及应用过滤、排序数据。控件中包含了一个新的选项名为 Defer Layout Update,它可以立即应用所有的变更。新的排序功能不仅可以以升序或降序对行和列进行排序,还可以对总计列进行排序。
RadPivotFieldList 能让开发者实现如下类型的过滤:
- 标题过滤——基于列表的标题进行过滤,比如只显示包含字母 A 的数据。
- 值过滤——根据已聚合的结果对报表进行过滤。
- 最高 10 位的过滤——根据聚合数据结果进行过滤的基础上,显示头或尾 10 位的数据。
该控件能让用户根据特定的场景,在行或列中对数据进行指定运算后再展示。此外,控件还包括几个预定义的聚合函数功能,如求和,平均值,计数,最大值,最小值,标准差和方差,这些功能都可以在应用程序中使用。
RadPivotGrid 提供了对 tabular,outline 和 compact 风格的报表版式支持,包括能调整小计和合计的位置。新的提示功能为用户提供了针对特定单元格的信息提示,比如单元格的值和相关联的聚合;如果不需要显示的话,也可以禁止显示。
RadPivotGrid 包括了对 OLAP cube 和 key performance indicator (KPI)的支持,其中 KPI 是业务的指标,它能帮助定义和衡量企业在满足其业务目标中的进展。作为开发者,可以在服务端对它们进行定义,并且根据以下的指示器进行性能分析:
- 红色钻石形状——性能差
- 灰色三角形——可以接受
- 绿色圆形——性能好
InfoQ 采访了负责 WPF RadPivotGrid 的产品经理 Hristo Maradjiev,以了解更多关于 RadPivotGrid 的内容:
InfoQ:Defer Layout Update 选项的作用是什么?
Defer update option 让开发者能够选择使用自动或人工更新。如果 Defer update 设置为关闭状态,任何使用 RadPivotFieldList 的更新将立即会更新到 RadPivotGrid 中去,如果 Defer update 设置为打开,则只有点击刷新按钮的时候才会应用更新。
想像一下,你面对要处理的是大量的数据集,并且每种操作——如排序——都要耗费 10 秒。如果 Defer update 被设置为关闭状态,而你选择了对某些字段进行分组汇总,然后排序,并且最终应用了数据筛选,那么所有的这些操作都会按顺序执行:你需要为了分组操作等待 10 秒,然后为排序操作等待 10 秒,为筛选操作等待 10 秒。
Defer update 允许你批量处理多个操作,所有的操作都可以一次执行,因此如果你正与大量的数据打交道,或者正进行针对微软分析服务(OLAP) 这样的的远程服务器操作,这将节省大量的时间。
InfoQ:我想在在项目中使用 RadPivotGrid。在这样的情况下,是否需要强制在 Visual Studio 2012 中增加 RadPivotFieldList 才可以?
不需要,RadPivotFieldList 可以独立使用。
InfoQ:RadPivotGrid 可以跟 MySQL 数据库一起使用么?
只要提供可枚举的对象——如 LocalDataSourceProvider 中的 ItemSource——就可以了。例如,可以使用 Entity Framework 去连接 SQL server:
var entities = new AdventureWorksLT2008R2Entities(); var localDataSourceProvider = new LocalDataSourceProvider(); localDataSourceProvider.ItemsSource = entities.Customers;
查看英文原文: RadPivotGrid with Filters and OLAP
感谢杨赛对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论