Routine to get table line type dynamically

DATA: tabledescr         TYPE REF TO cl_abap_tabledescr,
      structuredescr     TYPE REF TO CL_ABAP_DATADESCR.
 
tabledescr ?= cl_abap_tabledescr=>describe_by_data( table_type ).
 
call method tabledescr->GET_TABLE_LINE_TYPE
     receiving P_DESCR_REF = structuredescr.

ASSERT structuredescr->absolute_name(6) = '\TYPE='.
structure_name = structuredescr->absolute_name+6(30).

SELECTION-SCREEN – Dynamic selection screen change

This is an example of dynamic changes at selection screen. When you click on the second radio button, another field will be displayed. The tip here is when changing state of objects in the screen, internal table SCREEN has to be edited in SELECTION-SCREEN OUTPUT, otherwise it wont’t work.

REPORT ZSELECTION_SCREEN.

* Text-symbols
*001  Lorem ipsum ei mei affert eruditi necessitatibus, id nec tota ullum
*002  Nibh maluisset scripserit et

**********************************************************************
* Selection Screen
**********************************************************************
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: p_radio TYPE sprps RADIOBUTTON GROUP a1 USER-COMMAND radio.
SELECTION-SCREEN: COMMENT 4(67) text-001.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: p_radio2 TYPE sprps RADIOBUTTON GROUP a1.
SELECTION-SCREEN: COMMENT 4(28) text-002.
SELECTION-SCREEN END OF LINE.
PARAMETERS: p_test TYPE char1.
**********************************************************************
* AT SELECTION-SCREEN OUTPUT
**********************************************************************
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF screen-name = 'P_TEST' or
screen-name = '%_P_TEST_%_APP_%-TEXT'.
IF p_radio2 = 'X'.
screen-active = '1'.
ELSE.
screen-active = '0'.
ENDIF.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
START-OF-SELECTION.
WRITE: 'End'.