Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Dynamically Activate and Deactivate Selection Screen

Former Member
0 Kudos

Hi Guys,

Can anybody tell me how to activate and deactive the Selectrion screen.

My Req is I have 4 Blocks.

in 1st BLOCK 3 Check boxes are there based on these 3 Check Boxes i have to Activate and Deactivate the other 3 Blocks which are B2 , B3 and B4.

i tried to write the code but it doesn't working even after usinf User Command sattements for these3 check Boxes

Code is Below

SELECTION-SCREEN: BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.

SELECTION-SCREEN: BEGIN OF LINE.

PARAMETER: p_MIP AS CHECKBOX DEFAULT 'X' USER-COMMAND ABC.

SELECTION-SCREEN COMMENT 2(65) TEXT-002 for field p_MIP.

SELECTION-SCREEN: END OF LINE.

SELECTION-SCREEN: BEGIN OF LINE.

PARAMETER: p_PFT AS CHECKBOX DEFAULT 'X' USER-COMMAND BCA.

SELECTION-SCREEN COMMENT 2(65) TEXT-003 for field p_PFT.

SELECTION-SCREEN: END OF LINE.

SELECTION-SCREEN: BEGIN OF LINE.

PARAMETER: p_ISD AS CHECKBOX DEFAULT 'X' USER-COMMAND CAB.

SELECTION-SCREEN COMMENT 2(65) TEXT-004 for field p_ISD.

SELECTION-SCREEN: END OF LINE.

SELECTION-SCREEN END OF BLOCK bk1.

SELECTION-SCREEN BEGIN OF BLOCK bk2 WITH FRAME TITLE text-005.

PARAMETER: p_MiIP AS CHECKBOX DEFAULT 'X' MODIF ID P1,

p_payme AS CHECKBOX DEFAULT 'X' MODIF ID P1,

p_vend AS CHECKBOX DEFAULT 'X' MODIF ID P1.

SELECTION-SCREEN END OF BLOCK bk2.

SELECTION-SCREEN BEGIN OF BLOCK bk3 WITH FRAME TITLE text-006.

*

PARAMETER: p_MiIP1 AS CHECKBOX DEFAULT 'X' MODIF ID P2,

p_payme1 AS CHECKBOX DEFAULT 'X' MODIF ID P2,

p_vend1 AS CHECKBOX DEFAULT 'X' MODIF ID P2.

SELECTION-SCREEN END OF BLOCK bk3.

SELECTION-SCREEN BEGIN OF BLOCK bk4 WITH FRAME TITLE text-007.

PARAMETER: p_MiIP2 AS CHECKBOX DEFAULT 'X' MODIF ID P3,

p_payme2 AS CHECKBOX DEFAULT 'X' MODIF ID P3,

p_vend2 AS CHECKBOX DEFAULT 'X' MODIF ID P3.

SELECTION-SCREEN END OF BLOCK bk4.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF P_MIP EQ 'X'." AND SCREEN-GROUP1 = 'P1'.

SCREEN-ACTIVE = '1'.

ELSE.

SCREEN-ACTIVE = '0'.

Endif.

IF p_PFT EQ 'X' ."AND SCREEN-GROUP1 = 'P2'.

SCREEN-GROUP1 = 'P2'.

SCREEN-ACTIVE = '1'.

ELSE.

SCREEN-ACTIVE = '0'.

Endif.

IF p_ISD EQ 'X' ."AND SCREEN-GROUP1 = 'P3'.

*SCREEN-GROUP1 = 'P1'.

SCREEN-ACTIVE = '1'.

ELSE.

SCREEN-ACTIVE = '0'.

Endif.

MODIFY SCREEN.

ENDLOOP.

Thanks,

Gopi.

4 REPLIES 4

uwe_schieferstein
Active Contributor
0 Kudos

Hello Anne

You were quite close to the right solution. Have a look at my sample report <b>ZUS_SDN_DYNAMIC_SELSCREEN</b>.

*&---------------------------------------------------------------------*
*& Report  ZUS_SDN_DYNAMIC_SELSCREEN
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zus_sdn_dynamic_selscreen.


SELECTION-SCREEN: BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.


SELECTION-SCREEN: BEGIN OF LINE.
PARAMETER: p_mip AS CHECKBOX DEFAULT 'X' USER-COMMAND abc.
SELECTION-SCREEN COMMENT 2(65) text-002 FOR FIELD p_mip.
SELECTION-SCREEN: END OF LINE.

SELECTION-SCREEN: BEGIN OF LINE.
PARAMETER: p_pft AS CHECKBOX DEFAULT 'X' USER-COMMAND bca.
SELECTION-SCREEN COMMENT 2(65) text-003 FOR FIELD p_pft.
SELECTION-SCREEN: END OF LINE.

SELECTION-SCREEN: BEGIN OF LINE.
PARAMETER: p_isd AS CHECKBOX DEFAULT 'X' USER-COMMAND cab.
SELECTION-SCREEN COMMENT 2(65) text-004 FOR FIELD p_isd.
SELECTION-SCREEN: END OF LINE.


SELECTION-SCREEN END OF BLOCK bk1.

