Right now you can either show percentage of total, or the actual value, but not both.
Or is there a way to get the "raw value" and "total value" of a CellAggregateValue programatically?
10 Answers, 1 is accepted
Hi Christian,
Thank you for the provided image.
Modifying the way the total is calculated is not available in the implementation of RadPivotGrid. It displays the topmost aggregated calculation for the chosen aggregate description with its aggregate function. However, what you can try is to add calculated fields and calculated items to produce and display values that are a result of your custom calculations. I suggest taking a look at our documentation about calculated fields and calculated items:
- Calculated Fields
- Calculated Items
Also, you can check our "Calculated Fields" and "Calculated Items" examples available at http://demos.telerik.com/wpf/.
Then you could create a custom DataTemplateSelector class and return your custom template for the total cells. Keep in mind that this is just a suggestion, but still, you could try it on your side.
Regards,
Dinko
Progress Telerik
Virtual Classroom, the free self-paced technical training that gets you up to speed with Telerik and Kendo UI products quickly just got a fresh new look + new and improved content including a brand new Blazor course! Check it out at https://learn.telerik.com/.
sadly, i fortogt to mention that we use Adomd, so I am afraid this doesnt work there?!
Also I do believe you misunderstood me at some point, so I try to rephrase what we are trying to do.
When displaying values, there is an option to display them as % of total.
However, when you select this, you only see that % of total, not the original value anymore.
We want to see both the original value and the % of total value.
I attached another picture for clarification.
Hello Christian,
Thank you for the clarification. If we got this correctly, you want to display both the original value and the percentage of the total value for the corresponding row or column. We will need some time to investigate possible approaches for this. We are going to contact you again within the next week.
Regards,
Martin Ivanov
Progress Telerik
Virtual Classroom, the free self-paced technical training that gets you up to speed with Telerik and Kendo UI products quickly just got a fresh new look + new and improved content including a brand new Blazor course! Check it out at https://learn.telerik.com/.
Hello Christian,
I've discussed your query with the development team and I am afraid that currently, there is no API that allows to get both the percentage and the absolute value of a cell. However, I've logged a feature request to introduce a mechanism to allow this. You can find it in the feedback portal where you can track its status. You can also find your Telerik points updated.
Regards,
Martin Ivanov
Progress Telerik
Virtual Classroom, the free self-paced technical training that gets you up to speed with Telerik and Kendo UI products quickly just got a fresh new look + new and improved content including a brand new Blazor course! Check it out at https://learn.telerik.com/.
thank you for checking the possibilities here.
Im not entirely sure, the Format is exactly needed. I allready managed to mess with the "displayed value" using a converter for the cell defined in the CellTemplate.
The only issue at this point is, that there is no way of getting the original value.
I got that "CellAggregateValue" object, but that only contains the aggregated value.
Anyway, if this is not a quater million, we would be willing to pay a reasonable ammout for that feature to be implemented.
Hello Christian,
The TotalFormat determines what value will be displayed in the cell. Creating a custom TotalFormat will allow you to implement a custom logic that gets the original value, transform its value if needed and formatting it. For example, you can create a format where you show both the original value and the percentage.
There is another suggestion that you can try and see if it will work instead of waiting for the feature. Basically, instead of using the command that shows the percentage of the value, you can use the default view where the absolute values are shown and implement a custom CellTemplate. In the CellTemplate, you can use MultiBinding to get the DataSource and the current CellAggregateValue which will allow you to fetch the absolute value of the cell and the grand total of the row/column. Then you can calculate the percentage and format the values. The formatted value will be the result of the Convert() method of the corresponding IMultiValueConverter. You can find this approach in the attached project. Can you try it and let me know if it works for you?
About feature implementation payments, I would suggest using the ticketing system from your telerik.com account and send it from there.
Regards,
Martin Ivanov
Progress Telerik
Virtual Classroom, the free self-paced technical training that gets you up to speed with Telerik and Kendo UI products quickly just got a fresh new look + new and improved content including a brand new Blazor course! Check it out at https://learn.telerik.com/.
thank you for the provided example.
We managed to get this working now.
Since there were a few more requirements, we had to do a few modifications, but everythings works like a charm now.
One thing to note its, that we had to use reflection, because a few things are internal and we couldnt find any other way.
// Grand Total
Coordinate co = results.Root;
switch
(zusatz)
{
case
PivotWertZusatz.ColumnPercent:
// ColumnTotal
co =
new
Coordinate(results.Root.RowGroup, TelerikPivotHelper.GetCoordinateGroup(aggregateValue.ColumnGroup));
break
;
case
PivotWertZusatz.RowPercent:
// RowTotal
co =
new
Coordinate(TelerikPivotHelper.GetCoordinateGroup(aggregateValue.RowGroup), results.Root.ColumnGroup);
break
;
}
AggregateValue grandTotalAggregate = results.GetAggregateResult(aggidx, co);
// REFLECTION aggregateValue.RowGroup doesnt work, but its internal Group does.
private
static
PropertyInfo _internalGroupProperty;
public
static
IGroup GetCoordinateGroup(IGroup group)
{
_internalGroupProperty ??= group.GetType().GetProperty(
"Group"
);
return
(IGroup) _internalGroupProperty.GetValue(group);
}
Hello Christian,
I am glad to hear the suggested approach worked for you. Also, thank you for sharing your solution here in the forum. I hope everything with your app development goes well.
Regards,
Martin Ivanov
Progress Telerik
Virtual Classroom, the free self-paced technical training that gets you up to speed with Telerik and Kendo UI products quickly just got a fresh new look + new and improved content including a brand new Blazor course! Check it out at https://learn.telerik.com/.
yeah everyone is nice now.
But please do not ignore the fact that we had to use reflection. Could you please add this to your ToDo list to make this property publically accessible at some point, or atleast make Coordinate work with aggregateValue.RowGroup directly.
Hello Christian,
I've logged this in the Telerik UI for WPF feedback portal where you can track its status. You can add any additional information to the item in the comments section. You can also find your Telerik points updated.
Regards,
Martin Ivanov
Progress Telerik
Virtual Classroom, the free self-paced technical training that gets you up to speed with Telerik and Kendo UI products quickly just got a fresh new look + new and improved content including a brand new Blazor course! Check it out at https://learn.telerik.com/.