Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News RadPivotGrid with Filters and OLAP

RadPivotGrid with Filters and OLAP

This item in japanese


Telerik has announced the availability of RadPivotGrid for WPF and Silverlight with features such as sorting, filters, calculations, aggregate functions, layouts, total position, and tooltips including support for OLAP. It includes RadPivotFieldList, which is a control that is used for runtime configuration of RadPivotGrid and also enables users to easily modify RadPivotGrid and generate many different reports with the current data.

With the help of RadPivotFieldList, you will be able to modify row, group columns, configure aggregations and apply filtering including the ability to sort data. It includes a new option titled Defer Layout Update which enables you to apply all changes at once. The sorting feature provides an ability to sort rows and columns not only in ascending or descending order but also based on totals.

RadPivotFieldList enables you to apply the following type of filters:

  • Label filter - filters the report based on the Header name such as to show only those items which contain the character A
  • Value filter - filters the report based on one of the aggregates used
  • Top 10 filter - filters the report based on one of the aggregates used, but shows top/bottom results of applied filter.

The control enables you to represent data in each row or column by applying certain specific calculations relevant to the specific scenario. Moreover, it also includes several predefined aggregate functions such as sum, average, count, max, min, standard deviation and variance which you can make use of in your applications.

RadPivotGrid provides support for tabular, outline and compact report layouts including the ability to adjust the position of subtotals and grand totals. The tooltips feature enables you to provide information regarding the items on the particular cell such as its value and associated aggregate with the ability to disable them if not required.

RadPivotGrid includes support for OLAP cube and key performance indicator (KPI), which is a business metric that helps define and gauge the progress of an enterprise in meeting their business goals. As a developer, you can define them on the server and analyze performance based on the following indicators

  • Red diamond - negative performance
  • Gray triangle - acceptable
  • Green circle - positive performance indicator

InfoQ had a chat with Hristo Maradjiev, Product Manager, WPF to know more about RadPivotGrid:

InfoQ: What is the use of Defer Layout Update option?

The Defer update option gives you the ability to choose between automatic or manual updates. With Defer update off, any change that you make using RadPivotFieldList will immediately be reflected in RadPivotGrid while with Defer update on, you have to manually apply your changes by pressing the Refresh button.
Imagine that you are working with a huge dataset and that each operation like sorting takes 10 seconds. If Defer update is off and you choose to group by some field, than sort another, and finally apply a filter, all operations will be executed one by one and you will wait 10 seconds for the grouping operation, than 10 seconds for the sorting, and 10 seconds for the filtering operation.
Defer update allows you to batch multiple operations so that all operations are executed in one go which can save you a lot of time if you are working with huge datasets or if you are working with a remote server like Microsoft Analysis Services (OLAP).

InfoQ: I need to use RadPivotGrid for my project. In such a scenario, should I compulsorily add RadPivotFieldList to Visual Studio 2012?

No, using RadPivotFieldList is not mandatory.

InfoQ: Can I work with RadPivotGrid using MySQL as backend?

As long as you supply an enumerable of object as ItemsSource of LocalDataSourceProvider you are good to go. For example, you could use Entity Framework to connect to an SQL server:
var entities = new AdventureWorksLT2008R2Entities();
var localDataSourceProvider = new LocalDataSourceProvider();
localDataSourceProvider.ItemsSource = entities.Customers;

Rate this Article