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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.12.2010, 11:46   #1  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
Вечная проблема со скриптами в CRM
Подскажите, пожалуйста, уже устал просто, ничего в этом CRM работать нормально не хочет.

X++:
как это убрать?

У меня есть поля на форме (Числовые, типа Int, дробные, тип Float, тестовые, varchar).

Цифры некоторые вводятся в поле типа varchar, Затем это значение умножается (или делится) в зависимости от операции на значение в поле типа int, и на выходе получаем число типа float (разумеется в JavaScript Дробные числа через точку записываются например.


X++:
var Value = 1000;
var DX = 23;
var Summa = Value / DX;

/ *


Summa = 43.478260869565217391304347826087

*
Как видно разделитель у нас точка, но если обратить внимание на значения в полях типа float, на форме CRM, появляется запятая? Бредятина полная - зачем менять синтаксис языка и делать так чтобы невозможно было присваивать значения расчетным полям? мне не понятно.

Я решил добить всё-таки этот CRM.
Написал такую функцию:

X++:
function replace_string(txt,cut_str,paste_str){
var f=0;
var ht='';
ht = ht + txt;
f=ht.indexOf(cut_str);
while (f!=-1){
f=ht.indexOf(cut_str);
if (f>0){
ht = ht.substr(0,f) + paste_str + ht.substr(f+cut_str.length);
};
};
return ht
};
если по-простому, она находит в строке нужный символ и заменяет его на другой, нами указанный.

примеряем эту функцию к нашему расчетному дробному числу:

X++:
Summa = replace_string(Summa,".",",");

// получаем строку Summa уже без точки, а  запятой, как любит наш CRM
Пытаемся присвоить это значение нашему полю

X++:
crmForm.all.new_value.DataValue = Summa;
получаем ошибку: Этот элемент управления принимает только числовые значения, в итоге значение нужного нам поля не меняется.

Забыли преобразовать строку в тип Float (или int) тут не важно.
делаем:

X++:
Summa = parseFloat(Summa);
alert("Summa = " + Summa);
Получаем

X++:
/*

 Summa  = 0.0;

*/
Такого поворота судьбы я не ожидал. Выводы:

1) Не понятно как нужно присваивать таким полям расчетные значения.
2) Не ясно как нужно преобразовывать расчетные значения к виду приемлемому для CRM.

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

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
CRM DE LA CREME! CRM 4.0 Disaster Recovery Blog bot Dynamics CRM: Blogs 2 26.02.2016 08:23
Все о Microsoft Dynamics CRM: Как установить Microsoft Dynamics CRM 2011 Beta Blog bot Dynamics CRM: Blogs 0 31.10.2010 15:08
CRM DE LA CREME! Configuring Microsoft Dynamics CRM 4.0 for Internet-facing deployment Blog bot Dynamics CRM: Blogs 0 18.08.2009 11:05
Microsoft Dynamics CRM Team Blog: Building Rich-Client Dashboards for Microsoft Dynamics CRM with Windows Presentation Foundation Blog bot Dynamics CRM: Blogs 1 31.03.2009 13:24
Microsoft Dynamics CRM Team Blog: List Web Part for Microsoft Dynamics CRM 4.0 Deployment Scenarios Blog bot Dynamics CRM: Blogs 0 30.01.2009 22:05

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 12:44.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.