25.04.2007, 11:43 | #1 |
Вопрошающий
|
Фильтр улиц по городу
Добрый день.
Господа подскажите как решить следующую проблему: В Организациях Адрес формируем из справочников Страна, Город Улица (соответствующие поля вынесены на форму Организации). Естественно сами справочники связаны между собой: 1-N (1 страна к N городов, 1 город к N улиц) Теперь собственно вопрос: Если я в Организации устанавливаю конкретную страну, как мне при нажатии на выбор городов, получить список отфильтрованных городов по этой стране, а не все города справочника (c улицами соответственно такая же проблема)? Если кому-то не сложно - с примером. Заранее благодарен
__________________
Победивший противника - силен, победивший себя - величественнен |
|
25.04.2007, 14:12 | #2 |
Участник
|
По сути нужно фильтровать лукапы, обсуждалось здесь
Как осуществить фильтрацию значений типа lookup? приводил там ссылку - http://www.gotdotnet.com/codegallery...2-4ecd1652ef53 У себя применял, работает, не знаю поддерживаемая ли кастомизация. Вкратце там для дополнительного атрибута лукапа, добавляется строка фильтра - похожая на fetch строку приходится составлять вручную - важно не ошибиться. Это нужно делать на онлоаде формы и при смене верхних справочников - соответственно менять условия на нижестоящие, т.е. при смене страны на справочник города, при смене города на улицу. Если надо могу свои примеры привести |
|
26.04.2007, 10:08 | #3 |
Вопрошающий
|
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 |
Участник
|
ну для простейшего случая сделал бы так:
(чтобы город в зависимости от страны выбирался.) Этот код нужно цеплять на 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; } на событие onchange при этом надо обнулять выбранный город и улицу. Думаю дальше сами разовьете пример до улицы, привязанной к городу |
|
26.04.2007, 12:04 | #5 |
Вопрошающий
|
Огромный гранд мерси )))
Буду ковырять )))
__________________
Победивший противника - силен, победивший себя - величественнен |
|
26.04.2007, 12:19 | #6 |
Участник
|
: )
|
|
21.01.2008, 07:04 | #7 |
CRM
|
А кто-нибудь с множественным 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 - не помогло :-( Спасибо. |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Как наложить фильтр на форму выбора значений? | 18 | |||
Crm 4.0 фильтр для мультилукапа по fetchxml | 15 | |||
Про фильтр в отчетах | 2 | |||
Как сделать фильтр в отчете | 2 | |||
фильтр CRMAF_ в отчетах | 5 |
|