IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Salesforce.com Discussion :

Pré-remplir un formulaire des valeurs d'un enregistrement existant


Sujet :

Salesforce.com

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 16
    Points : 8
    Points
    8
    Par défaut Pré-remplir un formulaire des valeurs d'un enregistrement existant
    Bonjour,

    Le code suivant permet de mettre à jour un enregistrement à partir du formulaire ci-dessous (voir extrait de la page VF).
    Ce formulaire est par exemple accessible depuis l’URL suivant : monsite.force.com/interviews?Id=x0XX000000XxXxx

    Controller
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    public class InterviewsController {
    public string idInt{get ; set;}
    
    List<Interview__c> interviews ;     
    public List< Interview __c> get interviews() {
    if(interviews == null) interviews = [select Id, Name, reponse_1__c, reponse_2__c, reponse_3__c
    from Interview__c where Id = :ApexPages.currentPage().getParameters().get('Id') ];
    return interviews;
    }
    
    public Interview __c Interview {
    get {
        if (Interview == null)
        Interview = new Interview __c (Id = ApexPages.currentPage().getParameters().get('Id'));
        return Interview;
        }
        set;
    }
    
    public PageReference save() {
        try {
        update Interview; 
        idInt = Interview.Id;
        } catch (DMLException e) {
        ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,'Erreur...'));
        return null;
        }
    
        return Page.confirm;
      }
    }
    Page VF
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <apex:page  controller=" InterviewsController " >
         <apex:pageMessages />
         <apex:form >
           <apex:pageBlock>
             <apex:pageBlockButtons >
               <apex:commandButton action="{!save}" value="Envoyer" />
             </apex:pageBlockButtons>
             <apex:pageBlockSection columns="1" >
               <apex:inputField value="{!interview.Reponse_1__c}" />             
               <apex:inputField value="{!interview.Reponse_2__c}" />             
               <apex:inputField value="{!interview.Reponse_3__c}" />             
             </apex:pageBlockSection>  
           </apex:pageBlock>
         </apex:form>
    </apex:page>
    Lorsque l’utilisateur revient sur la page (monsite.force.com/interviews?Id=x0XX000000XxXxx), il peut remettre à jour l’enregistrement mais il ne peut pas retrouver le contenu des champs déjà saisis (ses réponses 1, 2, 3) donc savoir quelles valeurs modifier ou pas… car bien entendu le formulaire est à nouveau vierge.
    Je voudrais savoir comment pré-remplir le formulaire des éventuelles valeurs existantes…
    J'espère avoir été clair dans ma demande...
    Merci de votre aide !

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 239
    Points : 424
    Points
    424
    Par défaut
    Bonjour,

    Après une lecture rapide, il me semble que le variable et la methode liée à la List interviews n'est jamais utilisée

    Pour moi l'utilisateur ne retrouve pas s'est réponses car dans la méthode get de la variable Interview __c Interview;, tu retourne systématiquement un new ?!
    ajoute une requete SELECT et fait le new ssi le select ne retourne aucune ligne

    remarque subsidiaire, pourquoi tu n'utilises pas un controller standard qui va faire tout ça à ta place ?
    et au pire, tu crée un controller extension qui va juste remplacer la methode save() et rediriger vers la page.confirm

    Par exemple, ce petit totu crée un controller extension pour surcharger le save d'un enregistrement
    http://ccoenraets.github.io/salesfor...Extension.html

    Vincent

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Bonjour Vincent,

    Merci pour la réponse rapide...
    j'étais parti sur une List interviews en vue de récupérer les données existantes dans l'enregistrement...
    J'ai effectivement conscience que j'ai fait fausse route.
    Sinon, en tant que débutant je découvre le controller standard !
    En utilisant le composant apex:inputField avec le controller standard, les données se retrouvent bien dans le champ correspondant...
    Par ailleurs, je comprends la nécessité de passer par un controller extension pour le "save" et l'affichage de la page.confirm.
    Je vais essayer...
    Merciii !!!

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Ca fonctionne impec !
    Merci Vincent.
    je clôture la discussion.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] remplir Combobox à partir des valeurs de deux combobox
    Par Shini28 dans le forum Excel
    Réponses: 0
    Dernier message: 13/01/2015, 14h27
  2. Réponses: 4
    Dernier message: 01/10/2014, 09h37
  3. [Débutant] ajouter des data a un enregistrement existant.
    Par Attila54 dans le forum VB.NET
    Réponses: 1
    Dernier message: 13/09/2012, 14h20
  4. récupératioon des valeurs de l'enregistrement précedent
    Par adelsunwind dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 29/05/2008, 20h48
  5. recuperation des valeurs d un enregistrement
    Par sunwind dans le forum Access
    Réponses: 1
    Dernier message: 12/02/2007, 20h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo