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

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


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

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


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

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