Application Development 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: 

Selection Screen Problem(Urgent)

Former Member
0 Kudos

I have a problem with the selection screen.

I have to define a selection screen.The selection screen details are as under :

parameter1

radiobutton1

radiobutton2

parameter2(a)

when radiobutton 1 is selected the screen should look as above and when radiobutton 2 is selected the screen should look as under ;

parameter1

radiobutton1

radiobutton2

parameter2(b)

1 ACCEPTED SOLUTION

Former Member
0 Kudos

PARAMETERS:

P_VAR1 TYPE C,

R1 RADIOBUTTON GROUP G1 USER_COMMAND U1,

R2 RADIOBUTTON GROUP G1 DEFAULT 'X',

P_VAR2 TYPE I MODIFID SC1,

P_VAR3 TYPE I MODIFID SC2.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF R1 ='X'.

IF SCREEN-GROUP = 'SC1'.

SCREEN-ACTIVE = 1.

MODIFY SCREEN.

ELSEIF SCREEN-GROUP = 'SC2'.

SCREEN-ACTIVE = 0.

MODIFY SCREEN.

ENDIF.

ELSEIF R2 ='X'.

IF SCREEN-GROUP = 'SC1'.

SCREEN-ACTIVE = 0.

MODIFY SCREEN.

ELSEIF SCREEN-GROUP = 'SC2'.

SCREEN-ACTIVE = 1.

MODIFY SCREEN.

ENDIF.

ENDIF.

ENDLOOP.

Rewards if useful.

6 REPLIES 6

Former Member
0 Kudos

Hi Ankit,

U can use like when rb1 = 'x' .

LOOP AT SCREEN.

IF screen-group1 = 'GR1'.

screen-invisible = 1.

screen-input = 0.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

regards,

kavitha

Former Member
0 Kudos

Check this code.

PROGRAM demo_dynpro_check_radio .

DATA: radio1(1) TYPE c, radio2(1) TYPE c, radio3(1) TYPE c,

field1(10) TYPE c, field2(10) TYPE c, field3(10) TYPE c,

box TYPE c.

DATA: ok_code TYPE sy-ucomm,

save_ok TYPE sy-ucomm.

CALL SCREEN 100.

MODULE user_command_0100 INPUT.

save_ok = ok_code.

CLEAR ok_code.

CASE save_ok.

WHEN 'RADIO'.

IF radio1 = 'X'.

field1 = 'Selected!'.

CLEAR: field2, field3.

ELSEIF radio2 = 'X'.

field2 = 'Selected!'.

CLEAR: field1, field3.

ELSEIF radio3 = 'X'.

field3 = 'Selected!'.

CLEAR: field1, field2.

ENDIF.

WHEN 'CANCEL'.

LEAVE PROGRAM.

ENDCASE.

ENDMODULE.

Former Member
0 Kudos

PARAMETERS:

P_VAR1 TYPE C,

R1 RADIOBUTTON GROUP G1 USER_COMMAND U1,

R2 RADIOBUTTON GROUP G1 DEFAULT 'X',

P_VAR2 TYPE I MODIFID SC1,

P_VAR3 TYPE I MODIFID SC2.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF R1 ='X'.

IF SCREEN-GROUP = 'SC1'.

SCREEN-ACTIVE = 1.

MODIFY SCREEN.

ELSEIF SCREEN-GROUP = 'SC2'.

SCREEN-ACTIVE = 0.

MODIFY SCREEN.

ENDIF.

ELSEIF R2 ='X'.

IF SCREEN-GROUP = 'SC1'.

SCREEN-ACTIVE = 0.

MODIFY SCREEN.

ELSEIF SCREEN-GROUP = 'SC2'.

SCREEN-ACTIVE = 1.

MODIFY SCREEN.

ENDIF.

ENDIF.

ENDLOOP.

Rewards if useful.

mahaboob_pathan
Contributor
0 Kudos

Hi,

go through this code,

&----


*& Report ZKHAN_ASG3 *

*& *

&----


