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 related problem

Former Member
0 Likes
624

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

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
582

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

4 REPLIES 4
Read only

Former Member
0 Likes
582

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

Read only

Former Member
0 Likes
582

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.

Read only

Former Member
0 Likes
583

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

Read only

Former Member
0 Likes
582

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