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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.10.2013, 12:08   #1  
Space-06 is offline
Space-06
Участник
 
57 / 10 (1) +
Регистрация: 23.01.2013
Сброс PickList при загрузке Формы
Добрый День в очередной раз уважаемые коллеги!!!

Столкнулся вот с какой ситуацией:

На форму добавлено поле с выбором параметров, и по умолчанию выставлено определенное значение из списка. И при загрузке формы (OnLoad событие для других скриптов) сбрасывается значение этого пиклиста в значение по умолчанию (Пустое) Что не есть правильно.

Каким то образом это можно исправить? Чтоб при загрузке формы не сбрасывалось значение. Не прибегая к дополнительным разработкам???
Старый 01.10.2013, 12:27   #2  
-O_o- is offline
-O_o-
Еда - топливо, Одежда - н
Аватар для -O_o-
Лучший по профессии 2015
Лучший по профессии 2014
 
727 / 80 (4) ++++
Регистрация: 11.05.2012
Адрес: Киев
Вообще-то в свойствах поля есть (значение по умолчанию).
Как раз при CREATE оно и будет светиться. (но насколько я понял, вы уже в курсе этого)
Если JS сбрасывает значение поля, то смотрите коды. Больше у меня нет идей.
Старый 01.10.2013, 12:45   #3  
Space-06 is offline
Space-06
Участник
 
57 / 10 (1) +
Регистрация: 23.01.2013
Самое то интересное то что для этого списка выставляю специально нужное значение, (не пустое) и наблюдаю что при загрузке оно долю секунды все таки высвечивается, но потом пропадает (т.е.) сбрасывается

На само поле не назначено ни одно событие и в коде нет ни одного пересечения с этим полем.
Старый 01.10.2013, 12:49   #4  
spectr is offline
spectr
Участник
Аватар для spectr
MCBMSS
Лучший по профессии 2014
 
287 / 70 (3) ++++
Регистрация: 19.10.2011
Адрес: Киев
Если можно прикрепите весь скрипт с формы и скрин формы с указанием поля которое нулится.
Потому что тут нечего рассуждать. Если при создании не выставляется по умолчанию то у вас точно скрипт что-то мутит.
Старый 01.10.2013, 15:49   #5  
Space-06 is offline
Space-06
Участник
 
57 / 10 (1) +
Регистрация: 23.01.2013
Скрипт:
X++:
function optionSetChanged() {


    var _collection = getCollection(); 
    var _selectedCategory = null;
    var _categoryOptionset = Xrm.Page.ui.controls.get("new_category");
    if (_categoryOptionset != null)
        _selectedCategory = _categoryOptionset.getAttribute().getValue();
    var _categoryOptions = _categoryOptionset.getAttribute().getOptions();
    var _selectedCampaign = Xrm.Page.getAttribute("new_typecampaign").getText();

    if (_selectedCampaign == "") {
        _categoryOptionset.clearOptions();
    }
    else {
        for (var i = 0; i < _collection.length; i++) {
            if (_selectedCampaign.toLowerCase() == _collection[i].Campaign.toLowerCase()) {
                _categoryOptionset.clearOptions();
                for (var j = 0; j < _collection[i].Categories.length; j++) {
                    for (var k = 0; k < _categoryOptions.length; k++) {
                        if (_collection[i].Categories[j].toLowerCase() == _categoryOptions[k].text.toLowerCase()) {
                            _categoryOptionset.addOption(_categoryOptions[k]);
                            break;
                        }
                    }
                }
                break;
            }
        }
        if (_categoryOptionset != null && _selectedCategory != null)
            _categoryOptionset.getAttribute().setValue(_selectedCategory);
    }
}


