Application Development and Automation 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: 
Read only

probelm with selection screen

Former Member
0 Likes
1,242

Hi all,

my slection screen is like below.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.

PARAMETERS: P_BOX1 AS CHECKBOX,

PARAMETERS: P_BOX2 AS CHECKBOX.

SELECTION-SCREEN END OF BLOCK IN.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-002.

PARAMETERS: P_VAR1 TYPE C OBLIGATORY,

SELECTION-SCREEN END OF BLOCK B2.

SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-003.

PARAMETERS: P_VAR2 TYPE C OBLIGATORY,

SELECTION-SCREEN END OF BLOCK B3.

NOW IF I CHECK P_BOX1, P_VAR2 PARAMETER IN BLOCK3 SHOULD NOT STOP PROCEESING .THE REPORT SHOULD RUN WITH P_VAR1, AND VICE VERSA.

CAN ANY ONE HELP ME IN THIS.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,222

Hi

If u want ur fields to be obligatory try this...

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

PARAMETERS: p_box1 AS CHECKBOX USER-COMMAND ch1.

PARAMETERS: p_box2 AS CHECKBOX USER-COMMAND ch2.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.

PARAMETERS: p_var1 TYPE c MODIF ID v1.

SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.

PARAMETERS: p_var2 TYPE c MODIF ID v2.

SELECTION-SCREEN END OF BLOCK b3.

AT SELECTION-SCREEN OUTPUT.

IF p_box1 EQ 'X'.

LOOP AT SCREEN.

IF screen-group1 EQ 'V2'.

screen-active = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ELSEIF p_box2 EQ 'X'.

LOOP AT SCREEN.

IF screen-group1 EQ 'V1'.

screen-active = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

AT SELECTION-SCREEN." ON RADIOBUTTON GROUP r1 .

IF ( p_box1 = 'X' ) AND ( p_var1 IS INITIAL ) AND ( sy-ucomm = 'ONLI' ).

MESSAGE 'Enter var1' TYPE 'E'.

ELSEIF ( p_box2 = 'X' ) AND ( p_var2 IS INITIAL ) AND ( sy-ucomm = 'ONLI' ).

MESSAGE 'Enter var2' TYPE 'E'.

ENDIF.

Hi all,

my slection screen is like below.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.

PARAMETERS: P_BOX1 AS CHECKBOX,

PARAMETERS: P_BOX2 AS CHECKBOX.

SELECTION-SCREEN END OF BLOCK IN.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-002.

PARAMETERS: P_VAR1 TYPE C OBLIGATORY,

SELECTION-SCREEN END OF BLOCK B2.

SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-003.

PARAMETERS: P_VAR2 TYPE C OBLIGATORY,

SELECTION-SCREEN END OF BLOCK B3.

NOW IF I CHECK P_BOX1, P_VAR2 PARAMETER IN BLOCK3 SHOULD NOT STOP PROCEESING .THE REPORT SHOULD RUN WITH P_VAR1, AND VICE VERSA.

CAN ANY ONE HELP ME IN THIS.

9 REPLIES 9
Read only

Former Member
0 Likes
1,222

HI,

change this:

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.

PARAMETERS: P_BOX1 AS CHECKBOX,

PARAMETERS: P_BOX2 AS CHECKBOX.

SELECTION-SCREEN END OF BLOCK B1.

Regards

Nicole

Read only

Former Member
0 Likes
1,222

Hello,

Instead of OBLIGATORY, do folllowing:

AT SELECTION-SCREEN.

if p_box1 is not initial.

if p_var1 is initial.

raise error.

endif.

endif.

if p_box2 is not initial.

if p_var2 is initial.

raise error.

endif.

endif.

Read only

Former Member
0 Likes
1,222

Hi,

Don't use OBLIGATORY.

Use this type of logic


REPORT z_sdn.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_box1 AS CHECKBOX USER-COMMAND abc.
PARAMETERS: p_box2 AS CHECKBOX USER-COMMAND xyz.
SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS: p_var1 TYPE c MODIF ID chr.
SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
PARAMETERS: p_var2 TYPE c MODIF ID num.
SELECTION-SCREEN END OF BLOCK b3.


