在Visualforce模板中使用Apex Repeat,不要包含该字段中的特定数据

时间:2014-07-14 11:32:20

标签: salesforce apex-code visualforce

我有这个视觉力模板在下面的字段上创建重复。但是,我不希望它在电子邮件正文中包含BMCServiceDesk__actionId__c ='Email Sent',而是包括所有其他操作。我需要开一个班来做这个吗?

visualforce模板包括以下内容:

<apex:repeat var="ih" value="{!relatedTo.BMCServiceDesk__Incident_Histories__r}">
<tr>
          <td><b>{!ih.BMCServiceDesk__actionId__c} </b></td>
          <td><b>{!ih.BMCServiceDesk__date__c} </b></td>
          <td><b>{!ih.BMCServiceDesk__note__c} </b></td>
          <td><b>{!ih.BMCServiceDesk__userId__c} </b></td>
</tr>             
</apex:repeat>

所以我的电子邮件看起来像一个表格列表:

enter image description here

任何帮助删除此内容都将非常感激。

1 个答案:

答案 0 :(得分:1)

您最好的选择是使用VF组件并将其嵌入该VF电子邮件模板中。那是因为组件可以有一个控制器(电子邮件模板不能)。

它允许您为该列表编写自己的查询,过滤&amp;按照您想要的顺序对项目进行排序......

但是如果您只有少量项目(少于1000个),那么您可以使用“已渲染”标签有条件地显示它们。这有点像黑客,但应该工作正常。

尝试这样的事情:

<apex:repeat var="ih" value="{!relatedTo.BMCServiceDesk__Incident_Histories__r}">
    <apex:outputPanel layout="none" rendered="{!ih.BMCServiceDesk__actionId__c != 'Email Sent'}">
        <tr>
          <th>{!ih.BMCServiceDesk__actionId__c}</th>
          <th>{!ih.BMCServiceDesk__date__c}</th>
          <th>{!ih.BMCServiceDesk__note__c}</th>
          <th>{!ih.BMCServiceDesk__userId__c}</th>
        </tr>
    </apex:outputPanel>             
</apex:repeat>