08.02.2009Работа с JavaScript в MS CRM 3.0
На JavaScript в MS CRM программируют в клиентской части. Вы можете писать код только в трех событиях, два из который связаны с формой – это OnLoad() и OnSave(), и одно с полем – OnChange()
Здесь лишь небольшая подборка tips and tricks по работе с JavaScript, она будет расширяться. Не все сразу
1.
//Задать фиксированные размеры открываемого окна (формы)
window.moveTo(0,0);
window.resizeTo(screen.availWidth, screen.availHeight);
2.
//Получить GUID формы
crmForm.ObjectId;
3.
//Работа с lookup на форме
//Инициализирую массив
var lookupItem = new Array;
// получаю lookup для атрибута primarycontactid на форме account
lookupItem = crmForm.all.primarycontactid.DataValue;
// Если выбрали значение для lookup
if (lookupItem[0] != null)
{
// вывод текстового значения лукапа
alert(lookupItem[0].name);
// вывод имени сущности лукапа
alert(lookupItem[0].typename);
// вывод GUID`a выбранной записи в лукапе
alert(lookupItem[0].id);
// вывод кода – тип сущности
alert(lookupItem[0].type);
}
Этот код необходимо повесить на событие OnChange(), выбранного лукапа
4.
//Принудительный вызов функции OnChange() для поля
crmForm.all.new_field.FireOnChange();
5.
// Вызов любой функции как OnChange() для поля
//описываем функцию
function onChangeAkValue()
{
alert( «Сработала моя функция!»);
}
oRec = crmForm.all.new_aktestvalue;
oRec.attachEvent(«onchange»,onChangeAkValue); //срабатывает функция
6.
//Определить тип формы: только что создана или открыта для редактирования
var CRM_FORM_TYPE_CREATE = 1;
var CRM_FORM_TYPE_UPDATE = 2;
switch (crmForm.FormType){
case CRM_FORM_TYPE_CREATE:
alert(«Форма создана»);
break;
case CRM_FORM_TYPE_UPDATE:
alert(«Форма открыта для редактирования»);
break;
7.
//убрать скобки { } для гуида. (remove braces)
crmForm.all.new_aktestguid.innerText =crmForm.all.new_aktest.DataValue[0].id.replace(/[{,}]/g,»");
8.
// Работа элементами формы
crmForm.all.shippingmethodcode_d.style.visibility = ‘hidden’; //скрываем текстовое описание поля
crmForm.all.ispricelocked_c.style.visibility = ‘hidden’; //скрываем само поле
9.
// Работа с датой
//Пример: можем сгенерировать номер документа
// Присваиваем переменной текущую дату
var now = new Date();
crmForm.all.new_orderdate.DataValue =now;
//Год
var year = now.getFullYear().toString();
//Месяц
var month = (now.getMonth() + 1).toString();
//День
var dayOfMonth = now.getDate().toString();
if (month.length == 1) { month = «0″ + month;}
if (dayOfMonth.length == 1) {dayOfMonth = «0″ + dayOfMonth;}
var yyyymmdd = year + month + dayOfMonth;
crmForm.all.new_date.DataValue =yyyymmdd