REPORT ZKHAN_ASG3 NO STANDARD PAGE HEADING.

TABLES: EKKO,MARA,MARC,MARD.

DATA: BEGIN OF IT_MARA OCCURS 0,

MATNR LIKE MARA-MATNR,

MAKTX LIKE MAKT-MAKTX,

ERSDA LIKE MARA-ERSDA,

WERKS LIKE MARC-WERKS,

LGORT LIKE MARD-LGORT,

END OF IT_MARA.

DATA: BEGIN OF IT_EKKO OCCURS 0,

EBELN LIKE EKKO-EBELN,

LIFNR LIKE EKKO-LIFNR,

MATNR LIKE EKPO-MATNR,

MENGE LIKE EKPO-MENGE,

NETWR LIKE EKPO-NETWR,

END OF IT_EKKO.

DATA: BEGIN OF IT_MAK OCCURS 0,

MATNR LIKE MAKT-MATNR,

MAKTX LIKE MAKT-MAKTX,

SPRAS LIKE MAKT-SPRAS,

END OF IT_MAK.

PARAMETERS: P_RB1 RADIOBUTTON GROUP RAD1 USER-COMMAND KHAN,

P_RB2 RADIOBUTTON GROUP RAD1.

SELECT-OPTIONS: S_EBELN FOR EKKO-EBELN,

S_BUKRS FOR EKKO-BUKRS,

S_AEDAT FOR EKKO-AEDAT.

SELECT-OPTIONS: S_MATNR FOR MARA-MATNR,

S_ERSDA FOR MARA-ERSDA,

S_WERKS FOR MARC-WERKS.

INITIALIZATION.

P_RB1 = 'X'.

AT SELECTION-SCREEN OUTPUT.

IF P_RB1 EQ 'X'.

LOOP AT SCREEN.

IF SCREEN-GROUP4 = '005'.

SCREEN-INPUT = '0'.

SCREEN-INVISIBLE = '1'.

MODIFY SCREEN.

ENDIF.

IF SCREEN-GROUP4 = '006'.

SCREEN-INPUT = '0'.

SCREEN-INVISIBLE = '1'.

MODIFY SCREEN.

ENDIF.

IF SCREEN-GROUP4 = '007'.

SCREEN-INPUT = '0'.

SCREEN-INVISIBLE = '1'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

IF P_RB2 EQ 'X'.

LOOP AT SCREEN.

IF SCREEN-GROUP4 = '002'.

SCREEN-INPUT = '0'.

SCREEN-INVISIBLE = '1'.

MODIFY SCREEN.

ENDIF.

IF SCREEN-GROUP4 = '003'.

SCREEN-INPUT = '0'.

SCREEN-INVISIBLE = '1'.

MODIFY SCREEN.

ENDIF.

IF SCREEN-GROUP4 = '004'.

SCREEN-INPUT = '0'.

SCREEN-INVISIBLE = '1'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

START-OF-SELECTION.

IF P_RB1 = 'X'.

PERFORM EKKORB1.

ENDIF.

IF P_RB2 = 'X'.

PERFORM MARARB2.

ENDIF.

END-OF-SELECTION.

IF P_RB1 = 'X'.

PERFORM ESRB1.

ENDIF.

IF P_RB2 = 'X'.

PERFORM ESRB2.

ENDIF.

TOP-OF-PAGE.

IF P_RB1 = 'X'.

PERFORM TPRB1.

ENDIF.

IF P_RB2 = 'X'.

PERFORM TPRB2.

ENDIF.

END-OF-PAGE.

IF P_RB1 = 'X'.

ULINE AT 0(90).

WRITE:/ 'END OF PAGE....',SY-PAGNO.

ENDIF.

IF P_RB2 = 'X'.

ULINE AT 0(100).

WRITE:/ 'END OF PAGE....',SY-PAGNO.

ENDIF.

&----


*& Form EKKORB1(PURCHASE DOCUMENT DATA RETRIVING)

&----


FORM EKKORB1 .

SELECT EKKO~EBELN

EKKO~LIFNR

