通过单选按钮选择输入参数的屏幕。比如有四个屏幕定义,通过单选按钮选择当前操作界面,隐藏其他三个屏幕。
SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.
PARAMETERS : ra1 RADIOBUTTON GROUP rad1 DEFAULT 'X' USER-COMMAND sel,
ra2 RADIOBUTTON GROUP rad1 ,
ra3 RADIOBUTTON GROUP rad1 ,
ra4 RADIOBUTTON GROUP rad1 .
SELECTION-SCREEN END OF BLOCK bk1 .
SELECTION-SCREEN BEGIN OF BLOCK bk2 WITH FRAME TITLE text-002.
SELECT-OPTIONS: s_bukrs1 FOR glpct-rbukrs MODIF ID g1,
s_ryear1 FOR glpct-ryear NO-EXTENSION NO INTERVALS MODIF ID g1,
s_poper1 FOR glpca-poper MODIF ID g1.
SELECT-OPTIONS: s_bukrs2 FOR glpct-rbukrs MODIF ID g2,
s_ryear2 FOR glpct-ryear NO-EXTENSION NO INTERVALS MODIF ID g2,
s_poper2 FOR glpca-poper MODIF ID g2.
SELECT-OPTIONS: s_bukrs3 FOR glpct-rbukrs MODIF ID g3,
s_ryear3 FOR glpct-ryear NO-EXTENSION NO INTERVALS MODIF ID g3,
s_poper3 FOR glpca-poper MODIF ID g3.
SELECT-OPTIONS: s_bukrs4 FOR glpct-rbukrs MODIF ID g4,
s_ryear4 FOR glpct-ryear NO-EXTENSION NO INTERVALS MODIF ID g4,
s_poper4 FOR glpca-poper MODIF ID g4,
s_area4 FOR glpct-rfarea MODIF ID g4.
SELECTION-SCREEN END OF BLOCK bk2.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
CASE screen-group1.
WHEN 'G1'.
IF ra1 = 'X'.
screen-active = '1'.
ELSE.
screen-active = '0'.
ENDIF.
WHEN 'G2'.
IF ra2 = 'X'.
screen-active = '1'.
ELSE.
screen-active = '0'.
ENDIF.
WHEN 'G3'.
IF ra3 = 'X'.
screen-active = '1'.
ELSE.
screen-active = '0'.
ENDIF.
WHEN 'G4'.
IF ra4 = 'X'.
screen-active = '1'.
ELSE.
screen-active = '0'.
ENDIF.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
START-OF-SELECTION.
IF ra1 = 'X'.
PERFORM frm_get_data1.
PERFORM frm_deal_data1.
ELSEIF ra2 = 'X'.
PERFORM frm_get_data2.
PERFORM frm_deal_data2.
ELSEIF ra3 = 'X'.
PERFORM frm_get_data3.
PERFORM frm_deal_data3.
ELSEIF ra4 = 'X'.
PERFORM frm_get_data4.
PERFORM frm_deal_data4.
ENDIF.
END-OF-SELECTION.
IF ra1 = 'X'.
PERFORM frm_alv_display1.
ELSEIF ra2 = 'X'.
PERFORM frm_alv_display2.
ELSEIF ra3 = 'X'.
PERFORM frm_alv_display3.
ELSEIF ra4 = 'X'.
PERFORM frm_alv_display4.
ENDIF.