AT SELECTION-SCREEN OUTPUT.
  IF p_box1 EQ 'X'.
    LOOP AT SCREEN.
      IF screen-group1 EQ 'CHR'.
        screen-active = 0.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ELSEIF p_box2 EQ 'X'.
    LOOP AT SCREEN.
      IF screen-group1 EQ 'NUM'.
        screen-active = 0.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ENDIF.


START-OF-SELECTION.
WRITE: 'Hello'.

Regards

Abhijeet

Read only

Former Member
0 Likes
1,222

Hi,

change this

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.

PARAMETERS: P_BOX1 AS CHECKBOX,

PARAMETERS: P_BOX2 AS CHECKBOX.

SELECTION-SCREEN END OF BLOCK b1.

once select the check box disable the parameter p_var1 and vs p_var2

try this below code

PARAMETERS: p_rprint AS CHECKBOX USER-COMMAND check.

PARAMETERS : p_rec TYPE zsqno MODIF ID gr1.

AT SELECTION-SCREEN OUTPUT .

IF p_rprint EQ space. .

LOOP AT SCREEN.

IF screen-name = 'GR1'.

IF p_rprint EQ 'X'.

screen-input = `1`.

screen-invisible = 0.

ELSE.

screen-input = `0`.

screen-invisible = 1.

ENDIF.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

regards

bhupal

Edited by: bhupal reddy on Aug 21, 2008 7:57 AM

Read only

former_member200872
Active Participant
0 Likes
1,222

Hi,

Try the code given below.

Regards,

Wajid Hussain P.

  • * * * *

at selection-screen output.

if p_box1 = 'X' or p_var1 is not initial.

loop at screen.

if screen-name eq 'P_VAR2'.

screen-required = 0.

modify screen.

endloop.

else.

loop at screen.

if screen-name eq 'P_VAR2'.

screen-required = 1.

modify screen.

endloop.

endif.

Read only

Former Member
0 Likes
1,222

Thanks bhupal,

please check my parameters are obligatory.

gopal

Read only

Former Member
0 Likes
1,222

Hi,

the only thing we can do is to remeve OBLIGATORY from parameters declaration and write the logic for obligatory at selection-screen.

something like this :

AT SELECTION-SCREEN.

if P_BOX1 is not initial.

if P_VAR1 is not initial.

logic....

endif.

endif.

if P_BOX2 is not initial.

if P_VAR2 is not initial.

logic....

endif.

endif.

hope this helps.

thanx,

dhanashri.

Read only

Former Member
0 Likes
1,222

HI,

Please copy and paste the code given below...

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

PARAMETERS: p_box1 AS CHECKBOX.

PARAMETERS: p_box2 AS CHECKBOX.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.

PARAMETERS: p_var1 TYPE c.

SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.

PARAMETERS: p_var2 TYPE c.

SELECTION-SCREEN END OF BLOCK b3.

Thanks.

Nitesh

Read only

Former Member
0 Likes
1,223

Hi

If u want ur fields to be obligatory try this...

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

PARAMETERS: p_box1 AS CHECKBOX USER-COMMAND ch1.

PARAMETERS: p_box2 AS CHECKBOX USER-COMMAND ch2.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.

PARAMETERS: p_var1 TYPE c MODIF ID v1.

SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.

PARAMETERS: p_var2 TYPE c MODIF ID v2.

SELECTION-SCREEN END OF BLOCK b3.

AT SELECTION-SCREEN OUTPUT.

IF p_box1 EQ 'X'.

LOOP AT SCREEN.

IF screen-group1 EQ 'V2'.

screen-active = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ELSEIF p_box2 EQ 'X'.

LOOP AT SCREEN.

IF screen-group1 EQ 'V1'.

screen-active = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

AT SELECTION-SCREEN." ON RADIOBUTTON GROUP r1 .

IF ( p_box1 = 'X' ) AND ( p_var1 IS INITIAL ) AND ( sy-ucomm = 'ONLI' ).

MESSAGE 'Enter var1' TYPE 'E'.

ELSEIF ( p_box2 = 'X' ) AND ( p_var2 IS INITIAL ) AND ( sy-ucomm = 'ONLI' ).

MESSAGE 'Enter var2' TYPE 'E'.

ENDIF.