TABLES: j_1irg23d, v_equi_eqbs_sml, mara. SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE t2. PARAMETERS : s_radio1 RADIOBUTTON GROUP rg1 USER-COMMAND uc DEFAULT 'X', s_radio2 RADIOBUTTON GROUP rg1, s_radio3 RADIOBUTTON GROUP rg1. SELECTION-SCREEN END OF BLOCK b2. SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE t1. SELECT-OPTIONS : s_werks FOR j_1irg23d-werks OBLIGATORY MODIF ID sc1, s_matnr FOR j_1irg23d-matnr MODIF ID sc1, s_lifnr FOR j_1irg23d-lifnr MODIF ID sc1, s_docno FOR j_1irg23d-docno MODIF ID sc1, s_cpudt FOR j_1irg23d-cpudt MODIF ID sc1. SELECTION-SCREEN : END OF BLOCK b1. SELECTION-SCREEN : BEGIN OF BLOCK b3 WITH FRAME TITLE t3. SELECT-OPTIONS : s_werks2 FOR v_equi_eqbs_sml-werk OBLIGATORY MODIF ID sc2, s_lgort FOR v_equi_eqbs_sml-lager MODIF ID sc2, s_matnr2 FOR v_equi_eqbs_sml-matnr MODIF ID sc2, s_mtart FOR mara-mtart MODIF ID sc2. SELECTION-SCREEN : END OF BLOCK b3. INITIALIZATION. PERFORM hide_option USING 'ALL'. AT SELECTION-SCREEN OUTPUT. CASE abap_true. WHEN s_radio1. PERFORM hide_option USING 'ALL'. WHEN s_radio2. PERFORM hide_option USING 'SC1'. WHEN s_radio3. PERFORM hide_option USING 'SC2'. ENDCASE. START-OF-SELECTION. * &---------------------------------------------------------------------* * & Form HIDE_OPTION * &---------------------------------------------------------------------* * text * ----------------------------------------------------------------------* * --> p1 text * <-- p2 text * ----------------------------------------------------------------------* FORM hide_option USING ic_modif_id. LOOP AT SCREEN. CASE screen-group1. WHEN ic_modif_id. screen-active = 0. screen-input = 0. screen-invisible = 1. MODIFY SCREEN. WHEN OTHERS. IF ic_modif_id EQ 'ALL' AND ( screen-group1 EQ 'SC1' OR screen-group1 EQ 'SC2' ). screen-active = 0. screen-input = 0. screen-invisible = 1. ENDIF. ENDCASE. MODIFY SCREEN. ENDLOOP. ENDFORM. " HIDE_OPTION
The OBLIGATORY plant parameter should be better checked in START-OF-SELECTION, because is blocks switching.
The is no need to unhide, LOOP AT SCREEN starts always with default 'visible' in your case, so only hide is required.
Add comment