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

Former Member
0 Likes
1,328

I am using select-options to get input.But it should be displayed only when i select some checkbox.Initially that select-options shud be disabled.

Give me a simple example to proceed.

14 REPLIES 14
Read only

Former Member
0 Likes
1,181

HI,

Use loop at Screen.

if <check box > = 'X'.

screen-input = '1'.

U can get other options from table screen

Revert back if any issues.

Hope it helps u.

Read only

Former Member
0 Likes
1,181

REPORT zco41 .

TYPE-POOLS:slis.

TABLES:caufvd,

ioheader.

DATA: bdcdata TYPE bdcdata OCCURS 0 WITH HEADER LINE.

DATA:decide_scr(3) VALUE 0,

decide_scr1(3) VALUE 0.

DATA:gs_layout TYPE slis_layout_alv .

DATA: ls_line TYPE slis_listheader.

DATA:gt_list_top_of_page TYPE slis_t_listheader.

DATA:wa_fieldcat TYPE slis_fieldcat_alv.

DATA:fieldcat TYPE slis_t_fieldcat_alv.

DATA:i_layout TYPE slis_layout_alv.

DATA:BEGIN OF it_plaf OCCURS 0,

matnr TYPE plmat,

plnum TYPE plnum,

auffx type plafx,

pedtr type pedtr,

gsmng type p decimals 0 ,

tlmng type p decimals 0,

chk,

ws_color(4),

END OF it_plaf.

DATA: ref_grid TYPE REF TO cl_gui_alv_grid.

DATA:it_plafc LIKE STANDARD TABLE OF it_plaf WITH HEADER LINE.

DATA: opt TYPE ctu_params.

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

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT (15) FOR FIELD p_plant .

SELECTION-SCREEN POSITION 31 .

PARAMETERS : p_plant LIKE caufvd-werks default '3110'.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT (30) FOR FIELD s_matnr.

SELECTION-SCREEN POSITION 28 .

SELECT-OPTIONS: s_matnr FOR caufvd-matnr MODIF ID p2.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT (30) FOR FIELD p_all.

SELECTION-SCREEN POSITION 31 .

PARAMETERS: p_all RADIOBUTTON GROUP g USER-COMMAND usr DEFAULT 'X'.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT (30) FOR FIELD p_par.

SELECTION-SCREEN POSITION 31 .

PARAMETERS: p_par RADIOBUTTON GROUP g .

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK b1 .

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

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT (30) FOR FIELD s_pono.

SELECTION-SCREEN POSITION 28 .

SELECT-OPTIONS: s_pono FOR ioheader-aufnr .

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT (30) FOR FIELD p_clr.

SELECTION-SCREEN POSITION 32 .

PARAMETERS: p_clr AS CHECKBOX USER-COMMAND usr DEFAULT ' '.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK b2.

INITIALIZATION.

p_clr = ' '.

LOOP AT SCREEN.

IF screen-group1 = 'P2' AND p_all = 'X'.

screen-active = '0'.

MODIFY SCREEN.

ENDIF.

IF screen-group1 = 'P2' AND p_all = ' '.

screen-active = '1'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

  • SET PF-STATUS 'ZSTANDARD'.

IMPORT decide_scr TO decide_scr1 FROM DATABASE indx(st) ID 'ZMY_VALUE'.

CONDENSE decide_scr1.

LOOP AT SCREEN.

IF decide_scr1 EQ 1.

IF screen-name EQ 'S_MATNR-LOW'

OR screen-name EQ 'S_MATNR-HIGH'

OR screen-name EQ '%_S_MATNR_%_APP_%-TO_TEXT'

OR screen-name EQ '%_S_MATNR_%_APP_%-OPTI_PUSH'

OR screen-name EQ '%BS02016_BLOCK_1000'

OR screen-name EQ '%F%_S018_1000'

OR screen-name EQ '%_P_PLANT_%_APP_%-OPTI_PUSH'

