Установка десятичного значения в форме не всегда работает - Dynamics CRM 2013

1

Надеюсь, кто-то может помочь с этим. Я знаю, как установить значение поля в форме, и оно работает в некотором роде. Мой запрос связан с тем, что он работает только в том случае, если я помещаю эту строку ниже в событие загрузки формы как строку самостоятельно.

Xrm.Page.getAttribute('cal_entrynumber').setValue(1.01);

Однако на самом деле мне нужно иметь некоторые условные проверки до того, как я установил это значение, и когда я поместил эту строку в эти условные проверки, то я заметил, что текстовое поле пустое, но если я посмотрю на значение в объекте данных, которое он делает укажите, что оно имеет значение 1.01.

alert("No. in entity:" + Xrm.Page.data.entity.attributes.get('cal_entrynumber').getValue());

Поэтому я хотел знать, может ли кто-нибудь определить меня ко всему, что потенциально может быть причиной этого... вот код, в котором строка сидит (и не работает).

var queryString = "?$select=cal_EntryNumber&$filter=cal_SafetyProgrammeNo eq '" + spNo + "'&top=1&$orderby=cal_EntryNumber desc";
SDK.REST.retrieveMultipleRecords(
    "cal_operation",
    queryString,
    function (results) {
        //alert(results.length);
        if (results.length == 0) {
            //var entry = 1.01;
            //alert("Entry No:" + Number(entry));
            Xrm.Page.getAttribute('cal_entrynumber').setValue(1.01);

        }
        else {
            // Code to go here.                              
        }
    },
    errorHandler,
    function () {
        // OnComplete handler
    }
    );
Теги:
dynamics-crm
microsoft-dynamics
crm
dynamics-crm-2013

2 ответа

1

Я выяснил, почему это не работает (даже если код верен), и я отправляю свой ответ здесь, чтобы помочь кому-либо, у кого может быть такая же проблема.

Поле Entry Number получает фокус при загрузке формы, и это освобождает поле его значения (javascript set). Я исправил это, поставив другое поле текстового поля в качестве первого поля в форме, и теперь в поле отображается значение javascript (никаких изменений кода не требуется).

Я подозреваю, что это сработало, когда я сам поместил код в событие загрузки формы, так как он запускается синхронно, но когда я помещаю ту же строку кода в функцию возврата назад, что и выполняет асинхронно, она представляет эту проблему. Надеюсь, это поможет кому-то еще с этой проблемой.

0

Это должно работать.

Xrm.Page.getAttribute("fieldname").setValue(parseFloat(eval(1.01)));

Или это также должно работать.

Xrm.Page.getAttribute("fieldname").setValue("1.01");

Рекомендации:

https://social.microsoft.com/Forums/en-US/487202fe-9982-45e1-8133-33b883927c35/haw-to-set-the-precision-of-a-dicimal-field-using-javascrip?forum= crmdevelopment

http://mscrmtutorials.blogspot.com/2015/10/get-or-set-values-of-all-data-types.html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню