Текущее время: Чт, мар 28 2024, 23:49

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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