OR screen-name EQ 'P_PLANT-HIGH'

OR screen-name EQ '%_P_PLANT_%_APP_%-TO_TEXT'

OR screen-name EQ 'P_PLANT-LOW'

OR screen-name EQ '%_P_PLANT_%_APP_%-VALU_PUSH'

OR screen-name EQ '%_S_MATNR_%_APP_%-VALU_PUSH'

OR screen-name EQ '%F%_S004_1000'

OR screen-name EQ '%F%_S011_1000'

OR screen-name EQ '%F%_S025_1000'

OR screen-name EQ 'P_PAR'

OR screen-name EQ 'P_ALL'

OR screen-name EQ 'P_PLANT'

OR screen-name EQ '%BS02030_BLOCK_1000'.

screen-active = '0'. " Invisible.

MODIFY SCREEN.

ENDIF.

IF screen-name EQ 'S_PONO-LOW'

OR screen-name EQ 'S_PONO-HIGH'

OR screen-name EQ '%_S_PONO_%_APP_%-TO_TEXT'

OR screen-name EQ '%_S_PONO_%_APP_%-OPTI_PUSH'

OR screen-name EQ '%BS01000_BLOCK_1000'

OR screen-name EQ '%F%_S032_1000'

OR screen-name EQ '%_S_PONO_%_APP_%-VALU_PUSH'

OR screen-name EQ '%_17SNS0000063820_%_%_%_%_%_%_'

OR screen-name EQ '%BS02030_BLOCK_1000'

OR screen-name EQ 'P_CLR'.

screen-active = '1'. " Invisible.

MODIFY SCREEN.

ENDIF.

ENDIF.

IF decide_scr1 NE 1.

IF screen-name EQ 'S_MATNR-LOW'

OR screen-name EQ 'S_MATNR-HIGH'

OR screen-name EQ '%_S_MATNR_%_APP_%-TO_TEXT'

OR screen-name EQ '%_S_MATNR_%_APP_%-OPTI_PUSH'

OR screen-name EQ '%BS02016_BLOCK_1000'

OR screen-name EQ '%F%_S018_1000'

OR screen-name EQ '%_P_PLANT_%_APP_%-OPTI_PUSH'

OR screen-name EQ 'P_PLANT-HIGH'

OR screen-name EQ '%_P_PLANT_%_APP_%-TO_TEXT'

OR screen-name EQ 'P_PLANT-LOW'

OR screen-name EQ '%_P_PLANT_%_APP_%-VALU_PUSH'

OR screen-name EQ '%_S_MATNR_%_APP_%-VALU_PUSH'

OR screen-name EQ '%F%_S004_1000'

OR screen-name EQ '%F%_S011_1000'

OR screen-name EQ '%F%_S025_1000'

OR screen-name EQ 'P_PAR'

OR screen-name EQ 'P_ALL'

OR screen-name EQ 'P_PLANT'

OR screen-name EQ '%BS02030_BLOCK_1000'.

screen-active = '1'. " Invisible.

MODIFY SCREEN.

ENDIF.

IF screen-name EQ 'S_PONO-LOW'

OR screen-name EQ 'S_PONO-HIGH'

OR screen-name EQ '%_S_PONO_%_APP_%-TO_TEXT'

OR screen-name EQ '%_S_PONO_%_APP_%-OPTI_PUSH'

OR screen-name EQ '%BS02016_BLOCK_1000'

OR screen-name EQ '%F%_S032_1000'

OR screen-name EQ '%_S_PONO_%_APP_%-VALU_PUSH'

OR screen-name EQ '%_17SNS0000063820_%_%_%_%_%_%_'

OR screen-name EQ '%BS02030_BLOCK_1000'

OR screen-name EQ 'P_CLR'.

screen-active = '0'. " Invisible.

MODIFY SCREEN.

ENDIF.

ENDIF.

ENDLOOP.

