Наткнулась на интересное решение проблемы с нагруженностью crm-формы. Можно добавить элементы дерева на форму, чтобы скрыть «под катом» некоторые разделы. Код скрипта довольно прост, скрипт выполняется по OnLoad формы. Приведем пример для Account, скроем на вкладке General первый раздел и раскроем второй раздел, примерно так:

Событие OnLoad сущности Account:
function OnCrmPageLoad() {
/* false — collapsed, true — expanded */
//First Tab, Second Section, Expanded
ConvertSection(0,1,true);
//First Tab, First Section, Collapsed
ConvertSection(0,0,false);
}function ConvertSection( tabIndex , sectionIndex , state ) {
var sec = document.getElementById( «tab» + tabIndex );
var td = sec.childNodes[0].rows[ sectionIndex ].cells[0].childNodes[0].rows[0].cells[0];
var secHTML = td.innerHTML;
state = (typeof(state) == «undefined»)? false:!state;
var src = (state == false)? «/_imgs/tree/dashPlus.gif»:»/_imgs/tree/dashMinus.gif»;
td.innerHTML = «<NOBR style=’VERTICAL-ALIGN: middle;cursor:hand’ onclick=’excoSection(this)’><IMG src=’» + src + «‘ align=’middle’ /> » + td.innerHTML + «</NOBR>»;
td.childNodes[0].childNodes[0].state = state;
excoSection(td.childNodes[0]);
}/* Toggle SectionState */
function excoSection( sec ) {
sec = sec.childNodes[0];
sec.state = !sec.state;
sec.src = (sec.state)? «/_imgs/tree/dashMinus.gif»:»/_imgs/tree/dashPlus.gif»;
var display = (sec.state)? «inline» :»none»;
var tblsec = sec.parentElement.parentElement.parentElement.parentElement;
for( var i =1 ; i < tblsec.rows.length ; i++ )
tblsec.rows[i].style.display = display;
}
//Expose the toggling function at the window level
this.excoSection = excoSection;OnCrmPageLoad();
Это весьма гибкое и интересное решение взято отсюда Creating Collapsible Sections.

07.07.2011 в 13:51
Работает для Организаций (Account), но при попытке использовать для сущности Контакт(Contact) выдает ошибку. В чем трабл не знаю.