You need to sign in to do that
Don't have an account?
Hiline
How to show sorted aggregate results on a VF page
I'm trying to show the sorted aggregate results on a VF page. One of the wrapper class properties "SipPct" is calcuated by using the two aggregate result fields. Is there an way to sort the results by "SipPct"? Below is controller code:
<pre>
public with sharing class TestController {
public Summary[] Summaries { get; set; }
public TestController() {
AggregateResult[] results = [
SELECT Opportunity.Owner.Name, Avg(Opportunity.Owner.SIP__c), sum(TotalPrice)
FROM OpportunityLineItem
WHERE Opportunity.CloseDate = THIS_YEAR and
Group by Opportunity.Owner.Name
];
Summaries = new List<Summary>();
for (AggregateResult ar : results) {
Summaries.add(new Summary(ar));
}
}
// wrapper class to hold aggregate data
public class Summary {
public Double Sip { get; private set; }
public String Name { get; private set; }
public Double TotalPrice { get; private set; }
public Double SipPct { get; private set; }
public Summary(AggregateResult ar) {
Name = (String) ar.get('Name');
Sip = (Double) ar.get('expr0');
TotalPrice = (Double) ar.get('expr1');
SipPct = TotalPrice / Sip;
}
}
}
</pre>
<pre>
public with sharing class TestController {
public Summary[] Summaries { get; set; }
public TestController() {
AggregateResult[] results = [
SELECT Opportunity.Owner.Name, Avg(Opportunity.Owner.SIP__c), sum(TotalPrice)
FROM OpportunityLineItem
WHERE Opportunity.CloseDate = THIS_YEAR and
Group by Opportunity.Owner.Name
];
Summaries = new List<Summary>();
for (AggregateResult ar : results) {
Summaries.add(new Summary(ar));
}
}
// wrapper class to hold aggregate data
public class Summary {
public Double Sip { get; private set; }
public String Name { get; private set; }
public Double TotalPrice { get; private set; }
public Double SipPct { get; private set; }
public Summary(AggregateResult ar) {
Name = (String) ar.get('Name');
Sip = (Double) ar.get('expr0');
TotalPrice = (Double) ar.get('expr1');
SipPct = TotalPrice / Sip;
}
}
}
</pre>
http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_System_List_sort.htm
A more detailed example is located in the documentation here:
http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_list_sorting_sobject.htm