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: 

Module Pool: Making a field visible only when radio button is clicked

Former Member
0 Kudos

Hi all,

My requirement is that in a module pool program i have to make one field

visible for input only when the radio button is clicked.Kindly guide me how

to do it.

Please reply itz urgent!!

Thanks in advance.

syed

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi

Define that field into a GROUP in the screen attributes

and see the sample code for that

IF pa_rep EQ gc_x.

LOOP AT SCREEN.

IF screen-group1 = gc_abc.

screen-input = 0.

ELSEIF screen-group1 = gc_def.

screen-active = 1.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ELSEIF pa_upd EQ gc_x.

*For Reprocessing

LOOP AT SCREEN.

IF screen-group1 = gc_def.

screen-input = 0.

ELSEIF screen-group1 = gc_abc.

screen-active = 1.

ENDIF.

MODIFY SCREEN.

Reward points for useful Answers

Regards

Anji

6 REPLIES 6

sridevi_p
Active Contributor
0 Kudos

Hi,

Try it out..have the field in a separate subscreen and thery by u can easily control it...but is a big roundabout way.

Regards,

sridevi

<i><b>* Pl.s assign points, if useful</b></i>

Former Member
0 Kudos

Hi

Though PAI gets triggered after your action.

You need to <b>check the value of the radio-button</b> and <b>LOOP ON SCREEN</b> and based on the SCREEN-NAME (which refers to your field), make it visible in <b>PBO</b>.

Regards

Raj

Former Member
0 Kudos

Hi

Define that field into a GROUP in the screen attributes

and see the sample code for that

IF pa_rep EQ gc_x.

LOOP AT SCREEN.

IF screen-group1 = gc_abc.

screen-input = 0.

ELSEIF screen-group1 = gc_def.

screen-active = 1.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ELSEIF pa_upd EQ gc_x.

*For Reprocessing

LOOP AT SCREEN.

IF screen-group1 = gc_def.

screen-input = 0.

ELSEIF screen-group1 = gc_abc.

screen-active = 1.

ENDIF.

MODIFY SCREEN.

Reward points for useful Answers

Regards

Anji

amit_khare
Active Contributor
0 Kudos

if c_radio = 'X'.

loop at screen.

if screen-name = <field_name>.

screen-visible = '1'.

endif.

modify screen.

endloop.

Regards,

Amit

Reward all helpful replies.

Former Member
0 Kudos

Hi

Try this

INITIALIZATION .

repid = sy-repid .

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

PARAMETERS: rad_blk1 RADIOBUTTON GROUP rad1 USER-COMMAND rad DEFAULT 'X' .

PARAMETERS: rad_blk2 RADIOBUTTON GROUP rad1.

SELECTION-SCREEN: END OF BLOCK b1.

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

PARAMETERS: chk_blk1 AS CHECKBOX MODIF ID ms2 USER-COMMAND chk .

PARAMETERS: chk_blk2 AS CHECKBOX MODIF ID ms5 USER-COMMAND chk1 .

SELECT-OPTIONS: s_matnr FOR eban-matnr MODIF ID ms1.

SELECT-OPTIONS :s_lgort FOR eban-lgort MODIF ID ms4 .

SELECTION-SCREEN: END OF BLOCK b2.

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

SELECT-OPTIONS : s_banfn FOR eban-banfn MODIF ID ms3 .

SELECTION-SCREEN: END OF BLOCK b3.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF screen-group1 = 'MS1' .

IF rad_blk1 EQ 'X' .

screen-active = 1.

ELSE.

screen-active = 0 .

ENDIF.

ENDIF .

MODIFY SCREEN.

ENDLOOP.

LOOP AT SCREEN.

IF screen-group1 = 'MS4' .

IF rad_blk1 EQ 'X' .

screen-active = 1.

ELSE.

screen-active = 0 .

ENDIF.

ENDIF .

MODIFY SCREEN.

ENDLOOP.

LOOP AT SCREEN.

IF screen-group1 = 'MS5' .

IF rad_blk1 EQ 'X' .

screen-active = 1.

ELSE.

screen-active = 0 .

ENDIF.

ENDIF .

MODIFY SCREEN.

ENDLOOP.

LOOP AT SCREEN.

IF screen-group1 = 'MS3' .

IF rad_blk2 EQ 'X' .

screen-active = 1.

ELSE.

screen-active = 0 .

ENDIF.

ENDIF .

MODIFY SCREEN.

ENDLOOP.

LOOP AT SCREEN.

IF screen-group1 = 'MS2' .

IF rad_blk1 EQ 'X' .

screen-active = 1.

ELSE.

screen-active = 0 .

ENDIF.

ENDIF .

MODIFY SCREEN.

ENDLOOP.

LOOP AT SCREEN.

IF screen-group1 = 'MS1' .

IF chk_blk1 EQ 'X' .

screen-input = 1.

ELSE.

screen-input = 0 .

ENDIF.

ENDIF .

MODIFY SCREEN.

ENDLOOP.

LOOP AT SCREEN.

IF screen-group1 = 'MS4' .

IF chk_blk2 EQ 'X' .

screen-input = 1.

ELSE.

screen-input = 0 .

ENDIF.

ENDIF .

MODIFY SCREEN.

ENDLOOP.

IF t_comm = 'CHK' .

LOOP AT SCREEN.

IF screen-group1 = 'MS2' .

IF chk_blk1 EQ 'X' .

screen-input = 1.

ELSE.

screen-input = 0 .

ENDIF.

ENDIF .

MODIFY SCREEN.

ENDLOOP.

CLEAR t_comm .

ENDIF .

IF t_comm = 'CHK1' .

LOOP AT SCREEN.

IF screen-group1 = 'MS5' .

IF chk_blk2 EQ 'X' .

screen-input = 1.

ELSE.

screen-input = 0 .

ENDIF.

ENDIF .

MODIFY SCREEN.

ENDLOOP.

CLEAR t_comm .

ENDIF .

Thanks

Former Member
0 Kudos

hi syed,

try like this,

parameters: p1 type checkbox,

r1 type radiobutton group g1,

r2 type radiobutton group g1.

in AT SELECTION-SCREEN EVENT

case sy-ucomm.

when 'r1'.

screen-name = 'r1' .

loop at screen.

screen-input = 1.

modify screen.

endloop.

................

endcase.

if helpful reward some points.

with regards,

Suresh.A