The TelerikData.dll and ChartView.dll should only be referenced when one needs to use the Export or Bind-to-ChartView functionality respectively. With the current implementation, when someone wants to merge the PivotGrid.dll in their application, the TelerikData.dll and ChartView.dll will always be required to merge because assemblies are resolved statically when merging.
Currently the AdomdDataProvider supports only AdomdClient version 10.0 which supports Microsoft SQL Server 2008. Add support for newer versions.
Description: One should be able to resize row header cells programmatically as it is with the mouse currently.
AutoSizeRows property which allows autosizing both header rows and data rows.
Include a way for the developers to set the height of the header in code
Currently the only way to recognize something changed as accurate as possible is to use StatusChanged on the DataProvider, but that does not tell apart from a structure change or just a click on the Update button… it would be nice to have such events available (onUpdate, onFieldListModified etc)
ADD. RadPivotGrid - add ability to filter by more than one condition - composite filters
Currently, you can only copy the contents of the data cells to the clipboard and it is not possible to include the column/row header names.
ADD. RadPivotGrid - add single selection mode and expose the selected cell in property
Consider the pivot PivotGrid >> Binding With RadChartView example in our demo application. RadChartView shows all cells that are selected and there is no api to interpolate or filter them.
It should be possible to group the fields in the "Choose fields" are when using LocalDataSourceProvider because in some cases when you join a few tables, you might end up with a large number of fields.
Implement Right-to-Left support for RadPivotGrid.
Need to have the ability to resize the height of the aggregate area along with other features that will help the user see/discern the labels properly
Request is to have the ability preferably using a mouse drag to change the height of the column headers in the grid. We can already do that for data rows of the grid, but it is not possible currently to do the same for the header row.
RadPivotGrid Implement logic when the user clicks on a cell to get the underlying data
Until the feature gets implemented create a custom PivotFieldListVisualItem and translate each of the items individually: public partial class Form1 : Form { public Form1() { InitializeComponent(); this.radPivotFieldList1.RowLabelsControl.CreatingVisualListItem += ListControl_CreatingVisualListItem; this.radPivotFieldList1.ColumnLabelsControl.CreatingVisualListItem += ListControl_CreatingVisualListItem; this.radPivotFieldList1.ReportFiltersControl.CreatingVisualListItem += ListControl_CreatingVisualListItem; this.radPivotFieldList1.ValuesControl.CreatingVisualListItem += ListControl_CreatingVisualListItem; } private void ListControl_CreatingVisualListItem(object sender, CreatingVisualListItemEventArgs args) { args.VisualItem = new MyPivotFieldListVisualItem(this.radPivotFieldList1.ViewModel); } } public class MyPivotFieldListVisualItem : PivotFieldListVisualItem { public MyPivotFieldListVisualItem(FieldListViewModel viewModel) : base(viewModel) { } protected override void CreateChildElements() { base.CreateChildElements(); CommandBarDropDownButton btn = this.GetType().BaseType .GetField("button", BindingFlags.Instance | BindingFlags.NonPublic) .GetValue(this) as CommandBarDropDownButton; if (btn != null) { btn.DropDownMenu.PopupOpening += DropDownMenu_PopupOpening; } } private void DropDownMenu_PopupOpening(object sender, System.ComponentModel.CancelEventArgs args) { foreach (RadItem item in ((RadDropDownMenu)sender).Items) { // Validate and localize each of the items if (item is RadMenuItem) { item.Text = "MyText"; } } } }
Until the feature becomes available use the following workaround: MyPivotGridChartDataProvider chartProvider = new MyPivotGridChartDataProvider(this.radPivotGrid1.PivotGridElement); this.radPivotGrid1.ChartDataProvider = chartProvider; this.radChartView1.DataSource = this.radPivotGrid1; this.radChartView1.ShowLegend = true; this.radPivotGrid1.ChartDataProvider.SeriesAxis = Telerik.Pivot.Core.PivotAxis.Rows; this.radPivotGrid1.ChartDataProvider.GeneratedSeriesType = Telerik.WinControls.UI.GeneratedSeriesType.Line; public class MyPivotGridChartDataProvider : PivotGridChartDataProvider { public MyPivotGridChartDataProvider(RadPivotGridElement pivotGridElement) : base(pivotGridElement) { } public override void UpdateChartData() { base.UpdateChartData(); foreach (ChartSeries series in this.ChartView.Series) { CartesianSeries cartesianSeries = series as CartesianSeries; if (cartesianSeries == null) { continue; } cartesianSeries.PointSize = new SizeF(7, 7); BindingList<PivotChartModelPoint> newData = new BindingList<PivotChartModelPoint>(); BindingList<PivotDataPoint> points = cartesianSeries.DataSource as BindingList<PivotDataPoint>; foreach (PivotDataPoint point in points) { PivotChartModelPoint current = new PivotChartModelPoint() { Group = point.PivotGroup }; if (point.Value != 0) { current.Value = point.Value; } else { current.Value = null; } newData.Add(current); } cartesianSeries.DataSource = null; cartesianSeries.CategoryMember = "Group"; cartesianSeries.ValueMember = "Value"; cartesianSeries.DataSource = newData; } } } public class PivotChartModelPoint { public string Group{ get; set; } public double? Value { get; set; } }