Code: Alles auswählen.
TYPES:
BEGIN OF ts_value,
netwr TYPE netwr,
waerk TYPE waerk,
END OF ts_value,
tt_value TYPE STANDARD TABLE OF ts_value WITH DEFAULT KEY.
DATA:
lr_grid TYPE REF TO cl_salv_table,
lt_value TYPE tt_value.
APPEND VALUE #( netwr = 1322506 waerk = 'KRW' ) TO lt_value.
cl_salv_table=>factory( IMPORTING r_salv_table = lr_grid
CHANGING t_table = lt_value ).
lr_grid->get_columns( )->get_column( columnname = 'NETWR' )->set_currency_column( value = 'WAERK' ).
lr_grid->display( ).
Code: Alles auswählen.
TYPES:
BEGIN OF ts_value,
netwr TYPE netwr,
waerk TYPE waerk,
decimals TYPE decimals,
END OF ts_value,
tt_value TYPE STANDARD TABLE OF ts_value WITH DEFAULT KEY.
DATA:
lr_grid TYPE REF TO cl_salv_table,
lt_value TYPE tt_value.
APPEND VALUE #( netwr = 1322506 waerk = 'KRW' decimals = 0 ) TO lt_value.
APPEND VALUE #( netwr = 1322506 waerk = 'EUR' decimals = 2 ) TO lt_value.
APPEND VALUE #( netwr = 1322506 waerk = 'JPY' decimals = 0 ) TO lt_value.
APPEND VALUE #( netwr = '13225.06' waerk = 'JPY' decimals = 0 ) TO lt_value.
cl_salv_table=>factory( IMPORTING r_salv_table = lr_grid
CHANGING t_table = lt_value ).
lr_grid->get_columns( )->get_column( columnname = 'NETWR' )->set_currency_column( value = 'WAERK' ).
lr_grid->get_columns( )->get_column( columnname = 'NETWR' )->set_decimals_column( value = 'DECIMALS' ).
lr_grid->display( ).
Ich würde das ändern:
Der SAP-Standard erwartet hier zwei Nachkommastellen.
Doch. Der jetztige Kunde hätte vor der "Inbetriebnahme" der Währung den KRW Eintrag machen müssen. Dann würden die Werte zur Aufbereitung passen.
Sieht hier so aus - KRW mit und JPY ohne Dezimalstellen, JPY in TCURX mit 0 Dezimalstellen gepflegt: