09-10-2008 11:09 AM
Hi Friends,
How to make a key field in ALV output using cl_salv_table class.
Thanks & Regards,
Manoj
09-10-2008 11:25 AM
09-10-2008 11:37 AM
Check this sample code...
REPORT ztest_salv.
DATA: alv TYPE REF TO cl_salv_table.
TYPES: BEGIN OF ty_tab,
carrid TYPE sflight-carrid,
connid TYPE sflight-connid,
END OF ty_tab.
DATA: col_tab TYPE REF TO cl_salv_columns_table,
col TYPE REF TO cl_salv_column_table.
DATA: col_ref TYPE salv_t_column_ref,
wa LIKE LINE OF col_ref.
DATA: it_flight TYPE STANDARD TABLE OF ty_tab.
SELECT carrid connid FROM sflight INTO TABLE it_flight
UP TO 10 ROWS.
cl_salv_table=>factory(
IMPORTING
r_salv_table = alv
CHANGING
t_table = it_flight
).
"get all the columns
col_tab = alv->get_columns( ).
col_ref = col_tab->get( ).
"loop each column
LOOP AT col_ref INTO wa.
"Conditionally set the column type as key or non key
IF wa-columnname = 'CARRID'.
col ?= wa-r_column.
col->set_key( abap_true ).
ENDIF.
ENDLOOP.
alv->display( ).