Кастомизация
07
Сен
0

Типы полей в MS CRM

Свойства, доступные для всех типов полей в MS CRM

Общие свойства полей Тип Описание
{Field}.DataValue Изменяется в зависимости от типа поля Действия: получение/установка значения.

Существует для всех типов полей. Заметьте, что изменение значения поля с помощью скрипта не вызывает события OnChange. Вы можете принудительно вызвать событие OnChange с помощью метода FireOnChange.

Далее более подробно описано это свойство для каждого из типов полей…

{Field}.Disabled Boolean Действия: получение/установка значения.

Поле отображается на форме как «только для чтения». Однако это может быть изменено скриптом. После изменения скриптом на редактируемое его значение отправляется серверу.

Пример:

var oField = crmForm.all.SOME_FIELD_ID;
// Отключаем состояние disbled какого-либо поля
oField.Disabled = !oField.Disabled;
{Field}.RequiredLevel Действия: получение значения.

Определяет уровень требования для поля. Допускаются следующие значения:
0 = Без требований
1 = Бизнес-рекомендация
2 = Бизнес-требование

Пример:

switch (oField.RequiredLevel) {

	case CRM_REQUIRED_LEVEL_NORMAL:
	alert("Это поле не рекомендованное и не требуемое для заполнения");
	break;

	case CRM_REQUIRED_LEVEL_RECOMMENDED:
	alert("Это поле рекомендованное для заполнения");
	break;

	case CRM_REQUIRED_LEVEL_REQUIRED:
	alert("Это поле обязательное для заполнения");
	break;
    
}
{Field}.IsDirty Boolean Действия: получение значения.

Возвращает true, если значение поля было изменено (после открытия формы).

Пример:

var oField = crmForm.all.SOME_FIELD_ID;

if (oField.IsDirty) {
	alert("Значение этого поля было изменено.");
} else {
	alert("Значение этого поля не было изменено.");
}
{Field}.ForceSubmit Boolean Действия: получение/установка значения.

Определяет, будет ли значение поля отправлено на сервер. Все значения полей для которых разрешена отправка будут переданы серверу после того, как они были изменены вручную или через скрипт.

Установите это свойство в True для деактивированный полей или полей установленных только для чтения, а также полей, которые не были изменены, если хотите отправить их значения на сервер.

Методы, доступные для всех типов полей в MS CRM

Общие методы полей Описание
{Field}.SetFocus() Устанавливает курсор в поле, изменяет текущую открытую вкладку и прокручивает окно по мере необходимости, чтобы показать указанное поле.

Пример:

// Устанавливаем фокус в поле SOME_FIELD.
crmForm.all.SOME_FIELD.SetFocus();

В некоторых случаях Вам, возможно, понадобится использвовать следующую конструкцию:

setTimeout('crmForm.all.<поле>.SetFocus();', 0);
{Field}.FireOnChange() Программно вызывает событие OnChange для указанного поля.

Пример:

// Вызваем событие OnChange поля SOME_FIELD
crmForm.all.SOME_FIELD.FireOnChange();

Boolean

Определяет область, которая представляет собой либо один флажок, либо радио-кнопки с двумя значениями, либо как ниспадающий список с двумя значениями. Тип поля Boolean это один из способов отображения bit-ных полей (другой способ – пиклист состоящий только из двух значений).

Отметьте:

  1. Что изменение вариантов форматирования bit-ных полей производится в настройках формы, а не в настройках атрибутов (как для других полей).
  2. Изменение формата битного поля с флажка или радио-кнопоки на ниспадающий список меняет способ, с помощью которого Вы можете получить доступ к значению этого поля на форме и поэтому может сделать Ваш текущий код не работоспособным ( если Вы выберите способ отображения в виде ниспадающего списка, с ним нужно работать как с пиклистом – обсуждается ниже).

Для битных полей доступны следующие свойства:

Свойство Тип Описание
{Field}.DataValue Boolean или Null Действия: получение/установка значения.

Значение не изменится, если новое значение не может быть разобрано (т.е. Вы можете предать задать 1 или 0, true или false, но система не сможет разобрать значение «ежик» или «покемон» и следовательно не изменить значение битого поля).

{Field}.DefaultValue Boolean Действия: получение значения.

Возвращает значение битного поля заданное по умолчанию.

Следующий кодовый пример показывает, как задать битное поле:

// ставим галку
crmForm.all.SOME_BOOLEAN_FIELD.DataValue = true;
// убираем галку
crmForm.all.SOME_BOOLEAN_FIELD.DataValue = false;

Customer

Поле Customer (Клиент) представляет собой лукап, в котором можно выбрать либо бизнес-партнера, либо контакт.

