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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.04.2007, 11:43   #1  
Dissident is offline
Dissident
Вопрошающий
Аватар для Dissident
 
210 / 24 (1) +++
Регистрация: 07.06.2006
Адрес: Тюмень
! Фильтр улиц по городу
Добрый день.
Господа подскажите как решить следующую проблему:

В Организациях Адрес формируем из справочников Страна, Город Улица (соответствующие поля вынесены на форму Организации).

Естественно сами справочники связаны между собой: 1-N (1 страна к N городов, 1 город к N улиц)

Теперь собственно вопрос: Если я в Организации устанавливаю конкретную страну, как мне при нажатии на выбор городов, получить список отфильтрованных городов по этой стране, а не все города справочника (c улицами соответственно такая же проблема)?

Если кому-то не сложно - с примером.

Заранее благодарен
__________________
Победивший противника - силен, победивший себя - величественнен
Старый 25.04.2007, 14:12   #2  
sam is offline
sam
Участник
 
160 / 25 (1) +++
Регистрация: 04.08.2003
Адрес: Красноярск
По сути нужно фильтровать лукапы, обсуждалось здесь
Как осуществить фильтрацию значений типа lookup?

приводил там ссылку -
http://www.gotdotnet.com/codegallery...2-4ecd1652ef53

У себя применял, работает, не знаю поддерживаемая ли кастомизация.

Вкратце там для дополнительного атрибута лукапа, добавляется строка фильтра - похожая на fetch
строку приходится составлять вручную - важно не ошибиться.

Это нужно делать на онлоаде формы и при смене верхних справочников - соответственно менять условия на нижестоящие, т.е. при смене страны на справочник города,
при смене города на улицу.

Если надо могу свои примеры привести
Старый 26.04.2007, 10:08   #3  
Dissident is offline
Dissident
Вопрошающий
Аватар для Dissident
 
210 / 24 (1) +++
Регистрация: 07.06.2006
Адрес: Тюмень
Sam, если не сложно на конкретном примере поясни, не вьеду абсолютно ...
Есть таблы
Организации Account (системная)
Страны New_State (добавлена)
Города New_City (добавлена)
Улицы New_Street (добавлена)
Есть отношения
1) /*страна - города*/
New_State.new_stateid (1) -> (N) New_City.new_state_city
/*страна - организации*/
New_State.new_stateid (1) -> (N) Account.new_state_account
2) /*город - улицы*/
New_City.new_cityid (1) -> (N) New_Street.new_city_street
/*город - организации*/
New_City.new_cityid (1) -> (N) Account.new_city_account
3) /*улица - организации*/
New_Street.new_streetid (1) -> (N) Account.new_street_account
На форме Организации три лукапа
1) Account.new_state_account
2) Account.new_city_account
3) Account.new_street_account

Фильтры вешаются на onLoad формы Организация или на onLoad соотв. формы Страны, Города, Улицы? вот что непонятно...

Если не трудно - что где должно стоять? н-р кусочек кода для вылавливания городов (для улиц сделаю по аналогии)

Заранее благодарен
__________________
Победивший противника - силен, победивший себя - величественнен
Старый 26.04.2007, 11:58   #4  
sam is offline
sam
Участник
 
160 / 25 (1) +++
Регистрация: 04.08.2003
Адрес: Красноярск
ну для простейшего случая сделал бы так:
(чтобы город в зависимости от страны выбирался.)
Этот код нужно цеплять на onLoad на acccount

Код:
// заполняем условие на города - чтобы показывались только по выбранной стране

var oStateLookup = crmForm.all.new_state_account;
var oCityLookup = crmForm.all.new_city_account;
var oStreetLookup = crmForm.all.new_street_account;

//если такое поле есть
if( oStateLookup  != null)
	//если оно содержит данные
	if( oStateLookup.DataValue != null)
	{
		 oCityLookup.lookupbrowse = 1; 
		//в доп параметры поля город пишем фильтр - фильтруем сущность город таким образом чтобы ее поле ссылка на страну была равна выбранной в настоящий момент на форме стране
		 oCityLookup.additionalparams = "fetchXml=<fetch mapping='logical'><entity name='New_City'><all-attributes/><filter type='and'><condition attribute='new_state_city' operator='eq' value=' " + oStateLookup.DataValue[0].id+"' /></filter></entity></fetch> ";
	}
	else
	{
		// не позволяем выбирать город без указания страны
		 oCityLookup.Disabled = true;
		// не позволяем выбирать улицу без указания страны
		oStreetLookup.Disabled = true;
	}
Аналогично повторять при изменении страны - на форме account на lookup state
на событие onchange
при этом надо обнулять выбранный город и улицу.

Думаю дальше сами разовьете пример до улицы, привязанной к городу
Старый 26.04.2007, 12:04   #5  
Dissident is offline
Dissident
Вопрошающий
Аватар для Dissident
 
210 / 24 (1) +++
Регистрация: 07.06.2006
Адрес: Тюмень
Огромный гранд мерси )))
Буду ковырять )))
__________________
Победивший противника - силен, победивший себя - величественнен
Старый 26.04.2007, 12:19   #6  
sam is offline
sam
Участник
 
160 / 25 (1) +++
Регистрация: 04.08.2003
Адрес: Красноярск
: )
Старый 21.01.2008, 07:04   #7  
ShurikEv is offline
ShurikEv
CRM
 
213 / 28 (1) +++
Регистрация: 25.04.2006
Адрес: г. Новосибирск
А кто-нибудь с множественным lookup это проделывал? При наложении фильтра на такое поле появляется сообщение:
Microsoft CRM Unhandled Error Details: body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;} p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px} b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px} H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red } H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon } pre {font-family:"Lucida Console";font-size: .9em} .marker {font-weight: bold; color: black;text-decoration: none;} .version {color: gray;} .error {margin-bottom: 10px;} .expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; } Server Error in '/' Application.

Object reference not set to an instance of an object.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:

[NullReferenceException: Object reference not set to an instance of an object.] Microsoft.Crm.Util.ConvertUserFindToLike(String searchValue) +18 Microsoft.Crm.Application.Platform.Data.FetchBuilder.WriteConditionElement(String attribute, String conditionOperator, String conditionValue) +126 Microsoft.Crm.Web.Controls.Lookup.LookupParser.ParseSectionDataSource(Object elementName) +133 Microsoft.Crm.Web.Controls.Lookup.LookupParser.Execute(Int32 objectType) +454 Microsoft.Crm.Web.Controls.Lookup.LookupParser.ExecuteXml(String xml, Int32 objectType) +88 Microsoft.Crm.Web.Controls.Lookup.LookupDataPage.ConfigurePage() +1301 Microsoft.Crm.Application.Controls.AppPage.OnPreRender(EventArgs e) +20 System.Web.UI.Control.PreRenderRecursiveInternal() +62 System.Web.UI.Page.ProcessRequestMain() +1499

Если тип multi меняю на single, то фильтр отрабатывает корректно. Пробовал менять lookupClass - не помогло :-(

Спасибо.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как наложить фильтр на форму выбора значений? if_maks Dynamics CRM: Разработка 18 21.07.2009 12:11
Crm 4.0 фильтр для мультилукапа по fetchxml Age17 Dynamics CRM: Разработка 15 15.12.2008 13:58
Про фильтр в отчетах tatra Dynamics CRM: Разработка 2 29.01.2008 09:07
Как сделать фильтр в отчете tatra Dynamics CRM: Разработка 2 15.01.2008 09:28
фильтр CRMAF_ в отчетах kras Dynamics CRM: Разработка 5 15.12.2006 12:44

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

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

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