2010-11-23 5 views
1

Je rencontre des problèmes lors de certaines personnalisations simples avec javascript sur l'assistant de formulaire (MS CRM 4.0). Ce que j'essaye de réaliser est quand j'ouvre l'assistant de forme pour avoir différents sélectionnés que ceux courants (par défaut) dans les recherches. Par exemple, comme dans l'image ci-dessous, lorsque je sélectionne le client, je souhaite que ma sélection par défaut soit "Contact", au lieu de "Compte", celle par défaut.CRM 4.0 Personnalisation de l'assistant de formulaire

alt text

Jusqu'à présent, pour la regarder principale vers le haut (formulaire assitant) Je réussi à changer la mise au point comme celui-ci:

crmForm.all.customer.SetFocus(); 

Mais de toute façon je ne peux pas arriver à l'id de l'autre regard en haut J'ai essayé de le sortir du HTML, mais rien de ce que j'ai essayé ne semblait fonctionner.

J'apprécie n'importe quelle aide, articles, documentation.

Merci!

Répondre

2

Cela est plus facile que je ne le pensais, bien que ce ne soit pas Microsoft qui ait l'intention de le faire. Ce qui suit est pour le formulaire Incident, donc vous devrez peut-être modifier les index de liste de sélection pour le formulaire utilisé.

Dans votre formulaire de code OnLoad mettre la fonction suivante (la partie window. est important de peur que la chute de la fonction hors de portée lorsque le code OnLoad est par):

window.setFormAssistantPicklist = function() 
{ 
    var plMain = document.getElementById("ContextSelect"); 
    if ((plMain) && (1 == plMain.selectedIndex)) 
    { 
     var plSub = document.getElementById("selObjects"); 
     if (plSub) 
     { 
      plSub.selectedIndex = 1; 
      plSub.fireEvent("onchange"); 
     } 
     else 
     { 
      setTimeout(setFormAssistantPicklist, 1000); 
     } 
    } 
}; 

Cela vérifiera si « client » est sélectionné et si le volet inférieur de l'assistant de formulaire a été chargé, le client "est sélectionné et, si c'est le cas, sélectionnez" Contact "dans la deuxième liste de sélection et déclenche son événement OnChange Si la deuxième liste de sélection est introuvable, le volet inférieur est toujours chargement (je ne suis pas sûr qu'il existe un moyen d'attraper l'événement OnReadyStateChange de cet appel de chargement, ce qui serait bien sûr plus élégant) et nous le vérifions une seconde plus tard

Maintenant, nous devons nous assurer que ce code est appelé lorsque la sélection dans la liste de sélection supérieure est modifiée. Cela va aussi dans votre code OnLoad:

var pl = document.getElementById("ContextSelect"); 
if (pl) 
{ 
    pl.onchange = function() 
    { 
     RelatedInformationPane.LoadContextData(); // this is the standard OnChange code of the lookup selection picklist 
     setFormAssistantPicklist(); 
    } 
} 

Cela entraînera le volet inférieur à charger, puis les contrôles dans setFormAssistantPicklist() sera exécuté et, éventuellement, la liste de sélection définie en conséquence.

+0

Merci! Je vous remercie!!! Cela fonctionne parfaitement! Et j'ai comment ça marche! – Ekaterina

Questions connexes