AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.05.2008, 08:44   #1  
sam is offline
sam
Участник
 
160 / 25 (1) +++
Регистрация: 04.08.2003
Адрес: Красноярск
Столкнулся с тем что старый метод, присвоение 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
За это сообщение автора поблагодарили: Артем Enot Грунин (2), maxim_ufa (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Доступ к прайс-листам Apossum Dynamics CRM: Администрирование 2 09.04.2009 13:52
Почему Прайс-лист и продукты вынесены в "Параметры"? Bakai Madybaev Dynamics CRM: Функционал 6 08.01.2009 16:02
Программное создание позиции прайс-листа ZooY Dynamics CRM: Разработка 1 20.09.2008 04:29
Прайс Лист Сабитов Андрей Dynamics CRM: Разработка 4 10.10.2006 10:20
Прайс html поместить в CRM? Maxim74 Dynamics CRM: Функционал 2 08.06.2006 18:30

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 13:29.