function getCollection() {


    var _collection = new Array();
    var Kholod_Categories = new Array("Интерес", "Отложенный Интерес", "Информация отправлена", "ЛК зарегистрирован", "Вебинар интересен", "Мероприятия приглашать", "Отказ", "Отказ. Не профильный", "Перезвонить", "Уточнить контакты", "Недозвон");
    var Kholod_obj = { Campaign: "Холодный Обзвон", Categories: Kholod_Categories };
    _collection.push(Kholod_obj);

    var Marketing_Categories = new Array("Интерес", "Отложенный Интерес", "Приглашение отправлено", "Зарегистрирован", "Пришел", "Не пришел", "Отказ", "Отказ. Не профильный", "Перезвонить", "Уточнить контакты", "Недозвон", "Рассматривают приглашение", "Заинтересован участвовать", "Напомнили о регистрации");
    var Marketing_obj = { Campaign: "Маркетинговый Обзвон", Categories: Marketing_Categories };
    _collection.push(Marketing_obj);

    var Information_Categories = new Array("Информация отправлена", "Требуется консультация", "Проинформирован", "Отказ", "Перезвонить", "Уточнить контакты", "Недозвон", "Интерес");
    var Information_obj = { Campaign: "Информационный Обзвон", Categories: Information_Categories };
    _collection.push(Information_obj);

    return _collection;
}
Самое интересное - то что на пустой форме - все отображается, нулится само поле лишь только в том случае когда запись эту открываем в представлении отличной от последней давольно забано получается:

вот ссылка на видео, где все показано: ВИДЕО

удобнее скачать к себе на комп и посмотреть в полноэкранном режиме
Старый 01.10.2013, 16:01   #6  
-O_o- is offline
-O_o-
Еда - топливо, Одежда - н
Аватар для -O_o-
Лучший по профессии 2015
Лучший по профессии 2014
 
727 / 80 (4) ++++
Регистрация: 11.05.2012
Адрес: Киев
меня смутил тот факт, что в первых 2 записях вообще не отображается значение поля "тип кампании" в верхнем колонтитуле (при открытии).
А вот в 3-й записи отображается и поле не чиститься... Может оно вообще в базу не записывает?
Проверьте просто в базе, есть ли значение в это поле для этих записей?
Кстати, еще так, ради интереса.
Какая нумерация этих значений в поле "тип кампании"? Можете показать? ну там - 10009001 или что-то в этом роде... И посмотрите, не пересекаются эти номера с еще какими-то значениями в других сущностях...

Последний раз редактировалось -O_o-; 01.10.2013 в 16:06.
Старый 01.10.2013, 18:55   #7  
spectr is offline
spectr
Участник
Аватар для spectr
MCBMSS
Лучший по профессии 2014
 
287 / 70 (3) ++++
Регистрация: 19.10.2011
Адрес: Киев
Предлагаю через расширенный поиск посмотреть на колонку Тип кампании.
Думаю там в 1 и 2 будет пусто а в 3 заполнено.

Так как дата создания последнего сегодня там походу все "ок", а в 1 и 2 оно скидывает его в null а так как select не содержит пустого option это заметно.

А если там значения есть то возможно у них поменялись номера (Value). Вы такого не делали ?

