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 vallidation

Former Member
0 Likes
1,151

Hi Friends ,

I have one radio button group which is having 2 radio buttons and 2 parameters on selection screen .what i want to do is if i select a radio button then parameter 1 should be active and Prameter 2 should be inactive . if i select radio button 2 then parameter2 should be active and parameter 1 should be inactive.

How to do this one

i am doing like this but it is not working.

AT SELECTION-SCREEN ON RADIOBUTTON GROUP GRP1.

LOOP AT SCREEN.

IF BW = 'X'.

screen-group1 = 'BK2'.

screen-INVISIBLE = 1.

ELSEIF APP_SER = 'X' .

screen-group1 = 'BK1'.

screen-INVISIBLE = 1.

ENDIF.

MODIFY SCREEN .

ENDLOOP.

Thanks

12 REPLIES 12
Read only

Former Member
0 Likes
1,114

Hi,

you are doing that in wrong event.

<b>AT SELECTION-SCREEN output.</b>

LOOP AT SCREEN.

IF BW = 'X'.
screen-group1 = 'BK2'.
screen-INVISIBLE = 1.


ELSEIF APP_SER = 'X' .

screen-group1 = 'BK1'.
screen-INVISIBLE = 1.
ENDIF.
MODIFY SCREEN .
ENDLOOP.

Read only

Former Member
0 Likes
1,114

Hi,

<b> Use ModIF id along with parameter.

apply logic in at selection-screen output.</b>

eg.

PARAMETERS       : p_sumfl TYPE char255 <b>modif id ABC  .</b>
PARAMETERS       : p_detfl TYPE char255 <b>modif id ABC.</b>

AT SELECTION-SCREEN OUTPUT.

  LOOP AT SCREEN.
    IF p_sumrep = 'X'.
      IF screen-group1  = 'ABC'.
        screen-input  = '0'.
        MODIFY SCREEN.
      ENDIF.
    ENDIF.
  ENDLOOP.

Code for ur case

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

  IF BW = 'X' and screen-group1 = 'BK2'.
        screen-input  = '0'.
        MODIFY SCREEN.

  ELSEIF APP_SER = 'X' and screen-group1 = 'BK1'.
        screen-input  = '0'.
        MODIFY SCREEN.
  ENDIF.

ENDLOOP.

<b>dont use Invisible ---> it will make invisible instead of deactivating it.

Also assign modif id for the parameters</b>

Mark Helpful Answers

Message was edited by: Manoj Gupta

Read only

abdul_hakim
Active Contributor
0 Likes
1,114

hi raju

apply ur logic in <b>AT SELECTION-SCREEN OUTPUT</b>.

Cheers,

Abdul Hakim

Read only

Former Member
0 Likes
1,114

Try this code.

report ztest.

tables: mara.

data : flag.

selection-screen begin of block b1 with frame title

text-001.

parameters: r_matgrp radiobutton group g1

default 'X' user-command rad1,

r_prdgrp radiobutton group g1.

selection-screen end of block b1.

selection-screen begin of block b2 with frame title

text-002.

select-options: s_matgrp for mara-matkl modif id mat,

s_prdgrp for pgmi-prgrp modif id prd.

selection-screen end of block b2.

at selection-screen output.

if r_matgrp eq 'X'.

flag = '1'.

elseif r_prdgrp eq 'X'.

flag = '2'.

endif.

          • For Material Type

case flag.

when '1'.

loop at screen.

case screen-group1.

when 'MAT'.

screen-invisible = '0'.

screen-active = '1'.

modify screen.

when 'PRD'.

screen-invisible = '1'.

screen-active = '0'.

modify screen.

endcase.

endloop.

        • For product type

when '2'.

loop at screen.

case screen-group1.

when 'MAT'.

screen-invisible = '1'.

screen-active = '0'.

modify screen.

when 'PRD'.

screen-invisible = '0'.

screen-active = '1'.

modify screen.

endcase.

endloop.

endcase.

Read only

Former Member
0 Likes
1,114

Use this code.

REPORT z_test .

SELECTION-SCREEN BEGIN OF BLOCK selscr.
PARAMETERS: p_rad1   RADIOBUTTON GROUP rad1 USER-COMMAND a DEFAULT 'X'.
PARAMETERS: p_rad2   RADIOBUTTON GROUP rad1.
SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(20) text-001 FOR FIELD p_sfile MODIF ID mo1.
PARAMETERS : p_sfile(100) TYPE c MODIF ID mo1
    DEFAULT '\SERVERNAMEDATATABLE.TXT'.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(20) text-001 FOR FIELD p_gfile MODIF ID mo2
.
PARAMETERS : p_gfile(100) TYPE c MODIF ID mo2
    DEFAULT 'C:TEMPDATATABLE.TXT'.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK selscr.


* At selection Screen Output Event
AT SELECTION-SCREEN OUTPUT.

  IF p_rad1 EQ 'X'.
    LOOP AT SCREEN.
      IF ( screen-group1 = 'MO2' ) .
        screen-input = 0.
        screen-invisible = 1.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ELSE.
    LOOP AT SCREEN.
      IF screen-group1 = 'MO1'.
        screen-input = 0.
        screen-invisible = 1.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ENDIF.