У него есть следующие свойства:

Свойство Тип Описание
{Field}.DataValue Задан как массив объектов лукап. Для поля Customer этот массив всегда имеет единичную длину. DataValue равен Null, если не выбрано ни одно значение. Приравняйте DataValue к Null, чтобы очистить поле lookup.

Пример:

Следующий пример показывает, как использовать тип поля Customer.

var customer = new Array();
customer = null;

// передаем в переменную ссылку на лукап customerid (рсположенный на форме Возможной сделки)
customer = crmForm.all.customerid.DataValue;

// Проверяем что лукап заполнен
if (customer[0] != null) {

	// Показываем Имя клиента
	alert(customer[0].name);
    
	// Показываем GUID клиента
	alert(customer [0].id);
   
	// Показываем имя объекта выбранного в лукапе Customer
	alert(customer[0].typename);
   
}

DateTime

Поля DateTime может могут отображать на форме либо дату и время, либо только дату.
Для них доступны следующие свойства:

Свойство Тип Описание
{Field}.DataValue Date или Null Действия: получение/установка значения.

Значение не изменится, если новое значение не может быть разобрано.

{Field}.TimeVisible Boolean Действия: получение значения.

Это свойство определяет должно ли отображаться часть поля DateTime показывающая время.

Следующий код показывает, как использовать поле типа DateTime:

var oDate;
var oToday;

oDate =  crmForm.all.scheduledend.DataValue;

if (oDate == null) {
	oDate = new Date();
}

oToday = new Date();
oDate = oToday;
oDate = oDate.setHours(17,0,0);

if (oDate.TimeVisible) {

	alert("Время отображается.");
    
} else {

	alert("Отображена только дата; время скрыто.");
    
}

crmForm.all.scheduledend.DataValue = oDate;

Duration

Поля Duration (Срок) представлены как пиклисты предоставляющие пользователю выбор вариантов времени от 1 минуты до 3 дней. Но фактическое значение полей Срок – целое число (минут). Если пользователь введет целое число в это поле, или Ваш код установит его, то поле преобразует это значение в более понятную единицу измерения. Например, 420 будет показано как 7 часов.

Свойства поля Срок:

Свойство Тип Описание
{Field}.DataValue Integer или Null Действия: получение/установка значения.

Срок может быть установлен в Null. Значение не изменится, если новое значение не может быть разобрано.

Пример, как использовать поля типа Срок:

var iMinutes = 60;
crmForm.all.SOME_DURATION_FIELD.DataValue = iMinutes;

E-mail Body

Это тип поля появляется на форме действии электронной почты. Для него доступны cледующие свойства:

Свойство Тип Описание
{Field}.DataValue String Используется для получения HTML-кода тела сообщения электронной почты.

Примечание

HTML-код, который определяет DataValue для поля e-mail body доступен только для чтения. И DataValue не доступено для чтения из события OnLoad, т.к. HTML-код при загрузке еще не сформирован.

Следующий пример кода показывает, как использовать поля типа E-mail body (его нужно использовать на onChange каког-либо поля):

var oField = crmForm.all.SOME_EMAILBODY_FIELD;

