Заказ звонка

Закрыть

*
*
*

Баг при занесении параметра позиции ТП в VB

Страницы: 1
RSS
Баг при занесении параметра позиции ТП в VB
Доброго времени суток форумчане и разработчики. Значит проблема или ошибка (не знаю как это назвать) такая. Заношу параметр позиции ТП типа вещественное число таким образом:

Код
Dim norma1 As Double
        norma1 = 15.25
        MsgBox ("Присвоение выполнено")
        Set Param = TCSActiveModule.Properties("Parameters").AsIDispatch
        If Not Param.SetParameterValueByParCode("TCS_MZ_NR", norma1, 0, True) Then ' Добавляем параметр со значением к текущей номенклатуре
            MsgBox ("Неудается добавить параметр к этой номенклатуре")
        End If

Выдает ошибку типа значение должно быть вещественным числом. Пробую ставить переменной тип Long, проглатывает но округляет до целого и записывает в параметр. Я перепробовал уже все типы для norma1? подскажите, в чем проблема.
С уважением, Никифоров В.Н.
В данном случае большую роль играет настройка ОС "Разделитель целой и дробной части". Проверте, возможно там у Вас указана запятая.
Ага, спасибо, помогло. В win7 по умолчанию забита запятая. smile:)
С уважением, Никифоров В.Н.
Цитата
Вячеслав Никифоров пишет:
В win7 по умолчанию забита запятая

smile:( Оказывается не только в win7 забита запятая. В XP тоже. А можно каким-то другим способом обойти это? На Xp из-за запятой не правильно считает, выдает ноль. А то как-то напряжно всех обходить и изменять настройки винды.
С уважением, Никифоров В.Н.
У меня WinXP и по умолчанию в настройках точка. Так что все возможно.

Свойство SetParameterValueByParCode в качестве параметра ParValue принимает текстовый параметр. Поэтому параметр norma1 должен быть текстовым. После записи значения в параметр, отладчиком проверте, какой разделитель дробной части поставила ОС, и переставте тот, который не будет приводить к ошибке.

Я бы написал так:
Код
norma1 = CStr(15.25)
If Not Param.SetParameterValueByParCode("TCS_MZ_NR", Replace(norma1, ",", "."), 0, True) Then
Страницы: 1
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)