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

Dynamic selection screen

Former Member
0 Likes
1,029

Dear all,

i have created one driver program through se38.

means 1000 screen is created.

i have given some radio buttons on this screen.

now my requirement is when i choose one radio button then another selection screen is come out on this screen.

means all selection screen come out in one screen.

plz help me

thanx in advance

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
973

Hi,

try like this..


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

PARAMETERS: direct RADIOBUTTON GROUP g1 DEFAULT 'X' USER-COMMAND flag1,
            miro RADIOBUTTON GROUP g1.
SELECTION-SCREEN END OF BLOCK b3.



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

PARAMETERS : pa_belnr TYPE bseg-belnr MODIF ID a1,
             pa_gjahr TYPE bsis-gjahr MODIF ID a1,
             pa_bukrs TYPE bsis-bukrs MODIF ID a1,
             pa_gsber TYPE bseg-gsber MODIF ID a1.

SELECTION-SCREEN : END OF BLOCK b1.

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

PARAMETERS : pb_belnr TYPE bseg-belnr  MODIF ID b1 ,
             pb_gjahr TYPE bsis-gjahr MODIF ID b1,
             pb_bukrs TYPE bsis-bukrs MODIF ID b1,
             pb_gsber TYPE bseg-gsber MODIF ID b1.

SELECTION-SCREEN : END OF BLOCK b2.


AT SELECTION-SCREEN OUTPUT.
  IF direct = 'X'.
    miro = ' '.
    LOOP AT SCREEN.
      IF screen-group1 =  'B1'.
        screen-active = '0'.
      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.

    FREE : pb_belnr,pb_gjahr,pb_bukrs,pb_gsber.
  ELSE.
    direct = ' '.
    LOOP AT SCREEN.
      IF screen-group1 =  'A1'.
        screen-active = '0'.
      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.

    FREE :pa_belnr,pa_gjahr,pa_bukrs,pa_gsber.
  ENDIF.

Arunima

9 REPLIES 9
Read only

Former Member
0 Likes
973

Hi,

Try using Subscreen and call the same behind the Radio Button on which you want it.

Read only

Former Member
0 Likes
974

Hi,

try like this..


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

PARAMETERS: direct RADIOBUTTON GROUP g1 DEFAULT 'X' USER-COMMAND flag1,
            miro RADIOBUTTON GROUP g1.
SELECTION-SCREEN END OF BLOCK b3.



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

PARAMETERS : pa_belnr TYPE bseg-belnr MODIF ID a1,
             pa_gjahr TYPE bsis-gjahr MODIF ID a1,
             pa_bukrs TYPE bsis-bukrs MODIF ID a1,
             pa_gsber TYPE bseg-gsber MODIF ID a1.

SELECTION-SCREEN : END OF BLOCK b1.

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

PARAMETERS : pb_belnr TYPE bseg-belnr  MODIF ID b1 ,
             pb_gjahr TYPE bsis-gjahr MODIF ID b1,
             pb_bukrs TYPE bsis-bukrs MODIF ID b1,
             pb_gsber TYPE bseg-gsber MODIF ID b1.

SELECTION-SCREEN : END OF BLOCK b2.


AT SELECTION-SCREEN OUTPUT.
  IF direct = 'X'.
    miro = ' '.
    LOOP AT SCREEN.
      IF screen-group1 =  'B1'.
        screen-active = '0'.
      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.

    FREE : pb_belnr,pb_gjahr,pb_bukrs,pb_gsber.
  ELSE.
    direct = ' '.
    LOOP AT SCREEN.
      IF screen-group1 =  'A1'.
        screen-active = '0'.
      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.

    FREE :pa_belnr,pa_gjahr,pa_bukrs,pa_gsber.
  ENDIF.

Arunima

Read only

0 Likes
973

Hello Arunima,

Thanx for ur quick response.

One problem is suppose i want to create one extra radio button on ur screen with micro and direct.

now when we execute the program. b1 & B2 Subscreen is hided.

it will be come out when i click on Default or Mocro button.

means i want the subscreen on my choice of radio button..............because after execution by default is with another button

Read only

0 Likes
973

Hi,

if you want to add another radio button then add extra some code like previous with modif id 'C1'...and the time of "selection screen output"...you just use....


 LOOP AT SCREEN.
      IF screen-group1 =  'C1'.
        screen-active = '0'.
      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.

Arunima

Read only

0 Likes
973

Thanx a lot arunima.

solved

Read only

Former Member
0 Likes
973

Hi,

Use Loop at Screen in At selection screen output.

Regards.

Read only

Former Member
0 Likes
973

