Здесь приведен метод фильтрации с помощью неподдерживаемой кастомизации.
Существует еще одни способ для создания фильтрации в MS CRM 4.0, его я здесь и опишу.

Рассмотрим пример фильтрации городов в зависимости от выбранной области. Т.е. у нас есть сущность Область (new_region), которая связана с сущность Город (new_city) отношением один-ко-многим, и эти обе сущности вынесены в качестве атрибутов на форме Интерес (Lead) (Контакт, Организация …)

Приступим:

Устанавливаем поле «Область» для поиска. Для этого необходимо:

  1. Выбираем сущность «Город» (new_city) для изменения
  2. «Формы и представления» -> «Представление поиска» -> «Добавить столбцы поиска»
  3. «Добавить столбцы представления» – добавляю поле «Область»

Открываем форму Интереса для редактирования и вставляем следующий код:

Событие OnLoad()

document.FilterLookup = function(source, target)
{
if (IsNull(source) || IsNull(target)) { return; }
var name = IsNull(source.DataValue) ? » : source.DataValue[0].name;
target.additionalparams = ‘search=’+ escape(name);
}

if(crmForm.all.new_region.DataValue != null)
{
document.FilterLookup(crmForm.all.new_region, crmForm.all.new_city);
}

Примечание: Обязательно ставьте escape(name), чтобы корректно отображать русские символы.

Изменяем код для поля «Область»(new_region)

на событие OnChange() вешаем следующий код

document.FilterLookup(crmForm.all.new_region, crmForm.all.new_city);

Таким образом получим следующее:

Фильтрация в Microsoft Dynamics CRM 4.0

Фильтрация в Microsoft Dynamics CRM 4.0

Как видите мы просто вставляем название области в поле для поиска лукапа, вот такой небольшой хак получился :)