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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.10.2012, 14:04   #1  
Likefire is offline
Likefire
Заноза в заднице
Аватар для Likefire
MCBMSS
Лучший по профессии 2009
 
547 / 50 (3) ++++
Регистрация: 22.10.2007
Адрес: Москва
Записей в блоге: 1
? Обновление значения поля в форме при изменении связанной записи
Исходные данные: есть форма Сделки, в которой есть связанное представление записей "Платежные поручения".
Необходимо: обновлять значение выбранного поля основной формы Сделки при добавлении либо изменении записи связанных "Платежных поручений".

Если в деталях, то происходит следующее: есть набор записей платежных поручений по сделке, данные оплат по которым нужно иметь в виде суммы в поле сделки. При этом сумма должна учитываться для оплаченных платежных поручений (только в статусе "Оплачено"), что соответственно, добавляет требования, согласно которым удаленные либо отмененные платежные поручения исключаются из общей суммы. Был создан плагин, который реагирует на изменения платежных поручений и если ты их заводишь и обновляешь - сумма связанной сделки пересчитывается и обновляется для записи, но, если платежные поручения создаются или изменяются непосредственно из связанного представления формы сделки, то актуальная сумма будет отображена в форме сделки только после принудительного обновления нажатием F5. Хотелось бы, чтобы поле реагировало на действия, производимые с платежными поручениями, и, в описанном мной режиме не пришлось бы дополнительно обновлять форму сделки (скриптом из события OnSave формы платежного поручения обновить форму сделки получается, но фокус со связанного представления теряется).
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков!
Старый 23.10.2012, 15:22   #2  
Anros is offline
Anros
Участник
 
54 / 28 (1) +++
Регистрация: 01.07.2009
Можно считывать сумму платежных поручений через ajax при переходе в навигации на форму (Information/Сведения)

Код:
document.getElementById("areaForm").attachEvent("onpropertychange", function (e) {
     if (e.propertyName == "style.display" && e.srcElement.style.display == "inline")
            ReloadSum();
    });
За это сообщение автора поблагодарили: Likefire (1).
Старый 23.10.2012, 16:08   #3  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Делал подобную доработку. При запуске формы запускался скрипт, который через определённые интервалы вычитывал при помощи вебсервисов значение интересующего поля. Если полученное значение не равнялось акуальному - просто подменял.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 23.10.2012, 16:35   #4  
Likefire is offline
Likefire
Заноза в заднице
Аватар для Likefire
MCBMSS
Лучший по профессии 2009
 
547 / 50 (3) ++++
Регистрация: 22.10.2007
Адрес: Москва
Записей в блоге: 1
Thumbs up
Цитата:
Сообщение от Anros Посмотреть сообщение
Можно считывать сумму платежных поручений через ajax при переходе в навигации на форму (Information/Сведения)

Код:
document.getElementById("areaForm").attachEvent("onpropertychange", function (e) {
     if (e.propertyName == "style.display" && e.srcElement.style.display == "inline")
            ReloadSum();
    });
Я и сам думал об этом. Скорее всего это единственный выход в данной ситуации. Однако вопрос: почему в качестве примера приведен вариант с внедрением в DOM обработчика события "onpropertychange"? Вероятно, потому что этот пример для четвертой версии, потому что в 2011 есть предопределенное событие TabStateChange, хотя могу ошибаться,- поправьте, если что.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков!
Старый 23.10.2012, 16:41   #5  
Likefire is offline
Likefire
Заноза в заднице
Аватар для Likefire
MCBMSS
Лучший по профессии 2009
 
547 / 50 (3) ++++
Регистрация: 22.10.2007
Адрес: Москва
Записей в блоге: 1
Цитата:
Сообщение от a33ik Посмотреть сообщение
Делал подобную доработку. При запуске формы запускался скрипт, который через определённые интервалы вычитывал при помощи вебсервисов значение интересующего поля. Если полученное значение не равнялось акуальному - просто подменял.
Использовать таймер, на мой взгляд, непозволительно с точки зрения как ресурсов, так и вариантов для обработки. К тому же, смысла в этом немного, поскольку входы в область отображаемого поля весьма ограничены с точки зрения событий: ты либо обновляешь форму и всё само обновляется, либо следишь за переходом к основным табам. Да, конечно,- придется определять сходным образом события всех имеющихся табов, поскольку, можно перейти к любому из них, а потом подняться/опуститься до области расположения обновляемого поля. И да,- понятно, что добавление новых табов нужно сопровождать определением события.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков!
Старый 23.10.2012, 16:45   #6  
Anros is offline
Anros
Участник
 
54 / 28 (1) +++
Регистрация: 01.07.2009
Цитата:
Сообщение от Likefire Посмотреть сообщение
Я и сам думал об этом. Скорее всего это единственный выход в данной ситуации. Однако вопрос: почему в качестве примера приведен вариант с внедрением в DOM обработчика события "onpropertychange"? Вероятно, потому что этот пример для четвертой версии, потому что в 2011 есть предопределенное событие TabStateChange, хотя могу ошибаться,- поправьте, если что.
TabStateChange срабатывает при схлопывании/развертывании таба, а не при переходе по представлениям.
Старый 23.10.2012, 16:47   #7  
Anros is offline
Anros
Участник
 
54 / 28 (1) +++
Регистрация: 01.07.2009
Цитата:
Сообщение от Likefire Посмотреть сообщение
Да, конечно,- придется определять сходным образом события всех имеющихся табов, поскольку, можно перейти к любому из них, а потом подняться/опуститься до области расположения обновляемого поля. И да,- понятно, что добавление новых табов нужно сопровождать определением события.
Не нужно, areaForm содержит внутри себя табы основной формы.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вопросы по кастомизации - вызов иной формы в зависимости от значения поля и прочее alou Dynamics CRM: Разработка 1 11.07.2012 14:20
CRM 4.0 Присвоение одному атрибуту сущности значения другого атрибута связанной сущности probka Dynamics CRM: Разработка 13 20.03.2012 11:00
Обновление поля с параметрами smlrus Dynamics CRM: Разработка 2 07.12.2011 17:10
Различные значения полей в одной записи для разных пользователей Tarasov E Dynamics CRM: Разработка 11 26.04.2010 10:58
автоматическое сохранение формы при изменении значения поля datfi Dynamics CRM: Разработка 6 18.09.2009 14:26

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

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

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