Текущее время: Чт, июл 03 2025, 12:17

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Форматирование числа в ALV-GRID
СообщениеДобавлено: Пн, окт 01 2007, 13:22 
Специалист
Специалист

Зарегистрирован:
Ср, дек 27 2006, 19:19
Сообщения: 230
Добрый день,
Можно ли пом параметра edit_mask (без написания своего конверсионного exitа) вывести отрицательное число в нормальном виде, например
-234567,58
(знак слева, десят разделитель - запятая)

Пока единственно что смог добиться
edit_mask = 'RRV__________.__'. выводит '- 13428.56'

или писать свой CONVERSION_EXIT (может есть уже готовый?)

Спасибо!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 01 2007, 17:05 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, май 14 2007, 13:05
Сообщения: 561
Откуда: Москва
Цитата:
Пока единственно что смог добиться
edit_mask = 'RRV__________.__'. выводит '- 13428.56'

Точка здесь из системных настроек юзера. Если критично SU01 - выбрать нужный формат с запятой


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 01 2007, 17:13 
Начинающий
Начинающий

Зарегистрирован:
Пн, окт 01 2007, 10:17
Сообщения: 11
N/A написал(а):
Цитата:
Пока единственно что смог добиться
edit_mask = 'RRV__________.__'. выводит '- 13428.56'

Точка здесь из системных настроек юзера. Если критично SU01 - выбрать нужный формат с запятой


Проблема здесь не в точке, можно и так написать
'RRV__________,__', а в количестве пробелов между знаком минус и самим числом.
С этим вероятно никак не побороться в ALV, пишите свой CONVERSION_EXIT_Zxxx_OUTPUT.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 02 2007, 16:24 
Специалист
Специалист

Зарегистрирован:
Ср, дек 27 2006, 19:19
Сообщения: 230
В общем написал свой CONVERSION_EXIT
Может кому подойдет
Группа функций ZSIGN:
Цитата:
FUNCTION CONVERSION_EXIT_ZSIGN_OUTPUT.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*" IMPORTING
*" VALUE(INPUT)
*" EXPORTING
*" VALUE(OUTPUT)
*"----------------------------------------------------------------------
DATA:
dec TYPE I,
out TYPE I,
msk TYPE STRING,
smp TYPE STRING VALUE '____________________',
buf(30) TYPE C.

DESCRIBE FIELD input DECIMALS dec.
DESCRIBE FIELD input OUTPUT-LENGTH out.
out = out - dec - 1.
CONCATENATE 'RRV' smp(out) '.' smp(dec) INTO msk.
WRITE input TO buf USING EDIT MASK msk.
CONDENSE buf NO-GAPS.
TRANSLATE buf USING '.,'.
SHIFT buf LEFT DELETING LEADING space.
output = buf.
SHIFT output RIGHT DELETING TRAILING space.
ENDFUNCTION.


Далее - В описаниии поля alv:
Цитата:
it_cat-edit_mask = '==ZSIGN'.

и все в порядке
(можно наверное и короче написать)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 03 2007, 08:29 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Можно вместо того, чтобы edit mask составлять, просто написать
write input to l_char no-SIGN.
а потом
if input < 0. concatenate '-' input into output. endif.
Ну и shift, по вкусу.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 16 2007, 09:35 
Специалист
Специалист

Зарегистрирован:
Ср, дек 27 2006, 19:19
Сообщения: 230
sibrin написал:
Можно вместо того, чтобы edit mask составлять, просто написать
write input to l_char no-SIGN.
а потом
if input < 0. concatenate '-' input into output. endif.
Ну и shift, по вкусу.

Последняя (исправленная) версия экзита:
Code:
FUNCTION CONVERSION_EXIT_ZSIGN_OUTPUT.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"  IMPORTING
*"     VALUE(INPUT)
*"  EXPORTING
*"     VALUE(OUTPUT)
*"----------------------------------------------------------------------
  WRITE input TO output NO-SIGN NO-GROUPING LEFT-JUSTIFIED.
  IF ( input < 0 ).
    CONCATENATE '-' output INTO output.
  ENDIF.
  SHIFT output RIGHT DELETING TRAILING space.
ENDFUNCTION.

Всего доброго!


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

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


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

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


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

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