0

我在 saleforce 和 visualforce 电子邮件模板中有一张自定义对象票证,它使用票证自定义对象,如下所示

  <apex:repeat var="cx" value="{!relatedTo.E_Ticket_s__r}">
 <tr>
 <td>
  <apex:outputText value="{!cx.Airline__c}" escape="false" /> 
 </td>
 </tr>
 </apex:repeat>

它工作得很好,但我需要按照他们创建的顺序打印记录。假设我创建了第一家加拿大航空公司,然后是印度航空公司,然后是英国航空公司,订单将是加拿大航空公司印度航空公司英国航空公司。

但是在电子邮件中,我收到的不是排序顺序,如何对记录进行排序并在电子邮件中显示。据我所知,客户对象有一个标准字段属性名称“E-Ticket # Name”,即自动编号。

任何帮助是极大的赞赏。谢谢!

4

1 回答 1

1

如果将门票放入控制器中的集合变量中,则可以在 SOQL 查询中使用order by对它们进行排序。然后,您的apex:repeat将根据集合的顺序显示它们。

<apex:repeat var="cx" value="{!tickets}">
  <tr>
    <td>
      <apex:outputText value="{!cx.Airline__c}" escape="false" /> 
    </td>
  </tr>
</apex:repeat>


// within the controller

public List<E_Ticket_s__c> tickets() {
  List<E_Ticket_s__c> results = new List<E_Ticket_s__c>([
    SELECT Id, Airline__r.CreatedDate, Airline__c
    FROM E_Ticket_s__c
    ORDER BY Airline__r.CreatedDate
  ]);

  return results;
}

唯一的问题是没有允许您对 sObject 列表进行排序的 List 方法,因此如果您需要在 SOQL 之外进行排序,则需要“自己动手”。

于 2012-05-11T15:02:35.343 回答