• Авторизация


Фильтрация лукапа в MS CRM 4.0 04-09-2008 06:20 к комментариям - к полной версии - понравилось!


Столкнулся с тем что старый метод, присвоение additionalparams строки fetch не работает в 4.0 версии, покопавшись нашел решение на форуме майкрософта, у меня сработало.




Схема такая, меняется серверный код лукапа, единожды.
После этого в клиентском коде все делается почти так же как и раньше, главное иметь строку запроса Fetch.

Итак, сначала строим запрос. Заходим в расширенный поиск, ставим свои условия, ищем.
Если запрос тот что нам нужен, нажимаем F11, в адресной строке пишем
javascript:alert(resultRender.FetchXml.value);

Нажимаем Enter, должно выскочить окошко с текстом запроса, чтобы не переписывать текст, можно нажать ctrl+c, и скопировать текст в блокнот.

Далее самое интересное, меняется как код в скрипте так и серверный код.

вставил свой пример,
есть два лукапа, город и район, при выборе города нужно ограничивать число районов.

код скрипта, (смена города)
Код:
var oCity  = crmForm.all.etik_linkaddrcity;
var oDistrict = crmForm.all.etik_linkdistrict;

if(oCity != null && oDistrict!= null )
{
if(oDistrict.DataValue != null)
oDistrict.DataValue = null;

if(oCity.DataValue == null)
{
oDistrict.Disabled = true;
}
else
{
oDistrict.Disabled = false;

oDistrict.lookupbrowse = 1;

var search = "здесь должна быть полученная вами строка";

oDistrict.AddParam("search", search);


}
}
else
{
alert('Нет полей город и\или район');
}
Серверный код:

В следующую аспх страницу CRMWeb\_controls\lookup\lookupsingle.aspx
в самое начало страницы скопируйте следующий код
(!!! сделайте копию лукапа на всякий пожарный...)

Код:
<script runat="server">

protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
crmGrid.PreRender += new EventHandler(crmGrid_PreRender);
}

void crmGrid_PreRender(object sender, EventArgs e)
{
if( Request["search"] + "" != "" && Request["browse"] + "" == "1" )
{
crmGrid.AddParameter("fetchxml", Request["search"] );
crmGrid.Parameters.Remove("searchvalue");
}
}

</script>
Теперь можете проверять. Чуть сложнее чем в 3.0, но только первый раз.
Решение мухлевое, как выше удачно выразились : ), так что лучше употреблять если хоть немного понимаете что именно вы делаете: ).

Спасибо интернету, товарищам
Adi Katz, за фильтрацию в 4.0
http://forums.microsoft.com/Dynamics...7530&SiteID=27

и Ronald Lemmen
за способ получения Fetch
http://ronaldlemmen.blogspot.com/200...-fetchxml.html
вверх^ к полной версии понравилось! в evernote
Комментарии (2):
Olbanez 04-09-2008-06:42 удалить
Блин, вот ты зачем так умно пишешь, голова ведь заболит.
тот кто занимается црмом тот поймет - там все очень просто на самом деле если б ты про свой 1цы написал я бы вообще наверно ниче не понял : )


Комментарии (2): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник Фильтрация лукапа в MS CRM 4.0 | Чарубаэль - Дневник | Лента друзей Чарубаэль / Полная версия Добавить в друзья Страницы: раньше»