EKKO~BUKRS

EKKO~AEDAT

EKPO~MATNR

EKPO~MENGE

EKPO~NETWR

INTO CORRESPONDING FIELDS OF TABLE IT_EKKO FROM

EKKO INNER JOIN EKPO

ON EKKOEBELN = EKPOEBELN

WHERE EKKO~EBELN IN S_EBELN AND

EKKO~BUKRS IN S_BUKRS AND

EKKO~AEDAT IN S_AEDAT.

*IF NOT IT_EKKO[] IS INITIAL.

  • SORT BY IT_EKKO-EBELN.

  • DELETE ADJACENT DUPLICATES FROM IT_EKKO[].

*ENDIF.

ENDFORM. "EKKORB1

&----


*& Form MARARB2 (MATERIAL DOCUMENT DATA RETRIVING)

&----


FORM MARARB2 .

SELECT MARA~MATNR

MARA~ERSDA

MARC~WERKS

MARD~LGORT

INTO CORRESPONDING FIELDS OF TABLE IT_MARA

FROM ( ( MARA INNER JOIN MARC ON MARAMATNR = MARCMATNR )

INNER JOIN MARD ON MARAMATNR = MARDMATNR )

WHERE MARA~MATNR IN S_MATNR AND

MARA~ERSDA IN S_ERSDA AND

MARC~WERKS IN S_WERKS.

IF NOT IT_MARA[] IS INITIAL.

SORT IT_MARA.

SELECT MATNR

MAKTX

INTO CORRESPONDING FIELDS OF TABLE IT_MAK

FROM MAKT

FOR ALL ENTRIES IN IT_MARA

WHERE MATNR = IT_MARA-MATNR AND

SPRAS = SY-LANGU.

ENDIF.

DELETE ADJACENT DUPLICATES FROM IT_MARA[].

SORT IT_MAK.

ENDFORM. " MARARB2

&----


*& Form ESRB1 (PURCHASE HEADER DETAILS)

&----


FORM ESRB1 .

LOOP AT IT_EKKO.

FORMAT COLOR 4.

WRITE:/ SY-VLINE,

IT_EKKO-EBELN, 19 SY-VLINE,

IT_EKKO-LIFNR, 33 SY-VLINE,

IT_EKKO-MATNR, 52 SY-VLINE,

IT_EKKO-MENGE, 69 SY-VLINE,

IT_EKKO-NETWR, 90 SY-VLINE.

ULINE AT 0(90).

ENDLOOP.

ENDFORM. " ESRB1

&----


*& Form ESRB2

&----


FORM ESRB2 .

LOOP AT IT_MARA.

READ TABLE IT_MAK WITH KEY MATNR = IT_MARA-MATNR BINARY SEARCH.

FORMAT COLOR 6 INTENSIFIED ON INVERSE ON.

IF SY-SUBRC = 0.

WRITE:/ SY-VLINE,

IT_MARA-MATNR, 20 SY-VLINE,

IT_MAK-MAKTX, 64 SY-VLINE,

IT_MARA-ERSDA, 76 SY-VLINE,

IT_MARA-WERKS, 84 SY-VLINE,

IT_MARA-LGORT, 100 SY-VLINE.

ULINE AT 0(100).

ENDIF.

ENDLOOP.

ENDFORM. " ESRB2

&----


*& Form TPRB1

&----


FORM TPRB1 .

LOOP AT IT_EKKO.

AT FIRST.

FORMAT COLOR 7.

ULINE AT 0(90).

WRITE:/ SY-VLINE,

'PURCHASE-DOC-NO',19 SY-VLINE,

'VENDOR-NO', 33 SY-VLINE,

'MATERIAL-NO', 52 SY-VLINE,

'QUANTITY', 69 SY-VLINE,

'AMOUNT', 90 SY-VLINE.

ULINE AT 0(90).

ENDAT.

ENDLOOP.

ENDFORM. " TPRB1

&----


*& Form TPRB2

&----


FORM TPRB2 .

LOOP AT IT_MARA.

AT FIRST.

