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: 

making field mandatory on check-box clicking!!

Former Member
0 Kudos

Hi

i am using 2 parameter declared like this:

PARAMETERS:
  cb_bord AS CHECKBOX ,           "Electronic Borderel
  p_file TYPE rlgrap-filename MODIF ID scr. "OBLIGATORY.  " File Name

and my req is when the check bos is checked the p_file shud b input enabled and mandatory.....

for that i am doing...

 CLEAR screen.
  IF cb_bord EQ 'X'.
    LOOP AT SCREEN.
      IF screen-group1 EQ c_scr.
        screen-input = '1'.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ELSE.
    LOOP AT SCREEN.
      IF screen-group1 EQ c_scr.
        screen-input = '0'.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ENDIF.

but at the same time how to make fields madatory..if i declare it mandatory in the parameter......once the check box is unchecked it again prompts for entering some value in that p_file parameter....

Regards

Gunjan

1 ACCEPTED SOLUTION

former_member283648
Participant
0 Kudos

Hi Gunjan,

Try assigning a user command to the checkbox.

Try this code.

constants : c_scr type char03 value 'SCR'.

PARAMETERS:

cb_bord AS CHECKBOX user-command CHECK, "Electronic Borderel

p_file TYPE rlgrap-filename MODIF ID scr. "OBLIGATORY. " File Name

at selection-screen output.

CLEAR screen.

IF cb_bord EQ 'X'.

LOOP AT SCREEN.

IF screen-group1 EQ c_scr.

screen-input = '1'.

screen-required = '1'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ELSE.

LOOP AT SCREEN.

IF screen-group1 EQ c_scr.

screen-input = '0'.

screen-required = '0'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

11 REPLIES 11

Former Member
0 Kudos

Hi,

Manually check if the field is populated or instead of using OBLIGATORY..

AT SELECTION-SCREEN.

IF CB_BORD = 'X'.

IF P_FILE IS INITIAL.

MESSAGE E208(00) WITH 'FILE NAME REQUIRED'.

ENDIF.

ENDIF.

Thanks,

Naren

gopi_narendra
Active Contributor
0 Kudos

use the option screen-required

Regards

- Gopi

0 Kudos
Assign a user command to check1 as below
PARAMETERS: check1 TYPE char1 AS CHECKBOX USER-COMMAND cb1.

and Use the AT-SELECTION-SCREEN event.

AT-SELECTION-SCREEN.
IF check1 = 'X' and SO is initial.
Message e000(VZ) with 'Enter value in SO'.
Endif.

dani_mn
Active Contributor
0 Kudos

HI,

check the code in bold for making field mandatory.

CLEAR screen.

IF cb_bord EQ 'X'.

LOOP AT SCREEN.

IF screen-group1 EQ c_scr.

screen-input = '1'.

<b> screen-required = '1'.</b>

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ELSE.

LOOP AT SCREEN.

IF screen-group1 EQ c_scr.

screen-input = '0'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

Regards,

Former Member
0 Kudos

HI

if i make all the changes mentioned in the post the file name is mandaotur gets triggred even before making field input enabled.....so first i need to make the field input enabvled and then make it mandatory....

i have written the input enabled part in at selection screen output.....

and if i make the screen-required = 1...if i press the back button it prompts for entering something in this field..

regards

Gunjan

Former Member
0 Kudos

Hi,

Check this code..

PARAMETERS:

cb_bord AS CHECKBOX USER-COMMAND FILE, "Electronic Borderel

p_file TYPE rlgrap-filename MODIF ID scr.

AT SELECTION-SCREEN.

IF SY-UCOMM <> 'FILE' AND cb_bord = 'X' AND P_FILE IS INITIAL.

MESSAGE E208(00) WITH 'FILE IS REQUIRED'.

ENDIF.

AT SELECTION-SCREEN OUTPUT.

IF CB_BORD = 'X'.

LOOP AT SCREEN.

IF SCREEN-GROUP1 = 'SCR'.

SCREEN-INPUT = '1'.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ELSE.

LOOP AT SCREEN.

IF SCREEN-GROUP1 = 'SCR'.

SCREEN-INPUT = '0'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

Thanks,

Naren

Former Member
0 Kudos

at selection screen gets triggred before output and hence it checks for the mandatory field ir p_file even before making it mandatory!!

Former Member
0 Kudos

Hi,

That is what your requirement is??correct?..You want to make the file parameter mandatory if the checkbox is checked..

PARAMETERS:

cb_bord AS CHECKBOX USER-COMMAND FILE, "Electronic Borderel

p_file TYPE rlgrap-filename MODIF ID scr.

AT SELECTION-SCREEN.

IF SY-UCOMM <> 'FILE' AND cb_bord = 'X' AND P_FILE IS INITIAL.

MESSAGE E208(00) WITH 'FILE IS REQUIRED'.

ENDIF.

AT SELECTION-SCREEN OUTPUT.

IF CB_BORD = 'X'.

LOOP AT SCREEN.

IF SCREEN-GROUP1 = 'SCR'.

SCREEN-INPUT = '1'.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ELSE.

LOOP AT SCREEN.

IF SCREEN-GROUP1 = 'SCR'.

SCREEN-INPUT = '0'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

Thanks,

Naren

Former Member
0 Kudos

pls read the post carefully...

-


mandatory after making it input enabled

former_member283648
Participant
0 Kudos

Hi Gunjan,

Try assigning a user command to the checkbox.

Try this code.

constants : c_scr type char03 value 'SCR'.

PARAMETERS:

cb_bord AS CHECKBOX user-command CHECK, "Electronic Borderel

p_file TYPE rlgrap-filename MODIF ID scr. "OBLIGATORY. " File Name

at selection-screen output.

CLEAR screen.

IF cb_bord EQ 'X'.

LOOP AT SCREEN.

IF screen-group1 EQ c_scr.

screen-input = '1'.

screen-required = '1'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ELSE.

LOOP AT SCREEN.

IF screen-group1 EQ c_scr.

screen-input = '0'.

screen-required = '0'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

Former Member
0 Kudos

Hi Gunjan

Hope this is what you are expecting.

PARAMETERS:
  cb_bord AS CHECKBOX user-command abc,           "Electronic Borderel
  p_file TYPE rlgrap-filename MODIF ID scr. "OBLIGATORY.

at selection-screen output.
  loop at screen.
     check screen-name eq 'P_FILE'.
     case cb_bord.
     when 'X'.
         screen-required = '1'.
         screen-input = '1'.
     when space.
         screen-required = '0'.
         screen-input = '0'.
     endcase.
     modify screen.
  endloop.

Kind Regards

Eswar