· 

AggregateResultをVisualforceで表示

AggregateResultの中に入っている値を、Visualfoeceに表示させようとしたらエラーになった。

 

ApexClass

  1. public List<AggregateResult> test{ get; set; }
  2. public PageReference test2() {
  3.     test = [Select max(ID)Id
  4.                         ,name
  5.                         ,SUM(NumberOfEmployees) NOE
  6.                 From Account
  7.                 Group By name];
  8.     return null;
  9. }

VisualForce 

  1. <apex:repeat value="{!test}" var="Ac">
  2.     <apex:outputText value="{!Ac.NOE}"/>
  3. </apex:repeat>

こう書いたらエラー

Invalid field NOE for SObject AggregateResult

 

何で???

 

正解はこちら

  1. <apex:repeat value="{!test}" var="Ac">
  2.     <apex:outputText value="{!Ac['NOE']}"/>
  3. </apex:repeat>

何で???

 

要は、AggregateResultはMapなのね。

 

赤っ恥です。