rgds,

TM.

Please mark points if helpful.

Read only

ashok_kumar24
Contributor
0 Likes
1,114

Hi Prithvi raju Rudraraju ,

Validation of selection screen can be performed in the

AT SELECTION SCREEN event.

Example:

************************************************************************

  • AT SELECTION SCREEN *

************************************************************************

at selection-screen.

perform validate_selection_screen using g_returkode.

if g_returkode = c_returkode_error.

exit.

endif.

&----


*& Form validate_selection_screen

&----


  • Validation of selection screen

----


  • -->P_G_RETURKODE text

----


form validate_selection_screen using p_returkode.

if s_framd > 12 or s_framd < 1 or s_tilmd > 12 or s_tilmd < 1.

message e998.

p_returkode = c_returkode_error.

exit.

endif.

if s_framd > s_tilmd.

message e997.

p_returkode = c_returkode_error.

exit.

endif.

if s_fraaar < s_tilaar.

message e996.

p_returkode = c_returkode_error.

exit.

endif.

ENDFORM.

Good Luck and reward me for the same

Thanks

Ashok.N

Read only

Former Member
0 Likes
1,114

Hi prithvi,

1. I have slightly modified your code.

2. Secondly we have to use the event

AT SELECTION-SCREEN OUTPUT.

3. JUST COPY PASTE.

(I just tried, and now it works fantastic)

4.

INITIALIZATION.

BW = 'X'.

AT SELECTION-SCREEN output.

LOOP AT SCREEN.

IF BW = 'X'.

if screen-group1 = 'BK2'.

screen-INVISIBLE = 1.

screen-input = 0.

endif.

ELSEIF APP_SER = 'X' .

if screen-group1 = 'BK1'.

screen-INVISIBLE = 1.

screen-input = 0.

ENDIF.

endif.

MODIFY SCREEN .

ENDLOOP.

regards,

amit m.

Read only

Former Member
0 Likes
1,114

Hi,

Try to run this program. U just copy and paste it your report. It will work.

report abc.

DATA : FLAG VALUE '1'.

tables : mara .

tables : pgmi.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE

TEXT-001.

PARAMETERS: R_MATGRP RADIOBUTTON GROUP G1

DEFAULT 'X' USER-COMMAND RAD1,

R_PRDGRP RADIOBUTTON GROUP G1.

SELECTION-SCREEN : eND OF BLOCK B1.

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE

TEXT-002.

SELECT-OPTIONS: S_MATGRP FOR MARA-MATKL MODIF ID A,

S_PRDGRP FOR PGMI-PRGRP MODIF ID B.

SELECTION-SCREEN END OF BLOCK B2.

AT SELECTION-SCREEN ON RADIOBUTTON GROUP G1.

IF R_MATGRP EQ 'X'.

FLAG = '1'.

ELSEIF R_PRDGRP EQ 'X'.

FLAG = '2'.

ENDIF.

AT SELECTION-SCREEN OUTPUT.

          • For Material Type

CASE FLAG.

WHEN '1'.

LOOP AT SCREEN.

IF SCREEN-GROUP1 = 'B'.

SCREEN-INVISIBLE = 1.

SCREEN-INPUT = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDCASE.

CASE FLAG.

WHEN '2'.

LOOP AT SCREEN.

IF SCREEN-GROUP1 = 'A'.

SCREEN-INVISIBLE = 1.

SCREEN-INPUT = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDCASE.

Cheers.

Read only

Former Member
0 Likes
1,114

Hi,

just check this code...


REPORT ZTEST.
parameter: r radiobutton group g1 user-command ABC,
           r1  radiobutton group g1.
parameters: p_matnr like mara-matnr,
            p_vbeln like vbak-vbeln.

at selection-screen output.

if r = 'X'.
loop at screen.
if screen-name = 'P_MATNR'.
screen-input = '0'.
clear p_matnr.
modify screen.
endif.
endloop.

endif.

if r1 = 'X'.
loop at screen.
if screen-name = 'P_VBELN'.
screen-input = '0'.
clear p_VBELN.
modify screen.
endif.
endloop.
endif.

Regards

vijay

Read only

Former Member
0 Likes
1,114

Hi,

REPORT ZTEST2

NO STANDARD PAGE HEADING LINE-SIZE 255.

PARAMETERS: R1 RADIOBUTTON GROUP RAD1 DEFAULT 'X',

R2 RADIOBUTTON GROUP RAD1.

PARAMETERS: TEST1(10) MODIF ID SC1,

TEST2(10) MODIF ID SC2.

AT SELECTION-SCREEN OUTPUT.

IF R1 = 'X'.

LOOP AT SCREEN.

IF SCREEN-GROUP1 = 'SC1'.

SCREEN-INPUT = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ELSE.

LOOP AT SCREEN.

IF SCREEN-GROUP1 = 'SC2'.

SCREEN-INPUT = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

Thanks,

Pramod

Read only

