Tcode SWEHR3
Table T779X
It works similar to PA infotype dynamic action.
Tag: dynamic
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'.