SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

conversion_exit - обработка знаков после запятой



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
htk_s
Участник
Участник



Joined: 29 May 2008
Posts: 10

PostPosted: Thu Jan 22, 2009 6:16 pm    Post subject: conversion_exit - обработка знаков после запятой Reply with quote

всем доброго времени суток!

столкнулся с проблемой, описание ниже.
при создании своего домена, указываю в нем п/программу конвертации (допустим, ZMMDM), и выставляю количество знаков после запятой, допустим, 8.
в ФМ CONVERSION_EXIT_ZMMDM_OUTPUT пишу:
Code:
WRITE input TO output
далее в программе создаю свою переменную my_val с типом, основанным на этом домене, и в какой-то момент отправляю ее через WRITE на печать:
Code:
 WRITE my_val TO my_str DECIMALS 2.
ожидаю при этом, что в строке my_str будет содержаться значение с двумя знаками после запятой. но там - 8, это значение из домена.
если тип переменной стандартный, то в строке будет значение с двумя знаками.

как можно настроить вывод для моего случая?
спасибо.
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 165
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Thu Jan 22, 2009 6:43 pm    Post subject: Reply with quote

Если через промежуточную переменную?

Code:
DATA: my_str(30) TYPE C,
      my_val TYPE ZMMDM VALUE '123.456789',
      l_wrbtr TYPE bseg-wrbtr.

l_wrbtr = my_val.

WRITE my_val TO my_str DECIMALS 2.
WRITE / my_str.
WRITE l_wrbtr TO my_str DECIMALS 2.
WRITE / my_str.
Back to top
View user's profile Send private message Blog Visit poster's website
htk_s
Участник
Участник



Joined: 29 May 2008
Posts: 10

PostPosted: Thu Jan 22, 2009 6:47 pm    Post subject: Reply with quote

я планировал сделать вывод через АЛВ; т.е. если указать в фиелд-каталоге decimals_out 2, то по идее значение выведется во-первых с моей п/программой преобразования, а во-вторых, с количестом знаков, нужных мне.

upd.
грубо говоря, задача - передать в ФМ CONVERSION_EXIT_xxx_OUTPUT информацию из блока WRITE ... DECIMALS 2.
но как это сделать, если передается только само число через input?
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 165
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Fri Jan 23, 2009 11:41 am    Post subject: Reply with quote

Красиво передать не удастся, только если через SAP или ABAP память.
Могу предложить немного кривой способ: не прописывать MASK у домена, а задавать его на лету.

WRITE my_val TO my_str USING EDIT MASK '==ZMMD2'.
WRITE my_val TO my_str USING EDIT MASK '==ZMMD3'.
..
WRITE my_val TO my_str USING EDIT MASK '==ZMMD8'.

Соотвестенно создать несколько conversion_exit

В alv маска задется в field-calaog через поле
ls_fc-edit_mask = '==ZMMD2'.
Back to top
View user's profile Send private message Blog Visit poster's website
htk_s
Участник
Участник



Joined: 29 May 2008
Posts: 10

PostPosted: Sat Jan 24, 2009 6:55 pm    Post subject: Reply with quote

понятно, спасибо за совет.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.