22.06.2006, 07:23 | #1 |
Участник
|
динамические lookup
Добрый день. Знаю что можно реализовать динамические picklist-ы(в событиях OnChange и OnLoad), т.е. значения одного будут зависеть от значений другого. Можно тоже самое реализовать для lookup? Необходимо чтобы на одной форме разные lookup, но значения одного зависели от выбранного во втором.
И вообще можно ли в событиях обращаться к базе данных CRM? |
|
26.06.2006, 10:40 | #2 |
Участник
|
В событиях OnChange & OnLoad для обработки используется скрипт. А вот в lookup скрипт уже кажется не прикрутишь.
На сколько я прошерстил базовую функциональность зависимость спектра значений для выбора в поле от другого поля реализована для единиц измерения. Вот только раскрутить как это сделано пока что не смог. Не получается глубоко залезть. Реализовать подобное самому не получилось. |
|
26.06.2006, 10:58 | #3 |
Участник
|
Здравствуйте! Тоже столкнулась с этой проблемой. Tiamat, вы не могли бы уточнить где именно можно посмотреть пример работы подобной функциональности?
|
|
30.06.2006, 17:40 | #4 |
Участник
|
Цитата:
Сообщение от Tiamat
В событиях OnChange & OnLoad для обработки используется скрипт.
|
|
05.07.2006, 15:58 | #5 |
Заливщик кампаунда
|
Можно все. Вопрос - такая доработка Microsoft поддерживается?
А так все довольно просто(примерно как можно сделать): 1. Описываем событие в .htc файло, которое отвечает за элемент лукап формы 2. И вставляем что-то типа: if (this.crmForm.etc==1024) {this.outerHtml = "";}
__________________
They can have my gun when they pry it from my cold dead fingers |
|
05.07.2006, 16:50 | #6 |
Участник
|
Цитата:
Сообщение от paolo
А можно получить пример скрипта?
__________________
"Поживем - увидим", сказал слепой, больной СПИДом. |
|
18.07.2006, 12:05 | #7 |
Гость
|
Цитата:
Сообщение от Dr.Kurpatov
Можно все. Вопрос - такая доработка Microsoft поддерживается?
А так все довольно просто(примерно как можно сделать): 1. Описываем событие в .htc файло, которое отвечает за элемент лукап формы 2. И вставляем что-то типа: if (this.crmForm.etc==1024) {this.outerHtml = "";} |
|
18.07.2006, 12:05 | #8 |
Гость
|
Цитата:
Сообщение от glad
Добрый день. Знаю что можно реализовать динамические picklist-ы(в событиях OnChange и OnLoad), т.е. значения одного будут зависеть от значений другого. Можно тоже самое реализовать для lookup? Необходимо чтобы на одной форме разные lookup, но значения одного зависели от выбранного во втором.
И вообще можно ли в событиях обращаться к базе данных CRM? |
|
19.07.2006, 12:55 | #9 |
Участник
|
К сожалению нет. Самому интересно как это делается.
|
|
19.07.2006, 21:05 | #10 |
Гость
|
Я реализовал это по средствал callout. Правда получилось не совсем динамически ) postcreate. Выбираешь из списка необходимую сущность, жмешь сохранить и поля заполняются. Не так красиво как с динамической, но зато результат тотже.
|
|
20.07.2006, 10:20 | #11 |
Участник
|
Насколько я понял Вас, задача была в зависимости от выбранного значения Lookup на форме заполнять другие поля(простые атрибуты) на этой же форме. Я бы попробовал это реализовать на событии OnChange поля Lookup в котором бы заполнял другие поля формы. Если алгоритм поиска данных сложный(требуются данные с сервера), тогда необходимо вызывать свой Web-сервис в котором искать значения атрибутов.
Я же хочу реализовать, чтобы при определенном выбранном значении одного Lookup, ограничивались возможные значения другого Lookup, а не как по умолчанию все значения справочника. Отличие от Вашей задачи, что данные не проставляются в поля формы, а лишь ограничивается список возможных значений. |
|
21.07.2006, 10:18 | #12 |
Гость
|
Тогда, может быть подскажите, как в скрипте обратиться к данным выбранной сущности? Чтобы действительно реализовать это на ОnChange.
|
|
21.07.2006, 14:44 | #13 |
Участник
|
Пожалуйста. Только извиняюсь за пример. Суть понятна.
Необходимо этот код вставить в событие onChange поля parentaccountid - вышестоящая организация для сущности account. var oADR = crmForm.all.address1_name; var lookupItem = new Array; lookupItem = crmForm.all.parentaccountid.DataValue; if (lookupItem[0] != null) { alert(lookupItem[0].name); alert(lookupItem[0].typename); alert(lookupItem[0].id); alert(lookupItem[0].type); oADR.DataValue = lookupItem[0].name; } |
|
|
За это сообщение автора поблагодарили: Paolo (1). |
21.07.2006, 23:16 | #14 |
Гость
|
Эх, если бы все было бы так просто Немножко не то. Приведу пример:
Есть сущность "договор" в ней есть атрибут - организация (lookup на account) Пользователь создает новый договор и первым делом выбирает организацию с которой заключается договор и как только он выбрал нужную (событие OnChange) остальные атрибуты формочки заполнились данными выбранной организации, а именно: телефон, имя руководителя, реквизиты бла бла бла... Вот собственно говоря что требуется. А как я понял из приведенного выше кода можно узнать только название выбранной сущности и его GUID |
|
24.07.2006, 06:18 | #15 |
Участник
|
А что если создать mappings между договором и организациями и создавать договор из карточки организации ?
Значения полей между которыми созданы mappings должны скопироваться. |
|
24.07.2006, 10:51 | #16 |
Участник
|
Для faust911. Я же и говорю, что так можно реализовать только простые данные, если Вам нужно обращение к серверу(чтобы получить оттуда данные этой организации), Вам надо написать свой Web-сервис, который будет это делать и его вызывать в событии onChange поля LookUp. А вообще хороший вариант предложил sam. Где это возможно надо обходиться настройкой.
|
|
24.07.2006, 14:32 | #17 |
Гость
|
Прошу прощения за глупый вопрос, но не объясните ли вы как по событию onChange
можно вызвать вебсервис. Буду очень признеателен. |
|
24.07.2006, 14:56 | #18 |
Участник
|
В скрипте надо объявить объект
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); а после этого используя его метод open вызвать Ваш Web-service. |
|
|
За это сообщение автора поблагодарили: mazzy (5). |
24.07.2006, 20:58 | #19 |
Гость
|
Спасибо большое
|
|
24.07.2006, 21:33 | #20 |
Участник
|
Цитата:
Сообщение от faust911
Спасибо большое
Слева от понравившегося вам ответа есть информация об участнике. Щелкните на зеленый квадратик под именем участника - вы сможете добавить репутацию. |
|