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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.03.2013, 14:39   #1  
-O_o- is offline
-O_o-
Еда - топливо, Одежда - н
Аватар для -O_o-
Лучший по профессии 2015
Лучший по профессии 2014
 
727 / 80 (4) ++++
Регистрация: 11.05.2012
Адрес: Киев
А зачем сразу скрипты использовать? Пользователю нужно сразу видеть что ли значение в этом поле... Могу предположить, что вы пытаетесь заполнить поле "имя". Что бы потом при поиске было видно что это за запись. Если так, то советую вам скрыть это поле, сделать его не обязательным для заполнения и создать БП на создание и/или обновление записи. И пусть он и заполняет текстовое поле из лукапа...
Старый 11.03.2013, 15:01   #2  
Ion is offline
Ion
Участник
 
332 / 16 (1) ++
Регистрация: 19.12.2012
У нас логика немного другая: у нас есть два одинаковых поля, одно поле А заполняется пользователем из Lookup, если пользователь создал сущность стандартным методом (создать новую запись типа...), при этом поле Е пустое и скрыто для пользователя, НО ДОЛЖНО ЗАПОЛНИТЬСЯ ЗНАЧЕНИЕМ ПОЛЯ "А".
Другой вариант - сущность Custom создается со специального модуля написанного на Silver light, и значение поля Е проставляется скриптом, а поле А скрывается и не видно пользователям.
Мне необходимо значение поля А присваивать полю Е, если пользователь выбирает его из Lookup т.к. потом мы значение Е передаем в другую систему (ERP).

Да, присваивать надо значение конкретно выбранного атрубута из Lookup в текстовое поле.

Последний раз редактировалось Ion; 11.03.2013 в 15:04.
Старый 11.03.2013, 15:28   #3  
-O_o- is offline
-O_o-
Еда - топливо, Одежда - н
Аватар для -O_o-
Лучший по профессии 2015
Лучший по профессии 2014
 
727 / 80 (4) ++++
Регистрация: 11.05.2012
Адрес: Киев
Thumbs up
Цитата:
Сообщение от Ion Посмотреть сообщение
У нас логика немного другая: у нас есть два одинаковых поля, одно поле А заполняется пользователем из Lookup, если пользователь создал сущность стандартным методом (создать новую запись типа...), при этом поле Е пустое и скрыто для пользователя, НО ДОЛЖНО ЗАПОЛНИТЬСЯ ЗНАЧЕНИЕМ ПОЛЯ "А".
Другой вариант - сущность Custom создается со специального модуля написанного на Silver light, и значение поля Е проставляется скриптом, а поле А скрывается и не видно пользователям.
Мне необходимо значение поля А присваивать полю Е, если пользователь выбирает его из Lookup т.к. потом мы значение Е передаем в другую систему (ERP).

Да, присваивать надо значение конкретно выбранного атрубута из Lookup в текстовое поле.
Повесьте БП и не мучайтесь. Там уже не важно как будет запись создаваться... Поле Е всегда будет заполняться значением из поля А
Старый 11.03.2013, 15:31   #4  
Ion is offline
Ion
Участник
 
332 / 16 (1) ++
Регистрация: 19.12.2012
Цитата:
Сообщение от -O_o- Посмотреть сообщение
Повесьте БП и не мучайтесь. Там уже не важно как будет запись создаваться... Поле Е всегда будет заполняться значением из поля А
Я то создал, только вот значение Е заполняется названием, а мне надо, чтобы там был другой атрубут
Старый 11.03.2013, 16:02   #5  
Ion is offline
Ion
Участник
 
332 / 16 (1) ++
Регистрация: 19.12.2012
Можно еще один глупый вопрос - мне надо вешать этот скрипт на форму Событие - Onload, а поле Lookup делать OnChange.

Не судите строго. Пытаюсь читать SDK, но новичку непросто сориентироваться самостоятельно.

Забы написать изначально. У меня СRМ 2011

Последний раз редактировалось Ion; 11.03.2013 в 16:15.
Старый 11.03.2013, 15:30   #6  
Likefire is offline
Likefire
Заноза в заднице
Аватар для Likefire
MCBMSS
Лучший по профессии 2009
 
547 / 50 (3) ++++
Регистрация: 22.10.2007
Адрес: Москва
Записей в блоге: 1
Как-то так
X++:
// Пример для CRM2011
var lookupValue = lookupAttrib.getValue();
if (lookupValue != null && lookupValue.length > 0) {
    // здесь первый элемент массива - это и есть выбранное в Lookup-поле значение, у которого есть три атрибута: id, name и type (либо entityType), которые характеризуют выбранный объект
    var lookupValueId = lookupValue[0].id;
    // далее: нужно получить атрибут в который нужно присвоить значение и собственно присвоить (пример для текстового атрибута)
    var assignAttrib = Xrm.Page.getAttribute('E');
    // если атрибут в форме только для чтения - перед присвоением установим submit mode
    assignAttrib.setSubmitMode('always');
    assignAttrib.setValue(fieldValue);
}
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков!
За это сообщение автора поблагодарили: Ion (1).
Старый 12.03.2013, 13:58   #7  
Ion is offline
Ion
Участник
 
