|
04.04.2008, 12:46 | #1 |
Участник
|
Прайс-листы
Здравствуйте.
Как можно сделать так, чтобы при выставлении счёта, к нему можно было добавить продукты только из выбранного прайса. У нас все продукты разбиты по направлениям. И каждый продукт закреплён за одним прайсом. Нужно, чтобы при выставлении счёта, менеджер выбрал прайс и ему навыбор уже предлагались продукты для добавления только из этого прайса. CRM же даёт для добавления список всех существующих продуктов, вне зависимости от выбранного прайса. Подскажите, пожалуйста. |
|
04.04.2008, 13:15 | #2 |
MCTS
|
Этот вопрос уже обсуждался, к сожалению стандартными средствами и настройкой ни как. Это дополнительная разработка
|
|
04.04.2008, 13:56 | #3 |
Участник
|
Что-то я не могу найти, где он обсуждался
|
|
05.04.2008, 12:24 | #4 |
Moderator
|
К лукапу можно прикрутить дополнительный фильтр - строку fetch запроса, где построить необходимое вам ограничение. Сейчас под рукой нет материала, попробуйте поискать на форме или напомните мне в будни через личку.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
|
За это сообщение автора поблагодарили: Верба (1). |
07.04.2008, 10:04 | #5 |
Moderator
|
На всякий случай, пока этот метод - неподдерживаемая конфигурация.
|
|
07.04.2008, 14:51 | #6 |
CRM
|
В 4ке и этим не воспользоваться... :-( Правда есть сторонняя разработка
__________________
MS CRM 3.0/4.0 Sharepoint 2003, MOSS 2007/2010 |
|
07.04.2008, 15:23 | #7 |
Moderator
|
Необходимо в событие загрузки формы добавить что-то вроде:
someLookup.additionalparams = fetchXml= <fetch mapping='logical'> <entity name='product'> <all-attributes/> <filter type='and'><condition чего-то там/></filter></entity></fetch> К сожалению нет времени строить сам запрос, поэтому могу лишь адресовать вас к SDK. так же есть мухлевый способ получить fetch запрос любой сложности: можно сохранить нужный вам фильтр при помощи представления расширенного поиска, после чего залезть в базу и сдуть оттуда. Так же есть методы веб сервисов, которые позволяют преобразовывать запросы Excecute методов в Fetch запрос. Возможно вам будет проще получить код запроса таким образом.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
05.05.2008, 08:44 | #8 |
Участник
|
Столкнулся с тем что старый метод, присвоение 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> Решение мухлевое, как выше удачно выразились : ), так что лучше употреблять если хоть немного понимаете что именно вы делаете: ). Спасибо интернету, товарищам 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). |
|
Похожие темы | ||||
Тема | Ответов | |||
Доступ к прайс-листам | 2 | |||
Почему Прайс-лист и продукты вынесены в "Параметры"? | 6 | |||
Программное создание позиции прайс-листа | 1 | |||
Прайс Лист | 4 | |||
Прайс html поместить в CRM? | 2 |
|