AT SELECTION-SCREEN OUTPUT.

IF p_clr EQ 'X'.

decide_scr = 0.

EXPORT decide_scr TO DATABASE indx(st) ID 'ZMY_VALUE'.

p_clr = ' '.

ENDIF.

IMPORT decide_scr TO decide_scr1 FROM DATABASE indx(st) ID 'ZMY_VALUE'.

CONDENSE decide_scr1.

LOOP AT SCREEN.

IF decide_scr1 EQ 1.

IF screen-name EQ 'S_MATNR-LOW'

OR screen-name EQ 'S_MATNR-HIGH'

OR screen-name EQ '%_S_MATNR_%_APP_%-TO_TEXT'

OR screen-name EQ '%_S_MATNR_%_APP_%-OPTI_PUSH'

OR screen-name EQ '%BS02016_BLOCK_1000'

OR screen-name EQ '%F%_S018_1000'

OR screen-name EQ '%_P_PLANT_%_APP_%-OPTI_PUSH'

OR screen-name EQ 'P_PLANT-HIGH'

OR screen-name EQ '%_P_PLANT_%_APP_%-TO_TEXT'

OR screen-name EQ 'P_PLANT-LOW'

OR screen-name EQ '%_P_PLANT_%_APP_%-VALU_PUSH'

OR screen-name EQ '%_S_MATNR_%_APP_%-VALU_PUSH'

OR screen-name EQ '%F%_S004_1000'

OR screen-name EQ '%F%_S011_1000'

OR screen-name EQ '%F%_S025_1000'

OR screen-name EQ 'P_PAR'

OR screen-name EQ 'P_ALL'

OR screen-name EQ 'P_PLANT'

OR screen-name EQ '%BS02030_BLOCK_1000'.

screen-active = '0'. " Invisible.

MODIFY SCREEN.

ENDIF.

Read only

Former Member
0 Likes
1,181

hi use this code

SELECT-OPTIONS : VBELN1 for VBAK-vbeln MODIF ID mo1,

EBELN1 for EKKO-EBELN modif id mo2.

PARAMETERS : RED1 RADIOBUTTON GROUP one USER-COMMAND radio,

RED2 radiobutton GROUP one.

AT SELECTION-SCREEN output.

loop AT SCREEN.

if screen-group1 = 'MO1'.

SCREEN-Active = 0.

ENDIF.

if RED2 = 'X'.

if screen-group1 = 'MO1'.

SCREEN-Active = 0.

elseif screen-group1 = 'MO2'.

SCREEN-Active = 1.

endif.

endif.

if RED1 = 'X'.

if screen-group1 = 'MO1'.

SCREEN-Active = 1.

elseif screen-group1 = 'MO2'.

SCREEN-Active = 0.

endif.

endif.

MODIFY SCREEN.

endloop.

Rewards points if helpful

Regards

amit

Read only

Former Member
0 Likes
1,181

Hi

  select-options:
           P_S2(10) TYPE C MODIF ID S2.
at selection-screen output.
    LOOP AT SCREEN.
      IF SCREEN-GROUP1 = 'S2'.
        SCREEN-INPUT = '1'.
        SCREEN-INVISIBLE = '0'.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.

Read only

Former Member
0 Likes
1,181

Hi,

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF cb_mat = 'X'.

IF screen-group1 = 'ID2'.

screen-input = 0.

ENDIF.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

Hope this helps you.

Read only

Former Member
0 Likes
1,181

Hi,

Go through the below code your problem will be solved.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME .
SELECT-OPTIONS:
  s_erdat   FOR vbak-erdat.            " Created date
PARAMETERS:
  p_sales RADIOBUTTON GROUP rad1 USER-COMMAND cli," DEFAULT 'X',
  p_purch RADIOBUTTON GROUP rad1,
  p_pplan RADIOBUTTON GROUP rad1.
