Hi,
Since you got three radio-buttons, that means you can select one of them at a time.
Use this code. It may help.
TYPE-POOLS : SLIS.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-100.
PARAMETERS: first RADIOBUTTON GROUP rb USER-COMMAND s DEFAULT 'X',
second RADIOBUTTON GROUP rb,
third RADIOBUTTON GROUP rb.
PARAMETERS : p_tab TYPE tabname OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.
Data t_fcat TYPE slis_t_fieldcat_alv.
Data : w_data_ref TYPE REF TO DATA,
t_line TYPE C LENGTH 20.
FIELD-SYMBOLS : <i_tab> TYPE STANDARD TABLE.
START-OF-SELECTION.
SELECT SINGLE tabname FROM dd02l
INTO t_line WHERE tabname = p_tab.
If sy-subrc eq 0.
CREATE DATA w_data_ref TYPE STANDARD TABLE OF (p_tab).
ASSIGN W_data_ref->* To <i_tab>.
If sy-subrc eq 0.
SELECT * from (p_tab) INTO TABLE <i_tab> UP TO 10 ROWS.
If sy-subrc eq 0.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = sy-repid
I_STRUCTURE_NAME = p_tab
CHANGING
ct_fieldcat = t_fcat
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
IF sy-subrc = 0.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = sy-repid
IT_FIELDCAT = t_fcat
TABLES
t_outtab = <i_tab>
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF sy-subrc <> 0.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
Regards.