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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.05.2009, 14:07   #1  
valentino is offline
valentino
Участник
Аватар для valentino
 
33 / 11 (1) +
Регистрация: 14.02.2007
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Мы опять упираемся в ПОСТАНОВКУ задачи.
Владимир, если Вы внимательно будете читать все топики данной темы сначала, то постановка задачи станет Вам ясна.
Gustav абсолютно точно ее понял.
Вообще, я надеялся, что кто-то подскажет почему Аксапта при преобразовании из числа в строку втыкает тысячным разделителем обычный пробел (32) а не знак разделителя из панели управления (160) (я думал где-то есть тайные настройки).
Но, в принципе считаю тему исчерпанной.
Спасибо всем!
Старый 05.05.2009, 15:55   #2  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от valentino Посмотреть сообщение
Вообще, я надеялся, что кто-то подскажет почему Аксапта при преобразовании из числа в строку втыкает тысячным разделителем обычный пробел (32) а не знак разделителя из панели управления (160) (я думал где-то есть тайные настройки).
В процессе шаманских плясок вокруг функции strFmt созрела такая гипотеза. Конечно, не более, чем предположение (исходного кода функции я не видел). Заключается гипотеза в следующем.

Функция strFmt ведёт себя похоже на функции num2str и date2str. Похожесть заключается в числе прочего и в том, что в качестве разделителей (десятичных, тысяч, элементов даты) используются только разделители, "регламентированные" этими двумя функциями. Так разделителем тысяч в функции num2str может быть точка, запятая, ничего (пустая строка) или пробел, который с кодом 32. Поробуйте поставить в региональных настройках в качестве разделителя тысяч, скажем, букву x (икс латинская) - strFmt все равно будет использовать один из 4-х доступных разделителей - не могу сказать с уверенностью, какой именно - для какого "нерегламентированного" символа.

Таким образом, согласно моей гипотезе, нерегламентированный пробел с кодом 160 "неудачно" заменяется на "регламентированный" пробел с кодом 32 - просто как на один из 4-х возможных вариантов, зашитых в функцию, вводя нас в заблуждение. Т.е. проблема существует, но корни, похоже, у нее совсем другие, чем просто "неряшливость" разработчиков функции strFmt.

Видимо, можно говорить о том, что функция strFmt следует за региональными настройками только пока региональные настройки находятся с ней в "хорошем согласии" (совпадают разделители и проч.), позволяющем не замечать отклонений. К счастью, большинство настроек, находятся в хорошем согласии, а экспериментаторов, ставящих x в качестве разделителя тысяч не так много Впрочем, если есть желание, присоединяйтесь к исследованию!
Теги
разделитель тысячных, axapta

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Разделитель страницы в MS WORD FiGr DAX: Программирование 3 14.05.2007 15:24
Разделитель десятичных знаков в отчетах dirigente DAX: Функционал 0 20.11.2003 12:28
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:17.