Показать сообщение отдельно
Старый 15.12.2010, 13:02   #4  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Цитата:
Сообщение от Dicora Посмотреть сообщение
Цифры некоторые вводятся в поле типа varchar
Хм. Продуманно!
Цитата:
Сообщение от Dicora Посмотреть сообщение
Как видно разделитель у нас точка, но если обратить внимание на значения в полях типа float, на форме CRM, появляется запятая? Бредятина полная - зачем менять синтаксис языка и делать так чтобы невозможно было присваивать значения расчетным полям? мне не понятно.
Вы понимаете разницу между типом данных и их пользовательским представлением??!! Кто менял синтаксис языка??? О чем вы!!! Вы для CRM отдельный браузер со специальной Java машиной используйте??? Это СТАНДАРТНЫЙ Java Script! В нем вообще нет целых, доробных и прочих типов, есть только variant (var). Когда вы пишите
Код:
var f = 1.1
Машина понимает, что речь идет о числе и позволяетвам совершать над ним арифметические операции. Синтаксис (стандарт) языка использует в качестве разделителей точки - всегда. Вне зависимости от ваших предпочтений! Для ВАШЕГО УДОБСТВА CRM отображает числа в привычнов вам виде. Язык программирования никто при этом не меняет.
Цитата:
Сообщение от Dicora Посмотреть сообщение
Я решил добить всё-таки этот CRM.
Написал такую функцию:
[XPP]
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
};
Вы добили мой моск, а не CRM!
Цитата:
Сообщение от Dicora Посмотреть сообщение
/Пытаемся присвоить это значение нашему полю

crmForm.all.new_value.DataValue = Summa;

получаем ошибку: Этот элемент управления принимает только числовые значения, в итоге значение нужного нам поля не меняется.
= Запишу ка я строку в числовое поле! Хм, странно. Почему же не работает?
Цитата:
Сообщение от Dicora Посмотреть сообщение
Забыли преобразовать строку в тип Float (или int) тут не важно.
делаем:
X++:
Summa = parseFloat(Summa);
alert("Summa = " + Summa);
Получаем

X++:
/*

 Summa  = 0.0;
*/
Такого поворота судьбы я не ожидал. Выводы:
http://www.w3schools.com/jsref/jsref_parsefloat.asp - вот так работает parseFloat. Результат правильный, так как функция не понимает ваши запятые.

Цитата:
Сообщение от Dicora Посмотреть сообщение
Если кто может помогите пожалуйста. У меня уже нервы сдают - неделя времени потрачена в пустую, каждый день придумываю новые алгоритмы, парсю значения, преобразовываю, складываю, делю - одно и тоже, либо нули, либо "Этот элемент принимает только числовые значения".
Очень печально. Сколько раз за эту неделю вы почитали справочник по JS или CRM SDK? Ни разу? Какого еще поворота судьбы вы ожидали?!
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional