In the past I have had more than 1 client request that the negative numbers with signage on the right are displayed in ALV reports and / or extracted to files with the signage to the left.
-100.00 NOT 100.00-
I decided to create a conversion exit to perform this format conversion, as below. And this then is implemented in my alv / file extract logic.
” ALV field cat coding…apply the conv exit accordingly to the edit_mask attribute…
….
if <fieldcat>–inttype = ‘P’.
<fieldcat>–edit_mask = ‘==ZSIGD’.
endif.
…..
similarly, if you are extracting the data to a file,
the conversion can also be called to format the number
…….
do.
assign component sy–index of structure <table_line> to <field>.
if sy–subrc is initial. “we still processing fields
clear lv_value.
describe field <field> type lv_typ1.
if lv_typ1 = ‘D’. ” format for date
yyyymmdd_date_format <field> lv_value.
elseif lv_typ1 = ‘h’.
move space to lv_value.
elseif lv_typ1 = ‘P’.
call function ‘CONVERSION_EXIT_ZSIGD_OUTPUT’
exporting
input = <field>
importing
output = lv_value.
else. “all other formats
move <field> to lv_value.
endif.
“>>>build up the row that will be written to the file
concatenate lv_fileline lv_value into lv_fileline
separated by cl_abap_char_utilities=>horizontal_tab.
…….
Result of File extract
Which ABAP release are you working on?
If you are on release > 702 you can use the inbuilt string formatting option SIGN to achieve this – http://help.sap.com/abapdocu_740/en/abapcompute_string_format_options.htm#!ABAP_ADDITION_5@5@
release 700. Thats useful to know, thank you. I will then be able to stop implementing this exit!