Pages

Monday, July 13, 2009

Hide and unhide Selection Screen

How to hide and unhide Selection screen based on radio button you choose?

This is selection based on radio button, based on this selection you want to hide whatever selection screen are not related... so you have to do one perform to unhide this screen...

SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME TITLE text-002.
* Header
PARAMETERS: rb1 RADIOBUTTON GROUP rb1 USER-COMMAND sel DEFAULT 'X'.
PARAMETERS: rb2 RADIOBUTTON GROUP rb1.
SELECTION-SCREEN END OF BLOCK block2.

*detail - here you have to group it e.g likes rb1 & rb2

SELECTION-SCREEN: BEGIN OF BLOCK rb1c WITH FRAME TITLE text-t01.
SELECT-OPTIONS: s_innum FOR vbrk-vbeln MODIF ID rb1,
s_innam FOR vbrk-ernam MODIF ID rb1,
s_indat FOR vbrk-erdat MODIF ID rb1.
SELECTION-SCREEN: END OF BLOCK rb1c.

SELECTION-SCREEN BEGIN OF BLOCK block4 WITH FRAME TITLE text-013.
SELECT-OPTIONS s_aufnr4 FOR vbak-aufnr MODIF ID rb2. "MATCHCODE OBJECT vmva.
SELECT-OPTIONS s_erdat4 FOR vbak-erdat MODIF ID rb2.
SELECT-OPTIONS s_ernam4 FOR vbak-ernam MODIF ID rb2.
SELECTION-SCREEN END OF BLOCK block4.

*----------------------------------------------------------------------------*
* AT SELECTION-SCREEN OUTPUT *
*----------------------------------------------------------------------------*

AT SELECTION-SCREEN OUTPUT.

IF rb1 = 'X'.
PERFORM hide_rb1.
ELSEIF rb2 = 'X'.
PERFORM hide_rb2.
ENDIF.

FORM hide_rb .

LOOP AT SCREEN.
CASE screen-group1.
WHEN 'RB1'.
screen-active = 1.
MODIFY SCREEN.
WHEN 'RB2'.
screen-active = 0.
MODIFY SCREEN.
ENDCASE.
ENDLOOP.

ENDFORM.
FORM hide_rb2 .

LOOP AT SCREEN.
CASE screen-group1.
WHEN 'RB1'.
screen-active = 0.
MODIFY SCREEN.
WHEN 'RB2'.
screen-active = 1.
MODIFY SCREEN.
ENDCASE.
ENDLOOP.

ENDFORM. " HIDE_RB2


You have to modify screen based on selection screen and your declaration on your group...

1 comment:

Unknown said...

Very well explained...nice article...very helpful.