PARAMETER: p_lowest AS CHECKBOX.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME .
*PARAMETERS:
* p_plland LIKE vbpa-land1,            " Ship From
* p_shland LIKE vbpa-land1,            " Ship to
* p_stland LIKE vbpa-land1 MODIF ID 001. " Sold To
SELECT-OPTIONS: s_pland1 FOR vbpa-land1, "ship from
                s_pshlan FOR vbpa-land1, "ship to
                s_stland FOR vbpa-land1 MODIF ID 001.
" Sold to
SELECT-OPTIONS:
   s_vkorg   FOR vbak-vkorg MODIF ID 001,
                                       " Sales Organization.
   s_ekorg   FOR ekko-ekorg MODIF ID 002,
                                       " Purchase Organisation
   s_cust   FOR vbak-kunnr MODIF ID 001,
   s_vend   FOR lfa1-lifnr MODIF ID 002,
   s_matnr  FOR mara-matnr,
   s_werks  FOR marc-werks.

SELECTION-SCREEN END OF BLOCK b3.
SELECTION-SCREEN END OF BLOCK b1.

IF w_flag = ' '.
    p_sales = 'X'.
    p_purch = ' '.
    p_pplan  = ' '.
    LOOP AT SCREEN.
      IF screen-group1 = '001'.
        screen-active  = 1.
        MODIFY SCREEN.
      ELSEIF screen-group1 = '002'.
        screen-active = 0.
        MODIFY SCREEN.
      ENDIF.                           " IF screen-group1 = '001'.
    ENDLOOP.                           " LOOP AT SCREEN.
  ELSEIF w_flag = 'X'.
    p_sales = ' '.
    p_purch = 'X'.
    p_pplan  = ' '.
    LOOP AT SCREEN.
      IF screen-group1 = '002'.
        screen-active  = 1.
        MODIFY SCREEN.
      ELSEIF screen-group1 = '001'.
        screen-active  = 0.
        MODIFY SCREEN.
      ENDIF.                           " IF screen-group1 = '002'.
    ENDLOOP.                           " LOOP AT SCREEN.
  ELSE.
    p_sales = ' '.
    p_purch = ' '.
    p_pplan  = 'X'.
    LOOP AT SCREEN.
      screen-active  = 1.
      MODIFY SCREEN.
    ENDLOOP.                           " LOOP AT SCREEN.
  ENDIF.                               " IF w_flag1 = 0.

Reward some points.

Regards,

Anomitro

Read only

Former Member
0 Likes
1,181

hi!

Try by using AT selection-screen output.

at selection-screen output.

loop at screen.

if checkbox1 = 'X'

if screen-name = 'xxxx'

screen-active = 0.

endif.

endif.

endloop.

crate modif id for all the parameters u have used as an input and implement these names in screen-name.

Reward me if useful.

Regards,

Nagulan

Read only

Former Member
0 Likes
1,181

hi,

Please copy and paste following code.

REPORT xyz.

TABLES: mara.

SELECT-OPTIONS: s_matnr FOR mara-matnr.

PARAMETERS: p_check AS CHECKBOX USER-COMMAND cmd.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF screen-name = 'S_MATNR-LOW' OR

screen-name = 'S_MATNR-HIGH'.

IF NOT p_check IS INITIAL.

screen-input = 1.

MODIFY SCREEN.

ELSE.

screen-input = 0.

MODIFY SCREEN.

ENDIF.

ENDIF.

ENDLOOP.

Regards,

Yellappa.

Read only

sachin_mathapati
Contributor
0 Likes
1,181

Hi ,

Try this.

Use at USER Command when declaring the Check box.

PARAMETERS :

pa_veh AS CHECKBOX USER-COMMAND cmd1.

pa_npveh AS CHECKBOX .

AT SELECTION-SCREEN OUTPUT.

If pa_veh NE 'X'.

LOOP AT SCREEN.

IF screen-name = 'PA_NPVEH'.

