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

selection screen help

Former Member
0 Likes
551

hello experts ,

i am facing a problem in the selection screen.

my object is to use two block in a selection screen in which i have two parameters and a check box in each block. And i have kept a parameter as mandatory in a block. Here the problem is that i have kept the parameter as mandatory so the 'at selection screen output' event is not getting triggered without entering any values to parameter.

this is my coding.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME title TEXT-001.

SELECT-OPTIONS : S_GSBER FOR TGSB-GSBER OBLIGATORY MODIF ID M1,

S_AUGDT FOR BSAK-AUGDT MODIF ID M1.

PARAMETER : P_BUKRS TYPE T001-BUKRS MODIF ID M1,

TEST TYPE C AS CHECKBOX USER-COMMAND Z1 DEFAULT 'X' MODIF ID M1.

SELECTION-SCREEN END OF BLOCK B1.

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

PARAMETER : CTP TYPE C AS CHECKBOX USER-COMMAND Z1 DEFAULT 'X' MODIF ID M2.

SELECT-OPTIONS : S_DD FOR SY-DATUM MODIF ID M2,

S_PD FOR SY-DATUM MODIF ID M2.

SELECTION-SCREEN END OF BLOCK B2.

AT SELECTION-SCREEN OUTPUT.

IF TEST = 'X' AND CTP = 'X'.

LOOP AT SCREEN.

IF SCREEN-GROUP1 = 'M2'.

SCREEN-INPUT = '0'.

MODIFY SCREEN.

ENDIF.

Here when i uncheck the 'test' checkbox it is showing error to 'fill all the required fields'. so how can i get rid of it.

Edited by: Arun Pandian on Nov 5, 2008 9:02 AM

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
527

Hi,

I modified ur code...and it is working now...


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

SELECT-OPTIONS : s_gsber FOR tgsb-gsber MODIF ID m1,        "remove OBLIGATORY
s_augdt FOR bsak-augdt MODIF ID m1.

PARAMETER : p_bukrs TYPE t001-bukrs MODIF ID m1,
test TYPE c AS CHECKBOX USER-COMMAND z1 DEFAULT 'X' MODIF ID m1.

SELECTION-SCREEN END OF BLOCK b1.

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

PARAMETER : ctp TYPE c AS CHECKBOX USER-COMMAND z1 DEFAULT 'X' MODIF ID m2.

SELECT-OPTIONS : s_dd FOR sy-datum MODIF ID m2,
s_pd FOR sy-datum MODIF ID m2.

SELECTION-SCREEN END OF BLOCK b2.

AT SELECTION-SCREEN ON s_gsber.           "ADD this...
  IF sy-ucomm NE 'Z1' AND s_gsber IS INITIAL.
    MESSAGE 'Enter value' TYPE 'E'.
  ENDIF.


AT SELECTION-SCREEN OUTPUT.
  IF test = 'X' AND ctp = 'X'.
    LOOP AT SCREEN.
      IF screen-group1 = 'M2'.
        screen-input = '0'.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ENDIF.

4 REPLIES 4
Read only

JozsefSzikszai
Active Contributor
0 Likes
527

in this case you have to remove the OBLIGATORY statement and check in the AT-SELECTION SCREEN OUTPUT if the field is filled or not. something like:

IF field IS INITIAL.
MESSAGE ...
ENDIF.

Read only

Former Member
0 Likes
527

AT SELECTION-SCREEN OUTPUT event is getting triggered so u r second block fields and checkbox are disabled

Read only

Former Member
0 Likes
528

Hi,

I modified ur code...and it is working now...


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

SELECT-OPTIONS : s_gsber FOR tgsb-gsber MODIF ID m1,        "remove OBLIGATORY
s_augdt FOR bsak-augdt MODIF ID m1.

PARAMETER : p_bukrs TYPE t001-bukrs MODIF ID m1,
test TYPE c AS CHECKBOX USER-COMMAND z1 DEFAULT 'X' MODIF ID m1.

SELECTION-SCREEN END OF BLOCK b1.

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

PARAMETER : ctp TYPE c AS CHECKBOX USER-COMMAND z1 DEFAULT 'X' MODIF ID m2.

SELECT-OPTIONS : s_dd FOR sy-datum MODIF ID m2,
s_pd FOR sy-datum MODIF ID m2.

SELECTION-SCREEN END OF BLOCK b2.

AT SELECTION-SCREEN ON s_gsber.           "ADD this...
  IF sy-ucomm NE 'Z1' AND s_gsber IS INITIAL.
    MESSAGE 'Enter value' TYPE 'E'.
  ENDIF.


AT SELECTION-SCREEN OUTPUT.
  IF test = 'X' AND ctp = 'X'.
    LOOP AT SCREEN.
      IF screen-group1 = 'M2'.
        screen-input = '0'.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ENDIF.

Read only

Former Member
0 Likes
527

Hi Arun,

For my understanding I think you should remove the Obligatory from the chcek box and put that condition in the event AT SELECTION-SCREEN OUTPUT. This way your problem will solve.

Thanks,

Chidanand