2010-07-30 8 views
0

Est-il possible d'exporter une vue de contact personnalisée vers Excel? J'ai un bouton qui va à l'ExportContacts.page qui est défini comme:Salesforce - Exporter une vue de contacts personnalisée vers Excel

<apex:page standardController="Contact" contenttype="application/vnd.ms-excel" recordSetVar="contacts" extensions="ExportContactsExtension" > 
    <apex:pageBlock title="Contacts"> 
    <apex:pageBlockTable value="{!contacts}" var="contact"> 
     <apex:column value="{!contact.LastName}"/> 
     <apex:column value="{!contact.FirstName}"/> 
     <apex:column value="{!contact.Name}"/> 
     <apex:column value="{!contact.MailingCity}"/> 
     <apex:column value="{!contact.Phone}"/> 
     <apex:column value="{!contact.Fax}"/> 
     <apex:column value="{!contact.MobilePhone}"/> 
    </apex:pageBlockTable> 
    </apex:pageBlock> 
</apex:page> 

Les ExportContactsExtension.cls est défini comme:

public class ExportContactsExtension { 

    public ExportContactsExtension(ApexPages.StandardSetController controller) { 
    //set the page size so all records will be exported 
    controller.setPageSize(controller.getResultSize()); 
    } 

} 

La question est ce que je peux exporter les champs spécifiques indiqués dans la vue des contacts? Sur la page ExportContacts, je dois définir les champs à exporter, comme le nom de famille, le prénom, etc. Maintenant, si je crée une nouvelle vue de contacts et que j'ajoute l'adresse email, je la verrai sur la page, mais si Je clique sur le bouton d'exportation, il n'inclut pas l'adresse email. Puis-je rendre cette exportation dynamique pour inclure toutes les valeurs de la vue actuelle?

Répondre

1

Pourquoi exactement vous avez besoin d'une telle vue en premier lieu? Y a-t-il une logique complexe dans le contrôleur pour sélectionner les enregistrements? Si la requête pour ceux-ci peut être écrite dans la norme SOQL (comme [SELECT Prénom, Nom, MailingCity, Téléphone, Fax, MobilePhone FROM Contact]), il peut être beaucoup plus efficace pour exporter des enregistrements avec Data Loader ou Le plugin Excel appelé "Excel Connector".

Et si vous devez pouvoir exporter et (pré) visualiser les données sur la page Salesforce, pensez-vous à créer un rapport? C'est ce qu'ils sont et il y a des fonctionnalités intégrées pour exporter vers Excel ou CSV.

+0

La vue est la vue standard des contacts - ce n'est pas un contrôleur personnalisé. Il n'inclut aucun SOQL personnalisé pour récupérer les informations. –

0

Vous pouvez exporter vos résultats vers Excel en utilisant l'attribut contentType du composant apex: page. Voir le post suivant:

Visualforce Export to Excel/IE Bug

+0

J'ai mis à jour la page ExportContacts.pour inclure le type de contenu - j'avais cela dans ma page, mais je l'ai sorti pour voir facilement les résultats sans lancer Excel à chaque fois et je ne l'ai pas collé dans cette question. Je peux exporter les champs spécifiés vers Excel, mais la question reste toujours sur la meilleure façon d'exporter un nouveau champ comme l'adresse e-mail. Puis-je le faire dynamiquement sur la page ExportContacts.page, ou dois-je coder en dur les champs qui seront exportés et les mettre à jour si un nouveau champ doit être exporté? –

0

Malheureusement ce que votre demande n'est pas possible aujourd'hui au sommet. Pour ce faire, vous avez besoin d'un moyen d'interroger la mise en page pour l'enregistrement en cours d'affichage, puis d'inspecter les champs visibles.

Questions connexes