‎2008 Aug 14 11:58 AM
Hi All,
I have one query for which i am looking for some help.
I have one selection screen on which there are two radio buttons namely for upload pricing and download pricing. The thing is that when user select one of those radio button and press F8, i need to show second selection screen on which there are few parameters for data fetching.
Could you please help me out? It wud be gre8 help for me if you answer the question with code.
Thanks & Regards,
Parag
‎2008 Aug 14 12:06 PM
Parag,
You can define second selection screen fields as
selection-screen BEGIN OF SCREEN <xxx>.
<Selection Fields>
SELECTION-SCREEN END OF SCREEN <xxx>.
at SELECTION-SCREEN on radiobutton group <XXX>.
if <RadioButton 1> eq 'X'.
call SELECTION-SCREEN <xxx> STARTING AT XX XX.
endif.
I assume that, you define all dependent object correctly. The code given above is just example.
Regards,
Mahesh
‎2008 Aug 14 12:04 PM
Check below code and accordingly write your code...
----
S E L E C T I O N S C R E E N
----
SELECTION-SCREEN BEGIN OF BLOCK FILE WITH FRAME TITLE TEXT-000.
SELECTION-SCREEN : BEGIN OF LINE.
PARAMETERS: RB_APPN RADIOBUTTON GROUP RAD1 DEFAULT 'X' USER-COMMAND RAD.
SELECTION-SCREEN COMMENT 3(25) TEXT-030.
PARAMETERS: RB_PRTN RADIOBUTTON GROUP RAD1.
SELECTION-SCREEN COMMENT 32(20) TEXT-031.
SELECTION-SCREEN : END OF LINE.
PARAMETERS : P_LPATH TYPE FILEPATH-PATHINTERN MODIF ID Z1,
P_FILE TYPE RLGRAP-FILENAME OBLIGATORY.
PARAMETERS : P_SUBGRP TYPE RLGRAP-FILENAME,
P_INVEN TYPE RLGRAP-FILENAME,
P_SALES TYPE RLGRAP-FILENAME.
SELECTION-SCREEN END OF BLOCK FILE.
SELECTION-SCREEN BEGIN OF BLOCK FILE1 WITH FRAME TITLE TEXT-032.
SELECT-OPTIONS:
S_WERKS FOR T001W-WERKS OBLIGATORY DEFAULT 5210,
S_SPART FOR MARA-SPART,
S_MATNR FOR MARA-MATNR.
SELECTION-SCREEN END OF BLOCK FILE1.
----
A T S E L E C T I O N - S C R E E N O U T P U T
----
AT SELECTION-SCREEN OUTPUT.
PERFORM F_MODIFY_SCREEN.
----
A T S E L E C T I O N S C R E E N
----
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
PERFORM VALIDATE_FILE.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_SUBGRP.
IF RB_PRTN = 'X'.
PERFORM GET_LOCAL_FILE_NAME USING P_SUBGRP .
ELSEIF RB_APPN = 'X'.
MESSAGE I000 WITH
'No F4 help for files on Application Server.'(033).
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_INVEN.
IF RB_PRTN = 'X'.
PERFORM GET_LOCAL_FILE_NAME USING P_INVEN .
ELSEIF RB_APPN = 'X'.
MESSAGE I000 WITH
'No F4 help for files on Application Server.'(033).
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_SALES.
IF RB_PRTN = 'X'.
PERFORM GET_LOCAL_FILE_NAME USING P_SALES .
ELSEIF RB_APPN = 'X'.
MESSAGE I000 WITH
'No F4 help for files on Application Server.'(033).
ENDIF.
&----
*& Form F_MODIFY_SCREEN
&----
text
----
FORM F_MODIFY_SCREEN .
*-- For Output Options
IF RB_PRTN = 'X'.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'Z1' .
SCREEN-INVISIBLE = 1.
SCREEN-ACTIVE = 0.
ELSE.
SCREEN-INVISIBLE = 0.
SCREEN-ACTIVE = 1.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
ENDFORM. " F_MODIFY_SCREEN
‎2008 Aug 14 12:05 PM
FYI....
a small example..program.
REPORT demo_call_selection_screen.
SELECTION-SCREEN BEGIN OF BLOCK sel1 WITH FRAME TITLE tit1.
PARAMETERS: cityfr TYPE spfli-cityfrom,
cityto TYPE spfli-cityto.
SELECTION-SCREEN END OF BLOCK sel1.
SELECTION-SCREEN BEGIN OF SCREEN 500 AS WINDOW.
SELECTION-SCREEN INCLUDE BLOCKS sel1.
SELECTION-SCREEN BEGIN OF BLOCK sel2
WITH FRAME TITLE tit2.
PARAMETERS: airpfr TYPE spfli-airpfrom,
airpto TYPE spfli-airpto.
SELECTION-SCREEN END OF BLOCK sel2.
SELECTION-SCREEN END OF SCREEN 500.
INITIALIZATION.
tit1 = 'Cities'.
AT SELECTION-SCREEN.
CASE sy-dynnr.
WHEN '0500'.
MESSAGE w888(SABAPDOCU) WITH 'Screen 500'.
WHEN '1000'.
MESSAGE w888(SABAPDOCU) WITH 'Screen 1000'.
ENDCASE.
START-OF-SELECTION.
tit1 = 'Cities for Airports'.
tit2 = 'Airports'.
CALL SELECTION-SCREEN 500 STARTING AT 10 10.
tit1 = 'Cities again'.
CALL SELECTION-SCREEN 1000 STARTING AT 10 10.
‎2008 Aug 14 12:06 PM
Parag,
You can define second selection screen fields as
selection-screen BEGIN OF SCREEN <xxx>.
<Selection Fields>
SELECTION-SCREEN END OF SCREEN <xxx>.
at SELECTION-SCREEN on radiobutton group <XXX>.
if <RadioButton 1> eq 'X'.
call SELECTION-SCREEN <xxx> STARTING AT XX XX.
endif.
I assume that, you define all dependent object correctly. The code given above is just example.
Regards,
Mahesh
‎2008 Aug 14 12:17 PM
Try the following code..
PARAMETERS: rd_norm RADIOBUTTON GROUP rg1 USER-COMMAND view ,
rd_vend RADIOBUTTON GROUP rg1.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: zzkunnr(10) MODIF ID g1,
zzpg (3) MODIF ID g1,
zzma(2) MODIF ID g1.
SELECT-OPTIONS: zzdokar(15) NO INTERVALS
MODIF ID g1.
SELECT-OPTIONS: :zzdoknr (10) NO INTERVALS MODIF
ID g1.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-001 .
PARAMETERS: p_lifnr(10) MODIF ID g2 .
SELECT-OPTIONS:s_ebeln(10) MODIF ID g2.
SELECTION-SCREEN : END OF BLOCK b2.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF rd_vend = 'X'.
IF screen-group1 = 'G1'.
screen-input = 0.
screen-invisible = 1.
screen-active = 0.
ELSEIF screen-group1 = 'G2' .
screen-input = 1.
screen-invisible = 0.
screen-active = 1.
ENDIF.
ELSEIF rd_norm = 'X'.
IF screen-group1 = 'G1' .
screen-input = 1.
screen-invisible = 0.
screen-active = 1.
ELSEIF screen-group1 = 'G2'.
screen-input = 0.
screen-invisible = 1.
screen-active = 0.
ENDIF.
ELSE.
IF screen-group1 = 'G2'.
screen-input = 0.
screen-invisible = 1.
screen-active = 0.
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP.Note : To hide the input text, find out the name while debugging and include it in the corresponding IF conditions..
Regards,
Prem