*---SEL SCREEN 1000
PARAMETER: X TYPE C RADIOBUTTON GROUP R1 USER-COMMAND ABC,
           A TYPE C RADIOBUTTON GROUP R1,
           B TYPE C RADIOBUTTON GROUP R1.

*---SEL SCREEN 900
SELECTION-SCREEN BEGIN OF SCREEN 900.
  PARAMETER: C(10) TYPE C DEFAULT 'AMIT'.
SELECTION-SCREEN END OF SCREEN 900.

SELECTION-SCREEN BEGIN OF SCREEN 800.
  PARAMETER: D(10) TYPE C DEFAULT 'GUPTA'.
SELECTION-SCREEN END OF SCREEN 800.

AT SELECTION-SCREEN OUTPUT.
  CLEAR: A, B.

AT SELECTION-SCREEN.
  IF A = 'X'.
    CALL SELECTION-SCREEN 900.
  ELSEIF B = 'X'.
    CALL SELECTION-SCREEN 800.
  ENDIF.
Read only

Former Member
0 Likes
973

PARAMETERS : R1 RADIOBUTTON GROUP G1 DEFAULT 'X' USER-COMMAND AA.

SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETERS: P_ITEM LIKE EKPO-PSTYP MODIF ID AA.

SELECT-OPTIONS: S_BUKRS FOR RKWA-BUKRS MODIF ID AA,

S_LIFNR FOR RKWA-LIFNR MODIF ID AA,

S_WERKS FOR RKWA-BUKRS MODIF ID AA,

S_MATNR FOR RKWA-MATNR MODIF ID AA,

S_EKORG FOR EKKO-EKORG MODIF ID AA,

S_EKGRP FOR EKKO-EKGRP MODIF ID AA,

S_MBLNR FOR RKWA-MBLNR MODIF ID AA,

S_BLDAT FOR RKWA-BLDAT MODIF ID AA,

S_BUDAT FOR RKWA-BUDAT MODIF ID AA.

SELECTION-SCREEN: END OF BLOCK B1 .

SELECTION-SCREEN SKIP.

PARAMETERS : R2 RADIOBUTTON GROUP G1.

SELECTION-SCREEN: BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-001.

PARAMETERS: P_ITEM1 LIKE EKPO-PSTYP MODIF ID CC.

SELECT-OPTIONS:S_LIFNR1 FOR RKWA-LIFNR MODIF ID CC,

S_WERKS1 FOR RKWA-BUKRS MODIF ID CC,

S_MATNR1 FOR RKWA-MATNR MODIF ID CC,

S_BLDAT1 FOR RKWA-BLDAT MODIF ID CC,

S_EKORG1 FOR EKKO-EKORG MODIF ID CC.

SELECTION-SCREEN: END OF BLOCK B2 .

AT SELECTION-SCREEN OUTPUT.

IF R1 = 'X'.

LOOP AT SCREEN.

IF SCREEN-GROUP1 = 'AA'.

SCREEN-INPUT = '1'.

MODIFY SCREEN.

ENDIF.

IF SCREEN-GROUP1 = 'CC'.

SCREEN-INPUT = '0'.

SCREEN-INVISIBLE = '1'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ELSEIF R2 = 'X'.

LOOP AT SCREEN.

IF SCREEN-GROUP1 = 'AA'.

SCREEN-INPUT = '0'.

SCREEN-INVISIBLE = '1'.

MODIFY SCREEN.

ENDIF.

IF SCREEN-GROUP1 = 'CC'.

SCREEN-INPUT = '1'.

SCREEN-INVISIBLE = '0'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

You please try this example for your requirement.

Regards,

Joan

Read only

Former Member
0 Likes
973

Hi,

Check the following code:

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

PARAMETERS : rd1 RADIOBUTTON GROUP rg1 user-command abc,

rd2 RADIOBUTTON GROUP rg1 DEFAULT 'X'.

SELECTION-SCREEN END OF BLOCK b1.

skip 1.

SELECTION-SCREEN: BEGIN OF SCREEN 0500 as window.

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

PARAMETERS: name(5) TYPE c,

date TYPE d.

SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN: END OF SCREEN 0500.

SELECTION-SCREEN BEGIN OF SCREEN 600.

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

PARAMETERS: ebeln(5) TYPE c,

drdat TYPE d.

SELECTION-SCREEN END OF BLOCK b3.

SELECTION-SCREEN END OF SCREEN 600.

INITIALIZATION.

drdat = sy-datum.

at selection-screen.

IF rd1 = 'X'.

CALL SELECTION-SCREEN 500 STARTING AT 10 10

ENDING AT 100 20.

ENDIF.

IF rd2 = 'X'.

CALL SELECTION-SCREEN 600 STARTING AT 10 10

ENDING AT 100 20.

ENDIF.

Regards,

Bhaskar