alert(“HTML-поток состоит из : " + oField.DataValue);

Float

Доступны следующие свойства:

Свойство Тип Описание
{Field}.DataValue Float или Null Действия: получение/установка значения.

Значение не изменится, если новое значение не может быть разобрано.

{Field}.Min Integer Действия: получение значения.

Возвращает минимальное допустимое значение.

{Field}.Max Integer Действия: получение значения.

Возвращает максимальное допустимое значение.

{Field}.Precision Integer Действия: получение значения.

Возвращает количество допустимых десятичных знаков. Это значение может быть между 0 и 5.

Следующий пример кода показывает, как использовать поля типа Float:

var oField = crmForm.all.SOME_FLOAT_FIELD;

var iValue = 1976.1102;

// Приводим дробную часть переменной iValue к дробной части поля SOME_FLOAT_FIELD

var oNumber = new Number(iValue);
iValue = oNumber.toPrecision(oField.Precision);

if (iValue < oField.Min) {

	//присваиваем полю минимальное допустимое значение если значение, которое мы пытаемся задать меньше допустимого
	iValue = oField.Min;
    
} else if (iResponse > oField.Max) {

	//присваиваем полю максимальное допустимое значение если значение, которое мы пытаемся задать больше допустимого
	iValue = oField.Max;

}

oField.DataValue = iValue;

Integer

Доступны следующие свойства:

Свойство Тип Описание
{Field}.DataValue Integer или Null Действия: получение/установка значения.

Значение не изменится, если новое значение не может быть разобрано

{Field}.Min Integer Действия: получение значения.

Возвращает минимальное допустимое значение.

{Field}.Max Integer Действия: получение значения.

Возвращает максимальное допустимое значение.

Следующий пример кода показывает, как использовать поля типа Integer:

var oField = crmForm.all.SOME_INTEGER_FIELD;

var iValue = 1000;

if (iValue < oField.Min) {

	iValue = oField.Min;

} else if (iValue > oField.Max) {

	iValue = oField.Max;
   
}

oField.DataValue = iValue;

Lookup

Поле Лукап типа представляет собой атрибут отношения со связанным объектом. Лукап-поля устанавливается в отношениях настройки формы. Хотя Lookup часто используется как общий термин, существуют различные виды полей Lookup’а и технически поля лукап наиболее ограниченный тип полей. В отличие от Customer или Regarding, в кастомных лукапах может задаваться только один тип объекта. А в отличие от PartyList, в кастомном лукапе может хранится только ссылка на одну запись связанного объекта. Поля лукап определяются с помощью следующих атрибутов (набор атрибутов представляет собой массив):

Атрибуты Тип Описание
id String GUID записи. Требуется для массива лукапа.
type Integer Код связанного объекта. Не рекомендуется использовать.
typename String Имя связанного объекта. Требуется для массива лукапа.
name String Отображаемое в лукапе значение (основного атрибу связанного объекта). Требуется для массива лукапа.
data Любые другие данные. Может дополнительно использоваться в массиве.

Для него доступны следующие свойства:

Свойство Тип Описание
{Field}.DataValue Массив объектов лукапа Действия: получение/установка значения.

Для lookup’ов это свойство должен быть массивом с единичной длинной. DataValue равен NULL, если не выбрано никакой записи. Установить DataValue в NULL, чтобы сбросить значение лукапа.

Следующий пример кода показывает, как читать значения из поля типа лукап.

var lookupItem = new Array;

// делаем ссылку на массив атрибутов лукапа primarycontactid на форме Бизнес-патрнера.
lookupItem = crmForm.all.primarycontactid.DataValue;

// Если в лукапе есть данные, выводим алерты со значениями атрибутов массива.
if (lookupItem[0] != null) {

	// Текст отображаемый в лукапе
	alert(lookupItem[0].name);

	// GUID записи выбранной в лукапе.
	alert(lookupItem[0].id);

	// Имя объекта, запись которого выбрана в лукапе.
	alert(lookupItem[0].typename);

}

Следующий пример кода показывает, как установит набор значений в поле типа лукап..

// Создаем массив, который будем задавать для DataValue лукапа.
var lookupData = new Array();

// Создаем объект, который будем добавлять в только что созданный массив.
var lookupItem = new Object();

// Задаем свойства id, typename и name объекта.
lookupItem.id = '{1AAC1363-01A1-DB11-8432-0003FF9CE217}';
lookupItem.typename = 'account';
lookupItem.name = 'A Bike Store';

// Добавляем объект в массиве.
lookupData[0] = lookupItem;

// Установить значения лукапа равное созданному массиву.
crmForm.all.parentaccountid.DataValue = lookupData;

Memo

Memo представляет собой поле многострочного текста созданного с помощью атрибута ntext. Для него доступны следующие свойства:

Свойство Тип Описание
{Field}.DataValue Ссылка на строковый объект Действия: получение/установка значения.
{Field}.MaxLength Integer Действия: получение значения.Получить собственность.
The maximum length of the string.
Максимальная длина текста.

Это поле используется также как и строковые поля.

Owner

Поля Owner представляет собой Lookup, где связанной записью может быть любой тип записи, который может быть представлен в этом поле.

Доступны следующие свойства:

Свойство Тип Описание
{Field}.DataValue Для полей Owner это свойство должен быть массивом с единичной длинной. DataValue равен NULL, если не выбрано никакой записи. Установить DataValue в NULL, чтобы обнулить значение лукапа.

Принцип работы со свойством DataValue поля Owner аналогично обычному лукапу.

PartyList

Это вид поля Lookup, который позволяет ссылаться на несколько записей различных типов в одном поле. PartyList Вы можете наблюдать на форме электронной почты: поля Кому. Копия и СК. PartyList определяется с помощью следующих атрибутов:

Атрибуты Тип Описание
id String GUID записи. Требуется для массива лукапа.
type Integer Код связанного объекта. Не рекомендуется использовать.
typename String Имя связанного объекта. Требуется для массива лукапа.
name String Отображаемое в лукапе значение (основного атрибу связанного объекта). Требуется для массива лукапа.
data Любые другие данные. Может дополнительно использоваться в массиве.

Доступны следующие свойства:

Свойство Тип Описание
{Field}.DataValue Действия: получение/установка значения.

Для PartyLists это должен быть массив с как минимум с единичной длинной. DataValue равен NULL, если не выбрано никакой записи. Установить DataValue в NULL, чтобы сбросить значение лукапа.

Picklist

Picklist это ниспадающий список содержит несколько вариантов значений. Каждый вариант имеет следующие атрибуты:

Атрибуты Описание
DataValue Значение индекса (числового кода соответствующего пункту – задается в настройках атрибута пиклиста) выбранного варианта.
Text Текст пункта пиклиста.

Для него доступны следующие свойства:

Свойство Тип Описание
{Field}.DataValue string Возвращает строковое представление значения выбранного варианта. Вы можете использовать метод parseInt(), чтобы безопасно преобразовать его в integer.Изменяет выбранную опцию на определенное значение.
{Field}.SelectedText string Возвращает строковое значение выбранного варианта.
{Field}.GetSelectedOption option Опции Picklist’а Возвращает опцию Picklist’а.
{Field}.Options массив опций picklist’а Возвращает массив объектов опций Picklist’а.Задает новый набор опций, определяемых массивом объектов Picklist’а.
{Field}.AddOption(Text, DataValue) option Используется для добавления опции в конец текущей коллекции опций.Текст — строковое значение, которое будет отображаться в опции.DataValue — целое число, представляющее собой индекс варианта.Текст и DataValue не могут быть Null.

Данные используются для хранения произвольных данных в объекте Picklist’а.

Чтобы определить список опций, вы должны изменить пиклиста с помощью настройки атрибутов или метаданных API. Вы не должны создавать новые опции Picklist’а программно в коде событий.

{Field}.DeleteOption(value) integer Используется для удаления указанной опции по значению индекса из коллекции. Ничего не удалит, если указанная опция не существует.
{Field}.DefaultValue integer Возвращает значение по умолчанию указанное для пиклиста.Задает значение по умолчанию для списка выбора.

Все допустимые параметры Picklist определены в метаданных Microsoft Dynamics CRM. При сохранении записи с недействительными вариантами Picklist’а, выбранная опция будет установлена в значение по умолчанию и недействительные данные будут потеряны.

Есть два поддерживаемых метода для получения текущего выбранного значения Picklist’а (индекса и отображаемого текста):

// возвращает текстовое значение выбранного пункта
crmForm.all.(<имя_пиклиста>).SelectedText
// возвращает номер выбранного элемента списка
crmForm.all.(<имя_пиклиста>).DataValue

Следующий пример кода показывает, как использовать поля типа Picklist. Обратите внимание, что когда вы добавляете опцию к Picklist’у, она должна уже существовать в набор возможных значений 9задается в атрибуте пиклиста):