screen-Active = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

eNDIF.

Regards,

Sachin M M

Edited by: Sachin Mathapati on Jun 18, 2008 2:57 PM

Read only

Former Member
0 Likes
1,181

check this report click the check box and press enter

report .

parameters: p_c as checkbox .

parameters:p_test type i .

at selection-screen output .

loop at screen.

if p_c = 'X'.

if screen-name = 'P_TEST'.

screen-active = 0.

modify screen.

endif.

if screen-name = '%_P_TEST_%_APP_%-TEXT'.

screen-active = 0.

modify screen.

endif.

endif.

endloop.

Read only

Former Member
0 Likes
1,181

hiii

you can do it by using following code

AT SELECTION-SCREEN OUTPUT .

  IF p_rad2 IS INITIAL .
    LOOP AT SCREEN.
      IF screen-name CS 'p_docno'.
        screen-active = 0.
        MODIFY SCREEN.
      ENDIF.                           " IF screen-name CS 'p_docno'.
    ENDLOOP.                           " LOOP AT SCREEN.

  ELSE.
    LOOP AT SCREEN .
      IF screen-name CS 'p_docno'.
        screen-active = 1.
        screen-input = 1.
        MODIFY SCREEN.
      ENDIF.                           " IF screen-name CS 'p_docno'.
    ENDLOOP.                           " LOOP AT SCREEN .

ENDIF. " IF p_rad2 IS INITIA

reward if useful

thx

twinkal

Read only

Former Member
0 Likes
1,181

Hi,

Go through the following code. This ,meets your requirement.

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

PARAMETERS :

PPRES as CHECKBOX USER-COMMAND UC,

PAPPS as CHECKBOX USER-COMMAND UC.

SELECTION-SCREEN : END OF BLOCK B1.

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

PARAMETERS : SFPATH LIKE RLGRAP-FILENAME MODIF ID SG1,

SFAPATH LIKE RLGRAP-FILENAME MODIF ID SG2.

SELECTION-SCREEN : END OF BLOCK B2.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF SCREEN-GROUP1 = 'SG1'.

SCREEN-INPUT = '0'.

  • SCREEN-INTENSIFIED = '1'.

MODIFY SCREEN.

ENDIF.

IF SCREEN-GROUP1 = 'SG2'.

SCREEN-INPUT = '0'.

  • SCREEN-INTENSIFIED = '1'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

IF PPRES = 'X'.

LOOP AT SCREEN.

IF SCREEN-GROUP1 = 'SG2' .

SCREEN-INPUT = '0'.

  • SCREEN-INTENSIFIED = '1'.

MODIFY SCREEN.

ENDIF.

IF SCREEN-GROUP1 = 'SG1'.

SCREEN-INPUT = '1'.

  • SCREEN-INTENSIFIED = '1'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

IF PAPPS = 'X'.

LOOP AT SCREEN.

IF SCREEN-GROUP1 = 'SG1' .

SCREEN-INPUT = '0'.

  • REFRESH SFPATH.

MODIFY SCREEN.

ENDIF.

IF SCREEN-GROUP1 = 'SG2'.

SCREEN-INPUT = '1'.

  • SCREEN-INTENSIFIED = '1'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

Reward points if helpful.

Thanks and regards

Read only

Former Member
0 Likes
1,181

Hi

select-options:

s_carrid for spfli-carrid modif car.

parameters:

p_check as checkbox.

at selection-screen output.

if w_flag eq 'x'.

loop at screen.

if screen-group1 = 'car'.

screen-active = 0.

modify screen.

endif.

endloop.

else.

loop at screen.

if screen-group1 = 'car'.

screen-active = 1.

modify screen.

endif.

endloop.

endif.

at selection-screen.

if p_check eq 'x'.

w_flag = 'X'.

endif.

Hope it will be helpful to u.

regards

Manjari

Read only

Former Member
0 Likes
1,181

Thanks