SELECTION-SCREEN BEGIN OF BLOCK bk2 WITH FRAME TITLE text-005.

PARAMETER: p_miip AS CHECKBOX DEFAULT 'X' MODIF ID p1,
p_payme AS CHECKBOX DEFAULT 'X' MODIF ID p1,
p_vend AS CHECKBOX DEFAULT 'X' MODIF ID p1.

SELECTION-SCREEN END OF BLOCK bk2.



SELECTION-SCREEN BEGIN OF BLOCK bk3 WITH FRAME TITLE text-006.
*
PARAMETER: p_miip1 AS CHECKBOX DEFAULT 'X' MODIF ID p2,
p_payme1 AS CHECKBOX DEFAULT 'X' MODIF ID p2,
p_vend1 AS CHECKBOX DEFAULT 'X' MODIF ID p2.

SELECTION-SCREEN END OF BLOCK bk3.



SELECTION-SCREEN BEGIN OF BLOCK bk4 WITH FRAME TITLE text-007.

PARAMETER: p_miip2 AS CHECKBOX DEFAULT 'X' MODIF ID p3,
p_payme2 AS CHECKBOX DEFAULT 'X' MODIF ID p3,
p_vend2 AS CHECKBOX DEFAULT 'X' MODIF ID p3.

SELECTION-SCREEN END OF BLOCK bk4.



AT SELECTION-SCREEN OUTPUT.

  LOOP AT SCREEN.

    CASE screen-group1.
      WHEN 'P1'.
        IF ( p_mip = 'X' ).
          screen-input = '1'.
        ELSE.
          screen-input = '0'.
        ENDIF.

      WHEN 'P2'.
        IF ( p_pft = 'X' ).
          screen-input = '1'.
        ELSE.
          screen-input = '0'.
        ENDIF.

      WHEN 'P3'.
        IF ( p_isd = 'X' ).
          screen-input = '1'.
        ELSE.
          screen-input = '0'.
        ENDIF.

      WHEN OTHERS.
        CONTINUE.
    ENDCASE.

    MODIFY SCREEN.

  ENDLOOP.


START-OF-SELECTION.


END-OF-SELECTION.

Regards

Uwe

Former Member
0 Kudos

Check the below program and which i modified :

REPORT ztest_ytt no standard page heading.

tables : t000md.

SELECTION-SCREEN: BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.

SELECTION-SCREEN: BEGIN OF LINE.

PARAMETER: p_MIP AS CHECKBOX DEFAULT 'X' USER-COMMAND ABC.

SELECTION-SCREEN COMMENT 2(65) TEXT-002 for field p_MIP.

SELECTION-SCREEN: END OF LINE.

SELECTION-SCREEN: BEGIN OF LINE.

PARAMETER: p_PFT AS CHECKBOX DEFAULT 'X' USER-COMMAND BCA.

SELECTION-SCREEN COMMENT 2(65) TEXT-003 for field p_PFT.

SELECTION-SCREEN: END OF LINE.

SELECTION-SCREEN: BEGIN OF LINE.

PARAMETER: p_ISD AS CHECKBOX DEFAULT 'X' USER-COMMAND CAB.

SELECTION-SCREEN COMMENT 2(65) TEXT-004 for field p_ISD.

SELECTION-SCREEN: END OF LINE.

SELECTION-SCREEN END OF BLOCK bk1.

SELECTION-SCREEN BEGIN OF BLOCK bk2 WITH FRAME TITLE text-005.

PARAMETER: p_MiIP AS CHECKBOX DEFAULT 'X' MODIF ID P1,

p_payme AS CHECKBOX DEFAULT 'X' MODIF ID P1,

p_vend AS CHECKBOX DEFAULT 'X' MODIF ID P1.

SELECTION-SCREEN END OF BLOCK bk2.

SELECTION-SCREEN BEGIN OF BLOCK bk3 WITH FRAME TITLE text-006.

*

PARAMETER: p_MiIP1 AS CHECKBOX DEFAULT 'X' MODIF ID P2,

p_payme1 AS CHECKBOX DEFAULT 'X' MODIF ID P2,

p_vend1 AS CHECKBOX DEFAULT 'X' MODIF ID P2.

SELECTION-SCREEN END OF BLOCK bk3.

SELECTION-SCREEN BEGIN OF BLOCK bk4 WITH FRAME TITLE text-007.

PARAMETER: p_MiIP2 AS CHECKBOX DEFAULT 'X' MODIF ID P3,

p_payme2 AS CHECKBOX DEFAULT 'X' MODIF ID P3,

p_vend2 AS CHECKBOX DEFAULT 'X' MODIF ID P3.

SELECTION-SCREEN END OF BLOCK bk4.

AT SELECTION-SCREEN OUTPUT.

select single * from t000md.

LOOP AT SCREEN.

case screen-group1.

when 'P1'.

IF P_MIP EQ 'X'.

SCREEN-ACTIVE = '1'.

screen-input = '1'.

else.

SCREEN-ACTIVE = '0'.

screen-input = '0'.

endif.

when 'P2'.

IF p_PFT EQ 'X'.

SCREEN-ACTIVE = '1'.

