2010-11-23 11 views
1

フォームアシスタント(MS CRM 4.0)でjavascriptを使用して簡単なカスタマイズを行う際にいくつか問題があります。 私が達成しようとしているのは、フォームアシスタントを開いて、ルックアップで現在の(デフォルトの)アシスタントとは異なるものを選択したときです。CRM 4.0フォームアシスタントのカスタマイズ

たとえば、下の図のように、私が顧客を選択すると、現在のデフォルトのアカウントの代わりに、デフォルトの選択を「連絡先」にします。

crmForm.all.customer.SetFocus(); 

しかし、どういうわけか、私は他の外観のidを取得することはできません。

alt text

は、これまでのところ、メインルックアップ(フォームassitant)のために私はこのようなフォーカスを変更するために管理しましたアップ。 私はhtmlからそれを掘り下げようとしましたが、何も試したことがないようです。

私は、どんなヘルプ、記事、ドキュメントにも感謝します。

ありがとうございます!

答えて

2

これは私が最初に考えたよりも簡単ですが、もちろんこれはMicrosoftが意図したものではありません。以下はインシデントフォームのため、使用される実際のフォームのピックリストインデックスを微調整する必要があります。フォームのOnLoadコードで

次の関数を置く(読み込み時のコードが通過する場合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); 
     } 
    } 
}; 

「顧客」を選択した場合、これがチェックされますフォームアシスタントの下部ペインがロードされている場合はCustomerが選択されている場合は、2番目の選択リストで「連絡先」を選択してOnChangeイベントを発生させます 2番目の選択リストが見つからない場合、ロード(私はロード・コールのOnReadyStateChangeイベントを捕捉する方法があるかどうかはわかりませんが、これはもちろんよりエレガントです)、私たちはもう一度それをチェックします。

これで、上部ピックリストの選択が変更されたときにこのコードが呼び出されるようにする必要があります。また、これはあなたの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(); 
    } 
} 

これは、下のペインには、ロードされるようになりますし、その後setFormAssistantPicklist()でチェックが実行されると、おそらくピックリストはそれに応じて設定します。

+0

ありがとうございます!ありがとうございました!!!それは完全に動作します! そして私はそれがどのように機能するかを知った! – Ekaterina

関連する問題