и предлагаю еще дописать в код после
Код:
function optionSetChanged() {
такое
Код:
alert("Name: "+Xrm.Page.getAttribute("new_typecampaign").getText()+"Value: "+Xrm.Page.getAttribute("new_typecampaign").getValue());
и скрин показать нам
Старый 01.10.2013, 19:03   #8  
Space-06 is offline
Space-06
Участник
 
57 / 10 (1) +
Регистрация: 23.01.2013
Меня именно это и настораживает в том что при при открытии этих форм оно то и чистится, а в последнем нет. Это и послужило началом дискуссии

нумерация стандартная 100 000 0ХХ - не пересекается с другими сущностями.

последняя запись она последняя в представлении и поэтому (почему то) данные как надо не очищаются.

Смущает лишь тот факт что создавая любое поле с набором параметров - и выставляя их на различные сущности (Звонок, Задача, Факс, контакт и т.д. ) и устанавливая значение по умолчанию - оно очищается - если запись не последняя в представлении.

Отвечая саму себе на мой же вопрос - а что мешает при загрузке формы выставить это значение самому? в принципе ни чего. Одно смущает - зачем добавлять код на действие функционала который уже существует в системе.
Старый 01.10.2013, 19:19   #9  
Space-06 is offline
Space-06
Участник
 
57 / 10 (1) +
Регистрация: 23.01.2013
Цитата:
Так как дата создания последнего сегодня там походу все "ок", а в 1 и 2 оно скидывает его в null а так как select не содержит пустого option это заметно.

А если там значения есть то возможно у них поменялись номера (Value). Вы такого не делали ?
База на самом деле тестовая с почти реальными данными. Код пишется именно сейчас. Это и настораживает что если к форме применяется какой то функционал - почему он не может работать в старых записях?

Значения номеров параметров не менял, так как только что их создал.

сейчас добавил несколько записей - в новых все в порядке, а в старых обнуляется
Старый 02.10.2013, 10:14   #10  
spectr is offline
spectr
Участник
Аватар для spectr
MCBMSS
Лучший по профессии 2014
 
287 / 70 (3) ++++
Регистрация: 19.10.2011
Адрес: Киев
Ну вот как оказалось все просто
CRM при создании нового атрибута (В SQL это столбец таблицы) все старые записи будут с знацением NULL в этом поле. Так как за заполнение этого должен отвечать интерфейс. И еще если был бы функционал который выставляет значение по умолчанию в старые записи, то прикиньте вы создали поле выставили значение по умолчанию и всем старым записям оно поставилось, а потом оказалось что это не то значение по умолчанию и что бы в этом случаи должен был сделать СРМ ?
Так что все там логично.
А чистится так как я и писал:
Цитата:
оно скидывает его в null а так как select не содержит пустого option это заметно.
Старый 02.10.2013, 12:45   #11  
Space-06 is offline
Space-06
Участник
 
57 / 10 (1) +
Регистрация: 23.01.2013
А как быть если с 100% вероятностью я уверен в том что это поле нужно в старых записях, как заставить СРМ все таки эти поля обновить?

Можно конечно на форме скрипт сделать который будет проверять дату создания записи, и в зависимости от разницы в дате устанавливать параметр.
Старый 02.10.2013, 12:50   #12  
-O_o- is offline
-O_o-
Еда - топливо, Одежда - н
Аватар для -O_o-
Лучший по профессии 2015
Лучший по профессии 2014
 
727 / 80 (4) ++++
Регистрация: 11.05.2012
Адрес: Киев
если записей не особо много, то сделайте БП на обновление с запуском вручную.
Выберите записи у которых нет значения и на них запустите этот БП.
Старый 02.10.2013, 12:59   #13  
spectr is offline
spectr
Участник
Аватар для spectr
MCBMSS
Лучший по профессии 2014
 
287 / 70 (3) ++++
Регистрация: 19.10.2011
Адрес: Киев
Да вариантов хватает.
  • БП ручтое
  • Временный сервис
  • Import-Export
Старый 02.10.2013, 13:34   #14  
Space-06 is offline
Space-06
Участник
 
57 / 10 (1) +
Регистрация: 23.01.2013
Спасибо огромное!!!

Все получилось обновить с помощью БП
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
CRM 2011, "нет места на диске" при загрузке формы продукта для возможной сделки mistah Dynamics CRM: Функционал 5 08.11.2012 01:44
При загрузке страницы формы не отображаются записи в гриде. fatty_bu Dynamics CRM: Функционал 3 19.01.2012 12:00
CRM Programmer: Get Picklist Value By Picklist Name Blog bot Dynamics CRM: Blogs 1 05.02.2010 13:17
Microsoft Dynamics CRM Team Blog: CRM 4.0: Checkbox style Multi-Select Picklist Blog bot Dynamics CRM: Blogs 0 01.04.2009 05:07
Jim Wang: CRM 4.0: Checkbox style Multi-Select Picklist Blog bot Dynamics CRM: Blogs 0 11.02.2009 06:05

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

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

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