screen-input = '1'.

else.

SCREEN-ACTIVE = '0'.

screen-input = '0'.

endif.

when 'P3'.

IF p_ISD EQ 'X'.

SCREEN-ACTIVE = '1'.

screen-input = '1'.

else.

SCREEN-ACTIVE = '0'.

screen-input = '0'.

endif.

endcase.

MODIFY SCREEN.

ENDLOOP.

Thanks

Seshu

0 Kudos

Hi Seshu,

Thanks for your reply.

The logic which u send is fine.But i need to activate only one Check box in Block1, so that the other check boxes of block1 must be deactivated .

So can u tell me How to do?

Thanks,

Gopi Anne.

0 Kudos

Hello Anne

If you formulate your requirements exactly and completely you will get right answers much faster. Mutally exclusive checkboxes are nothing else but radiobuttons.

*&---------------------------------------------------------------------*
*& Report  ZUS_SDN_DYNAMIC_SELSCREEN
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zus_sdn_dynamic_selscreen.


SELECTION-SCREEN: BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.


**SELECTION-SCREEN: BEGIN OF LINE.
**PARAMETER: p_mip AS CHECKBOX DEFAULT 'X' USER-COMMAND abc.
**SELECTION-SCREEN COMMENT 2(65) text-002 FOR FIELD p_mip.
**SELECTION-SCREEN: END OF LINE.
**
**SELECTION-SCREEN: BEGIN OF LINE.
**PARAMETER: p_pft AS CHECKBOX DEFAULT 'X' USER-COMMAND bca.
**SELECTION-SCREEN COMMENT 2(65) text-003 FOR FIELD p_pft.
**SELECTION-SCREEN: END OF LINE.
**
**SELECTION-SCREEN: BEGIN OF LINE.
**PARAMETER: p_isd AS CHECKBOX DEFAULT 'X' USER-COMMAND cab.
**SELECTION-SCREEN COMMENT 2(65) text-004 FOR FIELD p_isd.
**SELECTION-SCREEN: END OF LINE.

SELECTION-SCREEN: BEGIN OF LINE.
PARAMETER: p_mip RADIOBUTTON GROUP rad DEFAULT 'X' USER-COMMAND abc.
SELECTION-SCREEN COMMENT 2(65) text-002 FOR FIELD p_mip.
SELECTION-SCREEN: END OF LINE.

SELECTION-SCREEN: BEGIN OF LINE.
PARAMETER: p_pft RADIOBUTTON GROUP rad.
SELECTION-SCREEN COMMENT 2(65) text-003 FOR FIELD p_pft.
SELECTION-SCREEN: END OF LINE.

SELECTION-SCREEN: BEGIN OF LINE.
PARAMETER: p_isd RADIOBUTTON GROUP rad.
SELECTION-SCREEN COMMENT 2(65) text-004 FOR FIELD p_isd.
SELECTION-SCREEN: END OF LINE.


SELECTION-SCREEN END OF BLOCK bk1.

SELECTION-SCREEN BEGIN OF BLOCK bk2 WITH FRAME TITLE text-005.

PARAMETER: p_miip AS CHECKBOX DEFAULT 'X' MODIF ID p1,
p_payme AS CHECKBOX DEFAULT 'X' MODIF ID p1,
p_vend AS CHECKBOX DEFAULT 'X' MODIF ID p1.

SELECTION-SCREEN END OF BLOCK bk2.



SELECTION-SCREEN BEGIN OF BLOCK bk3 WITH FRAME TITLE text-006.
*
PARAMETER: p_miip1 AS CHECKBOX DEFAULT 'X' MODIF ID p2,
p_payme1 AS CHECKBOX DEFAULT 'X' MODIF ID p2,
p_vend1 AS CHECKBOX DEFAULT 'X' MODIF ID p2.

SELECTION-SCREEN END OF BLOCK bk3.



SELECTION-SCREEN BEGIN OF BLOCK bk4 WITH FRAME TITLE text-007.

PARAMETER: p_miip2 AS CHECKBOX DEFAULT 'X' MODIF ID p3,
p_payme2 AS CHECKBOX DEFAULT 'X' MODIF ID p3,
p_vend2 AS CHECKBOX DEFAULT 'X' MODIF ID p3.

SELECTION-SCREEN END OF BLOCK bk4.



AT SELECTION-SCREEN OUTPUT.

  LOOP AT SCREEN.

    CASE screen-group1.
      WHEN 'P1'.
        IF ( p_mip = 'X' ).
          screen-input = '1'.
        ELSE.
          screen-input = '0'.
        ENDIF.

      WHEN 'P2'.
        IF ( p_pft = 'X' ).
          screen-input = '1'.
        ELSE.
          screen-input = '0'.
        ENDIF.

      WHEN 'P3'.
        IF ( p_isd = 'X' ).
          screen-input = '1'.
        ELSE.
          screen-input = '0'.
        ENDIF.

      WHEN OTHERS.
        CONTINUE.
    ENDCASE.

    MODIFY SCREEN.

  ENDLOOP.


START-OF-SELECTION.


END-OF-SELECTION.

Regards

Uwe