FORMAT COLOR 2.

ULINE AT 0(100).

WRITE:/ SY-VLINE,

'MATERIAL-NO', 20 SY-VLINE,

'MATERIAL-DESC', 64 SY-VLINE,

'D-O-C', 76 SY-VLINE,

'PLANT', 84 SY-VLINE,

'STORAGE-LOC', 100 SY-VLINE.

ULINE AT 0(100).

ENDAT.

ENDLOOP.

ENDFORM. " TPRB2

Former Member
0 Kudos

HI

execute this code and see the result after changing the radiobutton press enter button to apply changes

REPORT ZNNR_EDIT .

*******DATA DECLARATIONS***********
DATA : BEGIN OF IT_PLANT OCCURS 0,
        MATNR LIKE MARA-MATNR,
        WERKS LIKE MARC-WERKS,
        PSTAT LIKE MARC-PSTAT,
        EKGRP LIKE MARC-EKGRP,
       END OF IT_PLANT.

DATA : BEGIN OF IT_PONO OCCURS 0,
        EBELN LIKE EKKO-EBELN,
        EBELP LIKE EKPO-EBELP,
        MATNR LIKE EKPO-MATNR,
        WERKS LIKE EKPO-WERKS,
        LGORT LIKE EKPO-LGORT,
       END OF IT_PONO.

TABLES EKKO.
*********END OF DATA DECLARATIONS**********

********SELECTION SCREEN DESIGN ***********

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

PARAMETER : P_WERKS LIKE MARC-WERKS MODIF ID S1.

SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : R1 RADIOBUTTON GROUP G1 DEFAULT 'X'.
SELECTION-SCREEN COMMENT 5(20) TEXT-002 FOR FIELD R1.
SELECTION-SCREEN END OF LINE.


SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : R2 RADIOBUTTON GROUP G1.
SELECTION-SCREEN COMMENT 5(20) TEXT-003 FOR FIELD R2.
SELECTION-SCREEN END OF LINE.

PARAMETER : P_WERKS1 LIKE MARC-WERKS MODIF ID S2.
PARAMETER : P_WERKS2 LIKE MARC-WERKS MODIF ID S3.



SELECTION-SCREEN END OF BLOCK B1.


*******END OF SELECTION SCREEN DESIGN*****************


************SCREEN MODIFICATIONS********************

AT SELECTION-SCREEN OUTPUT.

  LOOP AT SCREEN.

    IF R1 EQ 'X' AND SCREEN-GROUP1 EQ 'S3'.
      SCREEN-INPUT = 0.
      MODIFY SCREEN.
    ENDIF.

    IF R2 EQ 'X' AND SCREEN-GROUP1 EQ 'S2'.
      SCREEN-INPUT = 0.
      MODIFY SCREEN.
    ENDIF.

  ENDLOOP.



*********END OF SCREEN MODIFICATIONS******************

<b>Reward if usefull</b>

Former Member
0 Kudos

Hi Ankit,

Try the below code.

TABLES: mara.

selection-screen begin of block b3 with frame TITLE text-003.

parameters: rb1 radiobutton group grp1 DEFAULT 'X' user-command

rusr.

parameters: rb2 radiobutton group grp1.

select-options: s_matnr for mara-matnr,

s_matkl for mara-matkl.

selection-SCREEN end of block b3.

AT SELECTION-SCREEN output.

LOOP AT SCREEN.

IF rb1 = 'X'.

IF SCREEN-NAME = 'S_MATKL-LOW' or SCREEN-NAME ='S_MATKL-HIGH'.

SCREEN-INPUT = 0.

ELSE.

SCREEN-INPUT = 1.

ENDIF.

MODIFY SCREEN.

elseif rb2 = 'X'.

IF SCREEN-NAME = 'S_MATNR-LOW' or SCREEN-NAME ='S_MATNR-HIGH'.

SCREEN-INPUT = 0.

ELSE.

SCREEN-INPUT = 1.

ENDIF.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

Hope it helps.

Reward if useful.

Regards

Sayee