Hello all,
I'm using PivotGrid in a project. Users love it.
I'd like to programmatically add calculations between groups. In my case i'm trying to calculate the difference between sums in Fiscal Years. I can do it manually from the UI, as seen in the screenshot, so I think it could be done in code, but I don't know how to do it.
Any suggestions?
Thanks
                                I'm using PivotGrid in a project. Users love it.
I'd like to programmatically add calculations between groups. In my case i'm trying to calculate the difference between sums in Fiscal Years. I can do it manually from the UI, as seen in the screenshot, so I think it could be done in code, but I don't know how to do it.
Any suggestions?
Thanks
3 Answers, 1 is accepted
0
                                Hello Robert,
Thank you for writing.
By using the drop-down menu of the items in the Values list, you can modify settings related to the aggregate descriptors. When you select the "Difference From" option, you are actually modifying the existing PropertyAggregateDescription.TotalFormat property to Totals.DifferenceFrom.
I hope this information helps. Should you have further questions, I would be glad to help.
Regards,
Desislava
Telerik 
 
                                        Thank you for writing.
By using the drop-down menu of the items in the Values list, you can modify settings related to the aggregate descriptors. When you select the "Difference From" option, you are actually modifying the existing PropertyAggregateDescription.TotalFormat property to Totals.DifferenceFrom.
I hope this information helps. Should you have further questions, I would be glad to help.
Regards,
Desislava
Telerik
Check out Telerik Analytics, the service which allows developers to discover app usage patterns, analyze user data, log exceptions, solve problems and profile application performance at run time. Watch the videos and start improving your app based on facts, not hunches.
0
                                
                                                    Robert
                                                    
                                            
    Top achievements
    
            
                 Rank 1
                Rank 1
            
    
                                                
                                                answered on 03 Sep 2014, 04:11 PM
                                            
                                        Thank you Desislava. That's got me pointed in the right direction. 
I still have one more question, though. How can I name the group that I want to calculate the difference from? In my example, I'm looking at sums from Fiscal Year 2014 and Fiscal Year 2015. I'd like to calculate the difference from Fiscal Year 2014. What's the best way to do that?
Much appreciated!
                                        I still have one more question, though. How can I name the group that I want to calculate the difference from? In my example, I'm looking at sums from Fiscal Year 2014 and Fiscal Year 2015. I'd like to calculate the difference from Fiscal Year 2014. What's the best way to do that?
Much appreciated!
0
                                Hello Robert,
Thank you for writing back.
Here is a sample code snippet, demonstrating how to add programmatically 'DifferenceFrom' TotalFormat:
 
 
 
 
 
 
 
 
 
 
I hope this information helps. If you have any additional questions, please let me know.
Regards,
Desislava
Telerik 
 
                                        Thank you for writing back.
Here is a sample code snippet, demonstrating how to add programmatically 'DifferenceFrom' TotalFormat:
LocalDataSourceProvider provider;public Form1(){    InitializeComponent();    this.LoadData();    this.provider = new LocalDataSourceProvider() { ItemsSource = orders };    provider.ColumnGroupDescriptions.Add(new DateTimeGroupDescription() { PropertyName = "Date", Step = DateTimeStep.Year });    provider.ColumnGroupDescriptions.Add(new PropertyGroupDescription() { PropertyName = "Promotion", GroupComparer = new GroupNameComparer() });    provider.RowGroupDescriptions.Add(new PropertyGroupDescription() { PropertyName = "Product", GroupComparer = new GroupNameComparer(), SortOrder = Telerik.Pivot.Core.SortOrder.Descending });    provider.RowGroupDescriptions.Add(new PropertyGroupDescription() { PropertyName = "Advertisement", GroupComparer = new GroupNameComparer() });    provider.AggregateDescriptions.Add(new PropertyAggregateDescription() { PropertyName = "Quantity", AggregateFunction = AggregateFunctions.Sum });    provider.AggregateDescriptions.Add(new PropertyAggregateDescription() { PropertyName = "Net", AggregateFunction = AggregateFunctions.Sum });    provider.AggregatesPosition = PivotAxis.Columns;    provider.AggregatesLevel = 2;     this.radPivotGrid1.PivotGridElement.DataProvider = provider;}protected override void OnLoad(EventArgs e){    base.OnLoad(e);    Telerik.WinControls.UI.PivotFieldList.Value pivotFieldListValue = radPivotFieldList1.ValuesControl.Items.First.DataBoundItem as  Telerik.WinControls.UI.PivotFieldList.Value;    Telerik.WinControls.UI.PivotFieldList.FieldListViewModel flc = pivotFieldListValue.ParentList.Parent;    IEnumerable<object> uniqueItems = flc.DataProvider.Results.GetUniqueKeys(PivotAxis.Columns, 0);    object groupName = null;    foreach (object item in uniqueItems)    {        groupName = item;        break;    }    DifferenceFrom df = new DifferenceFrom()    {        Axis = PivotAxis.Columns,        Level = 0,        GroupName = groupName    };    provider.AggregateDescriptions[1].TotalFormat = df; }I hope this information helps. If you have any additional questions, please let me know.
Regards,
Desislava
Telerik
Check out Telerik Analytics, the service which allows developers to discover app usage patterns, analyze user data, log exceptions, solve problems and profile application performance at run time. Watch the videos and start improving your app based on facts, not hunches.
