Столкнулся с тем что старый метод, присвоение 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