2010-11-23 7 views
1

폼 어시스턴트 (MS CRM 4.0)에서 javascript를 사용하여 간단한 사용자 정의 작업을 수행하는 데 몇 가지 문제가 있습니다. 나는 폼 어시스턴트를 열어 룩 업에서 현재 (기본값) 것보다 다른 것을 선택했을 때이를 달성하려고합니다.CRM 4.0 폼 도우미 사용자 정의

예를 들어 아래 그림과 같이 고객을 선택할 때 현재 기본 설정을 계정 대신 "내 연락처"로 기본 선택을하고 싶습니다.

alt text

지금까지 주요 찾아 (양식 assitant)에 대한이 같은 초점 변경 관리 :

crmForm.all.customer.SetFocus(); 

를 어쨌든 나는 다른 모양의 ID를 얻을 수 없다 쪽으로. 나는 html로 그것을 파헤 치려고 노력했지만, 아무 것도 시도하지 않았다.

나는 어떤 도움, 기사, 문서를 주셔서 감사합니다.

감사합니다.

답변

2

이것은 처음에 생각했던 것보다 쉽습니다. 물론 Microsoft가 의도 한 것은 아닙니다. 다음은 인시던트 양식을위한 것입니다. 따라서 실제 사용 된 양식의 선택 목록 색인을 조정해야 할 수도 있습니다. 양식의 온로드 코드에서

는 다음과 같은 기능을 넣어합니다 (온로드 코드는 window. 부분이 범위 밖의 기능 가을 않을까 중요 통해 인 경우) :

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); 
     } 
    } 
}; 

이 확인합니다 "고객"을 선택한 경우 폼 도우미의 아래쪽 창이로드 된 경우 고객 "이 선택되고 두 번째 선택 목록에서"연락처 "를 선택하고 OnChange 이벤트를 발생시킵니다 두 번째 선택 목록을 찾을 수 없으면 아래쪽 창은 여전히 ​​있습니다 로드 (로드 콜의 OnReadyStateChange 이벤트를 잡는 방법이 있는지 여부는 잘 모르겠다. 물론 더 우아 할 것이다.) 그리고 우리는 나중에 다시 체크한다.

이제 위 선택 목록의 선택이 변경 될 때이 코드가 호출되어야합니다. 이것은 또한 당신의 OnLoad 코드에 간다 :이 아래쪽 창로드 할 다음 setFormAssistantPicklist()에서 검사가 실행되고 아마도 선택 목록이 적절하게 설정하게됩니다

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

.

+0

감사합니다. 고맙습니다!!! 그것은 완벽하게 작동합니다! 그리고 어떻게 작동하는지 알아 냈습니다! – Ekaterina

관련 문제