2013-07-25 3 views
1

J'ai deux objets personnalisés que j'ai créés et, en raison des limitations des listes et des rapports Salesforce, je ne peux pas afficher plus de 255 caractères dans une zone de texte longue.Extension de contrôleur Apex Salesforce pour un objet personnalisé et une page Visualforce

donc je suis en train de créer une nouvelle page Visualforce qui affiche les années sales_trip_visit__c dans une table commandée par Sales_Trip_Visit__c.Date

J'ai la page de travail en utilisant le contrôleur standard Sales_Trip__c Mais qui renvoie les visites non ordonné. D'après ce que je peux dire je ne peux pas le faire dans la page, donc je tente de créer une extension pour le contrôleur standard Sales_Trip__c qui a une méthode qui renvoie une liste de visites ordonnées par la date.

C'est ce que j'ai jusqu'ici et je pense que je ne fais pas quelque chose de bien. Je reçois l'erreur suivante, mais je pense que je le fais complètement faux.

Error: Compile Error: sObject type 'Sales_Trip_Visits__c' is not supported. If you are attempting to use a custom object, be sure to append the '__c' after the entity name. Please reference your WSDL or the describe call for the appropriate names. at line 18 column 15 

Merci pour l'aide ceci est maintenant mon code révisé. et j'ai gardé la convention nameing j'utilise ce qui est un objet en double personnalisé mêmes champs/mêmes relations juste un nom différent (original avait un textarea riche. _2 a une longue textarea

public class mySalesTripControllerExtension { 

    private final Sales_Trip__c satr; 

    // The extension constructor initializes the private member 
    // variable acct by using the getRecord method from the standard 
    // controller. 
    public mySalesTripControllerExtension(ApexPages.StandardController stdController) { 
     this.satr = (Sales_Trip__c)stdController.getRecord(); 
    } 

    public List<Sales_Trip_Visit_2__c> getVisitList() { 
     Sales_Trip_Visit_2__c con = [SELECT Date__c, Account__r.Name, Notes__c FROM Sales_Trip_Visit_2__c WHERE Sales_Trip__r.Id = :satr.id ORDER BY Date__c]; 
     return con; 
    } 
} 

erreur actuelle.

Error: Compile Error: Return value must be of type: LIST<Sales_Trip_Visit_2__c> at line 16 column 9 
+0

Vous devez préfixer une variable SOQL par: caractère comme celui-ci OÙ Sales_Trip__c.id =: this.satr.id –

+0

Merci pour que je reçois maintenant l'erreur suivante – user966936

+0

Hmmm .. vous avez sûrement oublié de passé l'erreur –

Répondre

0

Tout d'abord, vous pouvez faire un tri sur une page, mais vous devrez utiliser du javascript, une meilleure approche serait de faire le tri sur le côté du contrôleur sauf l'erreur que j'ai mentionnée dans un commentaire Voici le code modifié

public List<Sales_Trip_Visits__c> getVisitList() { 
    Sales_Trip_Visits__c con = [SELECT Date__c, Account__r.Name, Notes__c FROM Sales_Trip_Visits__c WHERE Id = :satr.id ORDER BY Date__c] 
    return con; 
} 
+0

Erreur: erreur de compilation: le type d'objet s '' Sales_Trip_Visits_2__c 'n'est pas pris en charge. Si vous essayez d'utiliser un objet personnalisé, assurez-vous d'ajouter le '__c' après le nom de l'entité. Veuillez référencer votre WSDL ou l'appel de description pour les noms appropriés.à la ligne 18 colonne 15 – user966936

+0

ignorer le _2 .. – user966936

+0

Je reçois l'erreur suivante maintenant. cela semble avoir beaucoup aidé merci. votre code ne semble pas renvoyer une liste est-ce parce qu'il trouve aucun résultat et retourne null ou son échec? Erreur: Compiler Erreur: La valeur de retour doit être de type: LIST à la ligne 16 colonne 9 – user966936

Questions connexes