09-16-2008 12:56 PM
HI,
On my selection screen.
I have two parameters
Param1 , Obligatory
Param2
and then two radio buttons
rad1
rad2
My requirement is if i select one radio button param 1 is mandatory
and if i select radiobutton 2 then param1 is not required.it should be grayed out.
When i tried to modify the screen in at selection-screen output
when ever i am selecting second radio button on the selection sreen i am getting a message asking for input for param 1..
How to avoid automatic checks on selection screen.
Thanks
Kiran
09-16-2008 2:08 PM
Hi,
Please find the below code.
tables: sscrfields.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS : p_app RADIOBUTTON GROUP rb default 'X' user-command UC,
p_desk RADIOBUTTON GROUP rb.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-001.
parameters: param1(20),
param2(20) .
SELECTION-SCREEN END OF BLOCK b2.
at selection-screen output.
if p_desk eq 'X'.
loop at screen.
if screen-name = 'PARAM1'.
screen-input = '0'.
modify screen.
endif.
endloop.
endif.
at selection-screen.
if p_app eq 'X' and param1 is initial.
loop at screen.
if screen-name = 'PARAM1'.
screen-input = '1'.
modify screen.
endif.
endloop.
message 'enter the c' type 'E'.
endif.
Regards,
Suresh.
09-16-2008 12:58 PM
Hi,
Remove the OBLIGATORY addition and do the checking for the field yourself in the code.
Regards,
Rajvansh.
09-16-2008 1:01 PM
Donot make the selection parameter Param1 mandatory in the selection screen using keyword Obligatory.
Instead of this in 'at selection screen' event check the content of Param1 if 1st radio button is checked. And then if it is initial then display error message.
09-16-2008 1:01 PM
Hi Kiran ,
My requirement is if i select one radio button param 1 is mandatory .. As per your statement , when you select R1 ( radio button1 ) , then only the PARAM1 is mandatory.
So you can try this..
instead of Param1 , Obligatory, try Param1 .
Loop at screen and make your requirement feasible.
Regards,
Chitra
09-16-2008 1:04 PM
Remo obligatory for parm 1 ...(If its obligatory you should give some input to that and click on secon radio button ...)
I am giving one same code....
&----
*& Report ZSELECTION_SCREEN_MADHU
*&
&----
*&
*&
&----
REPORT ZSELECTION_SCREEN_MADHU NO STANDARD PAGE HEADING MESSAGE-ID ZTREE..
*&----
**& Report ZMADDY
*&----
REPORT ZMADDY NO STANDARD PAGE HEADING MESSAGE-ID ZTREE.
TABLES: MARA,MARC,VBAK ,MAKT,SSCRFIELDS.
DATA: BEGIN OF ITAB OCCURS 0 ,
SSCRFIELDS-FUNCTXT_01,
END OF ITAB.
SELECTION-SCREEN: FUNCTION KEY 1.
SELECTION-SCREEN: FUNCTION KEY 2.
SELECTION
SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN: SKIP 1.
SELECT-OPTIONS: S_MATNR FOR MARA-MATNR DEFAULT 'siva' NO-EXTENSION MODIF ID S2.
"MATCHCODE OBJECT Zmobj.
SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN DEFAULT 'maddy' MODIF ID S1.
PARAMETER: P_WERKS LIKE MARC-WERKS MODIF ID S2.
PARAMETER: P_MAKTX LIKE MAKT-MAKTX MODIF ID S1.
SELECTION-SCREEN: SKIP 1.
SELECTION-SCREEN: END OF BLOCK B1.
*********radio buttons************
SELECTION-SCREEN COMMENT /1(50) comm1 MODIF ID mg1.
SELECTION-SCREEN ULINE /1(25).
*SELECTION-SCREEN SKIP.
SELECTION-SCREEN: BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
SELECTION-SCREEN: BEGIN OF LINE.
PARAMETER: R1 RADIOBUTTON GROUP G2 DEFAULT 'X' USER-COMMAND UC1.
SELECTION-SCREEN : COMMENT 2(20) TEXT-021 FOR FIELD R1.
SELECTION-SCREEN: END OF LINE.
SELECTION-SCREEN: BEGIN OF LINE.
PARAMETER: R2 RADIOBUTTON GROUP G2.
SELECTION-SCREEN : COMMENT 2(10) TEXT-050 FOR FIELD R2 .
SELECTION-SCREEN :ULINE /1(10).
SELECTION-SCREEN: END OF LINE.
SELECTION-SCREEN: END OF BLOCK B2 .
INITIALIZATION.
MOVE 'HELP' TO SSCRFIELDS-FUNCTXT_01.
move 'Maddy' to sscrfields-functxt_02.
comm1 ='Select one Radio button'.
FUNCTXT_01 = 'HELP'.
AT SELECTION-SCREEN.
CASE SSCRFIELDS-UCOMM.
WHEN 'FC01'.
CALL SCREEN '101' STARTING AT 20 1
ENDING AT 90 25.
WHEN 'FC02'.
call SCREEN '102' starting at 20 1
ENDING AT 90 25.
WHEN OTHERS .
ENDCASE.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF R1 = 'X' AND SCREEN-GROUP1 = 'S2'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
IF R2 = 'X' AND SCREEN-GROUP1 = 'S1'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
&----
*& Module STATUS_0101 OUTPUT
&----
text
----
MODULE STATUS_0101 OUTPUT.
SET PF-STATUS 'STAT'.
SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0101 OUTPUT
&----
*& Module USER_COMMAND_0101 INPUT
&----
text
----
MODULE USER_COMMAND_0101 INPUT.
CASE SY-UCOMM.
WHEN 'CONTINUE'.
SET SCREEN 0.
LEAVE TO SCREEN 0.
WHEN 'CANCEL'.
SET SCREEN 0.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0101 INPUT
&----
*& Module back INPUT
&----
text
----
MODULE back INPUT.
SUBMIT ZSELECTION_SCREEN_MADHU via SELECTION-SCREEN.
ENDMODULE. " back INPUT
PLz give rewards
09-16-2008 1:04 PM
Hi,
try this way-
Parameters:param1 type mara-matnr,
param2 type marc-werks.
Parameters:p_rad1 radiobutton group gr1 user-command u1 default 'X',
p_rad2 radiobutton group gr1.
At selection-screen output.
if p_rad2 = 'X'.
Loop at screen.
if screen-name CS 'PARAM1'.
Screen-input = 0.
Modify screen.
Endif.
Endloop.
Endif.
At selection-screen.
if p_rad1 = 'X' and param1 is initial.
Message 'Fill mandatory field' type 'E'.
Endif.
09-16-2008 1:09 PM
Hi
SET PF-STATUS menu.
CASE sy-ucomm.
WHEN 'param1'.
LOOP AT SCREEN.
screen-input = '0'.
MODIFY SCREEN.
ENDLOOP.
when 'param2'.
LOOP AT SCREEN.
screen-output = '1'.
MODIFY SCREEN.
ENDLOOP. " Loop at screen.
ENDCASE. " Case sy-ucomm.
Regards,
Sravanthi
09-16-2008 2:08 PM
Hi,
Please find the below code.
tables: sscrfields.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS : p_app RADIOBUTTON GROUP rb default 'X' user-command UC,
p_desk RADIOBUTTON GROUP rb.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-001.
parameters: param1(20),
param2(20) .
SELECTION-SCREEN END OF BLOCK b2.
at selection-screen output.
if p_desk eq 'X'.
loop at screen.
if screen-name = 'PARAM1'.
screen-input = '0'.
modify screen.
endif.
endloop.
endif.
at selection-screen.
if p_app eq 'X' and param1 is initial.
loop at screen.
if screen-name = 'PARAM1'.
screen-input = '1'.
modify screen.
endif.
endloop.
message 'enter the c' type 'E'.
endif.
Regards,
Suresh.
09-16-2008 2:31 PM