Код Apex входит в пользовательский контроллер или расширение контроллера . Страница VisualForce - это отдельный файл от контроллера. Страница, на которую вы ссылались, не показывает страницу VF. Кроме того, я не думаю, что вы можете связать компоненты VF с AggregateResult
, поэтому вам понадобится класс-оболочка.
Вот рабочий код.
Контроллер:
public with sharing class TestController {
public Summary[] Summaries { get; set; }
public TestController() {
AggregateResult[] results = [
SELECT Name, Count(Id) Quantity FROM Opportunity GROUP BY Name
];
Summaries = new List<Summary>();
for (AggregateResult ar : results) {
Summaries.add(new Summary(ar));
}
}
// wrapper class to hold aggregate data
public class Summary {
public Integer Quantity { get; private set; }
public String Name { get; private set; }
public Summary(AggregateResult ar) {
Quantity = (Integer) ar.get('Quantity');
Name = (String) ar.get('Name');
}
}
}
Страница VF:
<apex:page controller="TestController">
<apex:form >
<apex:repeat value="{!Summaries}" var="summary">
{!summary.Name}: {!summary.Quantity}<br/>
</apex:repeat>
</apex:form>
</apex:page>