Текущее время: Пт, июл 18 2025, 16:26

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Перевод строки в сумму
СообщениеДобавлено: Чт, дек 22 2016, 15:44 
Ассистент
Ассистент

Зарегистрирован:
Вт, сен 13 2016, 20:18
Сообщения: 49
Здравствйте,
есть такой код:
Code:
DATA betrg TYPE MAXBT.  " Тип в домене CURR длина 15 десятичных 2.
DATA str TYPE c LENGTH 30.

*......
WRITE betrg to str.


Как перевести обратно из str в betrg?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Перевод строки в сумму
СообщениеДобавлено: Чт, дек 22 2016, 16:45 
Специалист
Специалист

Зарегистрирован:
Чт, дек 02 2010, 08:37
Сообщения: 156
проверить негде, но, как-то, так:

Code:
DATA betrg TYPE MAXBT.  " Тип в домене CURR длина 15 десятичных 2.
DATA str TYPE c LENGTH 30.

*----------------------------------------
DATA lv_dec1(2) TYPE p DECIMALS 1,
DATA lv_str1(3)  TYPE c.
lv_dec1 = 1 / 2.
WRITE lv_dec1 TO lv_str1.

IF lv_str1+1(1) = ','.
  TRANSLATE str USING '. '.
  TRANSLATE str USING ',.'.
  CONDENSE str NO-GAPS.
ELSE.
  TRANSLATE str USING ', '.
  CONDENSE str NO-GAPS.
ENDIF.
*-----------------------------------
betrg = str.



Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Перевод строки в сумму
СообщениеДобавлено: Чт, дек 22 2016, 17:06 
Ассистент
Ассистент

Зарегистрирован:
Вт, сен 13 2016, 20:18
Сообщения: 49
Думал о таком, но ведь WRITE переводит в строку в зависимости от настроек в профиле пользователя.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Перевод строки в сумму
СообщениеДобавлено: Чт, дек 22 2016, 17:17 
Специалист
Специалист

Зарегистрирован:
Чт, дек 02 2010, 08:37
Сообщения: 156
Для этого и выясняется, что будет десятичным разделителем.
Переменная lv_str1 его будет содержать с учетом пользовательских настроек.
Можно, конечно из USER01 вытаскивать, но - лень :)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Перевод строки в сумму
СообщениеДобавлено: Чт, дек 22 2016, 17:26 
Ассистент
Ассистент

Зарегистрирован:
Вт, сен 13 2016, 20:18
Сообщения: 49
ну так мы выясним каким образом отделяется десятичная часть.

у нас в системе если открвть настройки три варианта:
1.234.567,89
1,234,567.89
1 234 567,89.


в принципе это тоже можно проверить.
Думал у сама есть стандартный ФМ)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Перевод строки в сумму
СообщениеДобавлено: Чт, дек 22 2016, 17:31 
Ассистент
Ассистент

Зарегистрирован:
Вт, сен 13 2016, 20:18
Сообщения: 49
пока придумал так:

Code:
  data i_betrg type maxbt.
  DATA lv_istring type c LENGTH 15.
  write i_betrg to lv_istreing.
.
  SHIFT lv_istring RIGHT DELETING TRAILING space.
  TRANSLATE: lv_istring(11) USING ', . ',
             lv_istring+11 USING ',.'.
  CONDENSE lv_istring NO-GAPS.

i_betrg = lv_istring.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Перевод строки в сумму
СообщениеДобавлено: Чт, дек 22 2016, 17:32 
Специалист
Специалист

Зарегистрирован:
Чт, дек 02 2010, 08:37
Сообщения: 156
Есть. Там тоже надо указать разделители и делает он то же самое.
HRCM_STRING_TO_AMOUNT_CONVERT


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Перевод строки в сумму
СообщениеДобавлено: Пт, дек 23 2016, 14:39 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, апр 17 2006, 11:03
Сообщения: 123
если количество разрядов после запятой заранее известно, то я удаляю из строки все кроме цифр, привожу к числовому и делю на 100 например


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод строки в сумму
СообщениеДобавлено: Чт, янв 26 2017, 10:29 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, янв 30 2007, 19:13
Сообщения: 74
Пол: Мужской
Можно использовать метод CONVERT_STRING_TO_NUMBER класса CL_RECA_STRING_SERVICES.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB