‎2006 Jun 20 8:15 AM
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
‎2006 Jun 20 8:18 AM
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.
‎2006 Jun 20 8:19 AM
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
‎2006 Jun 20 8:20 AM
hi raju
apply ur logic in <b>AT SELECTION-SCREEN OUTPUT</b>.
Cheers,
Abdul Hakim
‎2006 Jun 20 8:21 AM
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.
‎2006 Jun 20 8:21 AM
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.
‎2006 Jun 20 8:22 AM
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
‎2006 Jun 20 8:24 AM
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.
‎2006 Jun 20 8:25 AM
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.
‎2006 Jun 20 8:27 AM
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
‎2006 Jun 20 8:34 AM
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
‎2006 Jun 20 8:54 AM
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!
‎2006 Jun 20 9:15 AM
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.