2010-11-23 2 views
1

У меня есть некоторые проблемы, выполняющие некоторые простые настройки с помощью javascript на помощнике формы (MS CRM 4.0). То, что я пытаюсь достичь, - это когда я открываю помощника формы, чтобы иметь разные выбранные, чем текущие (по умолчанию) в look ups.CRM 4.0 Настройка формы помощника

Например, как показано на рисунке ниже, когда я выбираю «Заказчик», я хочу, чтобы мой выбор по умолчанию был «Contact», вместо «Учет» текущего и по умолчанию.

alt text

До сих пор для главного смотреть вверх (форма Assitant) мне удалось изменить фокус, как это:

crmForm.all.customer.SetFocus(); 

Но почему-то я не могу добраться до ид другого взгляда вверх. Я попытался выкопать его из html, но ничего, что я пытался, казалось, работал.

Я ценю любую помощь, статьи, документацию.

Спасибо!

ответ

2

Это легче, чем я думал, хотя, конечно, ничего не было сделано Microsoft. Ниже приведена форма инцидента, поэтому вам может потребоваться настроить индексы списков для используемой фактической формы.

В коде OnLoad вашей формы поместить следующую функцию (window. части важна чтобы функция выпасть из сферы, когда код OnLoad через):

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. Если второй список выбора не найден, нижняя панель остается loading (я не уверен, есть ли способ поймать событие 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() будет работать и, возможно, Picklist установлен соответствующим образом.

+0

Спасибо !!! Спасибо!!! Он отлично работает! И я понял, как это работает! – Ekaterina 2010-11-24 13:48:46