0 Likes
1,114

Hi,

I had the same problem a few days ago. Please try the code below.

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

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS: pr_upld RADIOBUTTON GROUP grp MODIF ID id3

USER-COMMAND ucomm.

SELECTION-SCREEN COMMENT 2(20) text-007 FOR FIELD pr_upld.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 03(15) text-a11 FOR FIELD p_flnme MODIF ID id3.

PARAMETERS: p_flnme LIKE rlgrap-filename DEFAULT 'C:\' MODIF ID id3.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(22) text-002 FOR FIELD p_dcode MODIF ID id1.

PARAMETERS: p_dcode LIKE vbak-kunnr MODIF ID id1,

p_name1 LIKE kna1-name1 MODIF ID id1.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS: pr_list RADIOBUTTON GROUP grp MODIF ID id4.

SELECTION-SCREEN COMMENT 2(7) text-003 FOR FIELD pr_list MODIF ID id4.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS: pr_add RADIOBUTTON GROUP grp MODIF ID id2.

SELECTION-SCREEN COMMENT 2(3) text-005 FOR FIELD pr_add MODIF ID id2.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS: pr_edit RADIOBUTTON GROUP grp MODIF ID id5.

SELECTION-SCREEN COMMENT 2(4) text-006 FOR FIELD pr_edit MODIF ID id5.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 03(20) text-a12 FOR FIELD p_code MODIF ID id2.

*PARAMETERS: p_kunnr LIKE zts0001-kunnr.

PARAMETERS: p_code LIKE zts0001-cdseq MODIF ID id6.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK box1.

AT SELECTION-SCREEN OUTPUT.

IF v_compflag EQ space.

LOOP AT SCREEN.

IF screen-group1 = 'ID1'.

screen-input = '0'.

screen-output = '1'.

MODIFY SCREEN.

ELSEIF screen-group1 = 'ID2'.

screen-active = '1'.

MODIFY SCREEN.

ELSEIF screen-group1 = 'ID3'.

screen-active = '0'.

MODIFY SCREEN.

ELSEIF screen-group1 = 'ID4'.

screen-active = '1'.

MODIFY SCREEN.

ELSEIF screen-group1 = 'ID5'.

screen-active = '1'.

MODIFY SCREEN.

ELSEIF screen-group1 = 'ID6'.

screen-active = '1'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ELSEIF v_compflag NE space.

LOOP AT SCREEN.

IF screen-group1 = 'ID1'.

screen-active = '0'.

MODIFY SCREEN.

ELSEIF screen-group1 = 'ID2'.

screen-active = '0'.

MODIFY SCREEN.

ELSEIF screen-group1 = 'ID3'.

screen-active = '1'.

MODIFY SCREEN.

ELSEIF screen-group1 = 'ID4'.

screen-active = '1'.

MODIFY SCREEN.

ELSEIF screen-group1 = 'ID5'.

screen-active = '0'.

MODIFY SCREEN.

ELSEIF screen-group1 = 'ID6'.

screen-active = '0'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

*for users that are not controllers

LOOP AT SCREEN.

IF screen-name = 'P_CODE'.

screen-input = '0'.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

IF pr_list = 'X' OR

pr_add = 'X' OR

pr_upld = 'X'.

LOOP AT SCREEN.

IF screen-group1 = 'ID6'.

screen-input = '0'.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ELSEIF pr_edit = 'X'.

LOOP AT SCREEN.

IF screen-group1 = 'ID6'.

screen-input = '1'.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ENDIF.

*for controllers

IF pr_upld = 'X'.

LOOP AT SCREEN.

IF screen-name = 'P_FLNME'.

screen-input = '1'.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ELSEIF pr_list = 'X'.

LOOP AT SCREEN.

IF screen-name = 'P_FLNME'.

screen-input = '0'.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ENDIF.

AT SELECTION-SCREEN.

CHECK sy-ucomm = 'UCOMM'.

Regards!

Read only

Former Member
0 Likes
1,114
try this

*&---------------------------------------------------------------------*
*& Report  YCHATEST                                                    *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  YCHATEST                                .
DATA : FLAG(1) value 1,
      FLAG1(1) value 0.

PARAMETERS : APPLSER  RADIOBUTTON GROUP  R1 USER-COMMAND R,
             PRESER   RADIOBUTTON GROUP  R1,
             P_ASER(25) MODIF ID AS,
             P_PSER(25) MODIF ID PS.

AT SELECTION-SCREEN.
  IF SY-UCOMM = 'R'.
      IF APPLSER = 'X'.
        FLAG = '1'.
        FLAG1 = '0'.
      ELSEIF PRESER = 'X'.
        FLAG = '0'.
        FLAG1 = '1'.
      ENDIF.
  ENDIF.

AT SELECTION-SCREEN OUTPUT.

  LOOP AT SCREEN.
    IF SCREEN-GROUP1 = 'AS'.
      SCREEN-INPUT = FLAG.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.
  LOOP AT SCREEN.
    IF SCREEN-GROUP1 = 'PS'.
      SCREEN-INPUT = FLAG1.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.