Страница 1 из 1

Вопрос по форматам числовых полей

Добавлено: 04 мар 2008, 12:20
Александр
не знаете в чем может быть дело, я в workflow в числовой массив пишу руками число допустим 1234,6789 и хочу его видеть именно так как написал - но при нажатии Enter число самопроизвольно округляется вверх 1235

как с этим бороться?

Добавлено: 06 мар 2008, 16:06
Юрий
Надо открыть свойство поля, открыть вкладку "Редактирование", выбрать редактировать по маске и выставить требуемую маску редактирования.

Добавлено: 06 мар 2008, 16:09
Александр
в том то и проблема, может я конечно перегрелся - но маска дает нам фиксированный ввод
типа напишу я
####,####
а число у меня например, кстати - оно кроме ручного ввода еще и автоматически подпихивается
так вот а число
123456789,987654321
и какую маску мне под это написать, яж размерности то не знаю? :? :? :? заранее

Добавлено: 06 мар 2008, 16:28
Юрий
неправильно надо делать так ######.####### - точка, а не запятая в шаблоне. А разрядов ставишь макчимально возможное кол-во.

Добавлено: 06 мар 2008, 16:31
Александр
т.е. исходя из того что максимально возможное число в Лоции составляет 15 разрядов - нужно слева и справа прилепить по 15 #? - как страшно жить :wink: :wink:
а в формате что писать - [general] ?

Добавлено: 06 мар 2008, 16:36
Александр
да и еще вопрос эмпирический а что делать если слева будет стоять 14 разрядов а мне еще нужно 4 знака после запятой - данные терять? или работать со строками? преобразовывая числа туда сюда....
ужас короче :wink: :wink:

Добавлено: 06 мар 2008, 16:41
Юрий
Числовые значения хранятся в базе в формате float соответственно туда может поместиться максимально возможное значение этого формата.
Если у вас значения превышают данный формат - советую числовые значения хранить в текстовом виде.

Добавлено: 07 мар 2008, 09:47
Александр
поставил маску ###############.###############
поставил формат ###############.###############

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

Добавлено: 07 мар 2008, 13:07
Anderyt
Александр, у меня такое ощущение, что пришло-таки время спросить об этом у Лоции ;-)

Добавлено: 07 мар 2008, 13:11
Александр
ну не хочу я у Лоции спрашивать, хочется поговорить с 'простыми' :wink: :wink: людьми

Добавлено: 12 мар 2008, 10:23
Александр
хочу поделиться своим горем :wink: :wink: :wink:
знаете в чем было дело :wink:
для начала вступление
действие разворачивается в массиве формы работы
в строке массива висит список Доллар Евро Рубль
внедренный запрос возвращает в эту колонку значение по умолчанию Рубль и если в массиве в процессе работы выбрать из списка Евро или обратно Рубль то все Ок - а если Доллар то все - ошибка
Сначала было неясно почему Лоции не нравятся Доллары - разгадка оказалась в том что если последующие значения выбираемые в списке длиннее тех что указаны по умолчанию то все - конец
т.е. Рубль 5 букв а Доллар - 6 букв - в результате поставив по умолчанию самое длинное значение (Доллар) мы решили (с помощью тех поддержки) эту проблему

так вот
и здесь с числами оказалась такая же фигня
т.е. в запросе по умолчанию мы ставили 0 (т.е. целое число) - и соответственно все последующие значения вводимые в массив были целыми (все что после запятой/точки - терялось)

стоило же нам поставить по умолчанию для колонки (во внедренном запросе) 0.0000 как сразу стало все нормально - число обрубается после 4-го знака после запятой

я бы никогда в жизни не додумался до этого - наверно предчувствуя такие сюрпризы мы и не брались за WorkFlow целых 1.5 года

Добавлено: 12 мар 2008, 10:31
Anderyt
смею надеяться, что это горе - временное.
вряд ли разработчики специально закладывали такое поведение и такое внимание к длинам значений по умолчанию. по крайней мере, про это ведь не сказано в инструкциях? или сказано? :-(
а если это было случайно - то это всего-навсего очередной баг, который удалось отловить с помощью дотошных администраторов и квалифицированной службы поддержки :-)

Добавлено: 12 мар 2008, 10:37
Александр
кстати для Юрия - все числа в Лоции имеют разрядность 15 знаков - точка и знак минус (при отрицательных значениях) не учитываются = так что всетаки наверно не float а скорее duble -15 десятичных разрядов

Добавлено: 14 мар 2008, 10:22
Александр
да и еще :wink:

по умолчанию нужно ставить не 0.0000 а cast(0 as double precision) (техподдержка) так правильней, и форматы и маски уже не нужны

но вот в чем проблема :wink:
функция f_GetNFormItem не читает числа с плавающей точкой а просто берет и выкидывает запятую сдвигая все число налево до целого :shock:

ps
надеюсь данную ситуацию можно будет обойти правда не знаю как :wink: :wink:

Добавлено: 14 мар 2008, 11:54
Александр
свершилось чудо - в региональных настройках разделителем должна быть точка - а у нас была запятая