332 / 16 (1) ++
Регистрация: 19.12.2012
Цитата:
Сообщение от Likefire Посмотреть сообщение
X++:
// Пример для CRM2011
var lookupValue = lookupAttrib.getValue();
if (lookupValue != null && lookupValue.length > 0) {
    // здесь первый элемент массива - это и есть выбранное в Lookup-поле значение, у которого есть три атрибута: id, name и type (либо entityType), которые характеризуют выбранный объект
    var lookupValueId = lookupValue[0].id;
    // далее: нужно получить атрибут в который нужно присвоить значение и собственно присвоить (пример для текстового атрибута)
    var assignAttrib = Xrm.Page.getAttribute('E');
    // если атрибут в форме только для чтения - перед присвоением установим submit mode
    assignAttrib.setSubmitMode('always');
    assignAttrib.setValue(fieldValue);
}
Поправьте, сели че не так.

function SetValueto{

var lookupValue = Xrm.Page.data.entity.attributes.get("new_productgroupid").getValue();
// или так не правильно?

if (lookupValue != null && lookupValue.length > 0) {

// здесь первый элемент массива - это и есть выбранное в Lookup-поле значение, у которого есть три атрибута: id, name и type (либо entityType), которые характеризуют выбранный объект

var lookupValueId = lookupValue[0].id;

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

var assignAttrib = Xrm.Page.getAttribute(“[new_brend_test]”);//

// если атрибут в форме только для чтения - перед присвоением установим submit mode

assignAttrib.setSubmitMode('always');

assignAttrib.setValue(fieldValue);

}

}
Старый 12.03.2013, 15:13   #8  
Anros is offline
Anros
Участник
 
54 / 28 (1) +++
Регистрация: 01.07.2009
Цитата:
Сообщение от Ion Посмотреть сообщение
function SetValueto{
пропущены скобки, нужно
function SetValueto() {

Цитата:
Сообщение от Ion Посмотреть сообщение
var lookupValue = Xrm.Page.data.entity.attributes.get("new_productgroupid").getValue();
// или так не правильно?
правильно, но можно короче
var lookupValue = Xrm.Page.getAttribute("new_productgroupid").getValue();

Цитата:
Сообщение от Ion Посмотреть сообщение
assignAttrib.setValue(fieldValue);
переменная fieldValue не определена

если нужно не id, а текст с лукапа, то нужно писать так
var lookupValueName = lookupValue[0].name;
...
assignAttrib.setValue(lookupValueName );
Старый 12.03.2013, 15:44   #9  
Ion is offline
Ion
Участник
 
332 / 16 (1) ++
Регистрация: 19.12.2012
Цитата:
Сообщение от g.Naukovych Посмотреть сообщение
var assignAttrib = Xrm.Page.getAttribute('new_brend_test');

без квадратных скобок.

Таким образов Вы получаете id записи, которая выбрана в lookup.
Вам именно id необходимо?
Цитата:
Сообщение от Anros Посмотреть сообщение
пропущены скобки, нужно
function SetValueto() {


правильно, но можно короче
var lookupValue = Xrm.Page.getAttribute("new_productgroupid").getValue();


переменная fieldValue не определена

если нужно не id, а текст с лукапа, то нужно писать так
var lookupValueName = lookupValue[0].name;
...
assignAttrib.setValue(lookupValueName );


Спасибо большое. Вот что получилось на выходе:

function SetValueto () {

var lookupValue = Xrm.Page.getAttribute("new_productgroupid").getValue();


if (lookupValue != null && lookupValue.length > 0) {


var lookupValueName = lookupValue[0].name;

var assignAttrib = Xrm.Page.getAttribute(“new_brend_test”);

assignAttrib.setSubmitMode('always');

assignAttrib.setValue(lookupValueName);


}

}

Но, СРМ выдает ошибки при загрузке:
---------------------------
Сообщение с веб-страницы
Ошибка в изменяемом событии поля.
Поле:window
Событиеnload
Ошибка:Значением свойства "SetValueto" или является NULL, или оно не определено, или не является объектом Function
Миниатюры
Нажмите на изображение для увеличения
Название: Скрин 3.png
Просмотров: 398
Размер:	33.4 Кб
ID:	8108  
Изображения
 
Старый 12.03.2013, 15:54   #10  
Anros is offline
Anros
Участник
 
54 / 28 (1) +++
Регистрация: 01.07.2009
Цитата:
Сообщение от Ion Посмотреть сообщение
var assignAttrib = Xrm.Page.getAttribute(“new_brend_test”);
Кавычки должны быть обычными
var assignAttrib = Xrm.Page.getAttribute("new_brend_test");
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Не устанавливается значение поля bit crm 4.0 NoTimeToCry Dynamics CRM: Разработка 3 24.08.2012 18:59
Мелкомягкий CRM: Отображение в Lookup’е произвольного поля вместо основного атрибута Blog bot Dynamics CRM: Blogs 3 26.04.2010 19:10
Как получить значение поля? Elka Dynamics CRM: Разработка 4 26.06.2009 13:52
Присвоить lookup значение Elka Dynamics CRM: Разработка 7 08.06.2009 12:07
Как взять текстовое значение из поля LookUp tatra Dynamics CRM: Разработка 2 21.11.2007 08:20

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

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

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