28.03.2011, 19:49 | #1 |
Axapta Retail User
|
Преобразование типов данных
Доброго вечера, уважаемые!
Кто спец, не сочтите за труд - подскажите! Есть такой код: X++: switch (baseType) { .... case Types::Real: value = conPeek(_mapData.lookup(fieldName),1); if (value) { this.setFieldValueReal(fieldName, value); } внутри метода X++: private void setFieldValueReal(str _name, real _value) { а мне нужно чтоб 8,25 ( с сотыми !! ) ЗЫ. Лично я думаю, что в данном случае виноват conPeek(Container) со своим any2real. Но как сделать не знаю, вопчем HELP PLEASE -) |
|
28.03.2011, 22:09 | #2 |
Участник
|
У AnyType есть такая особенность - единожды приняв значение какого-то определённого типа, он уже не может изменить тип на другой. Пример:
X++: anytype value; ; value = 8; info(strfmt("%1", value)); value = 8.25; // переменная value НЕ изменит тип на real info(strfmt("%1", value)); Выход - каждый раз использовать новую переменную anytype. В общем случае этого можно добиться используя локальную функцию: X++: void localfunction(anytype _value) { anytype value; ; value = _value; // локальная переменная value каждый раз приобретает заданный тип info(strfmt("%1", value)); } ; localfunction(8); localfunction(8.25); Вполне возможно что в вашем случае происходит нечто подобное. Попробуйте локализовать проблему и составить небольшой джоб для воспроизведения вашей ситуации, тогда можно будет сказать что-то определённое. |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Невозможно выполнить команду языка определения данных в () | 8 | |||
Стандартный импорт данных. Обновление | 0 | |||
Распределенная база данных на основе View | 27 | |||
Введение в Аксапту | 0 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|