var oField = crmForm.all.SOME_PICKLIST_FIELD;

// Получаем ссылку на четвертый пункт выбора
var oOption = oField.Options[4];

// Показываем сколько вариантов выбора существует
alert("Количество значений: "+ oField.Options.length);

// Устанавливаем выбранным вариантом первый
oField.DataValue = 1;

// Показываем текст первого варианта
alert(oField.SelectedText);

// Удаляем четвертый вариант
oField.DeleteOption(4);

// Показываем новое количество доступных вариантов выбора
alert("New length :"+ oField.Options.length);

// Восстанавливаем четвертый вариант
oField.AddOption(oOption.Text, oOption.DataValue);

// Показываем восстановленное количестов вариантов выбора
alert("Количество значений: "+ oField.Options.length);

Regarding

Поле Regarding (В отношении) области представляет собой Lookup, с которой согуть быть связан любой тип записи, разрешенные в этом поле.
The following properties are available:

Доступны следующие свойства:

Свойство Тип Описание
{Field}.DataValue Для полей Regarding это свойство должен быть массивом с единичной длинной. DataValue равен NULL, если не выбрано никакой записи. Установить DataValue в NULL, чтобы обнулить значение лукапа.

Принцип работы со свойством DataValue поля Regarding аналогично обычному лукапу.

String

Свойства:

Свойство Тип Описание
{Field}.DataValue Ссылка на строковый объект Get/set property. Действия: получение/установка значения.
{Field}.MaxLength Integer Действия: получение значения.

Следующий пример кода показывает, как использовать поля типа String:

var oField = crmForm.all.SOME_STRING_FIELD;

var sValue = "Строка может быть слишком длинной.";

if (sValue.length > oField.MaxLength) {

	// вырезаем подстроку соответствующую максимальной длинне
	sValue = sValue.substr(0, oField.MaxLength);
    
}

oField.DataValue = sValue;
Комментарии (0)

*

code