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: 

Drop down in selection-screen

Former Member
0 Kudos

hi,

suppose in the selection screen i have Customer No. and i want the result for only 4 customers like 1000, 1002, 1009, 1020. can anyone help me how to select only those in the selection screen.

thanks,

swamy

1 ACCEPTED SOLUTION

former_member188685
Active Contributor
0 Kudos

hi,

Check this example

check this code..

copy paste it and see...

REPORT  ZTEST_CODE_VRM.

TYPE-POOLS: VRM.

TYPES: NAME TYPE VRM_VALUE-TEXT.
DATA: V_VBELN LIKE VBAK-VBELN.
DATA: IT_VALUES TYPE STANDARD TABLE OF VRM_VALUE.
DATA: WA TYPE VRM_VALUE.
TABLES: KNA1.

SELECT-OPTIONS: S_VBELN FOR V_VBELN.
PARAMETERS: P_KUNNR AS CHECKBOX USER-COMMAND ABC.
PARAMETERS: P_CHK1 AS CHECKBOX USER-COMMAND ABC.
PARAMETERS: P_KUNNR1 TYPE NAME AS LISTBOX VISIBLE LENGTH 30.

INITIALIZATION.
  S_VBELN-LOW = '123'.
  APPEND S_VBELN.

  WA-KEY = '1'.
  WA-TEXT = 'One'.
  APPEND WA TO IT_VALUES.
  CLEAR WA.

  WA-KEY = '2'.
  WA-TEXT = 'Two'.
  APPEND WA TO IT_VALUES.
  CLEAR WA.
  READ TABLE IT_VALUES INTO WA INDEX 1.
  P_KUNNR1 = WA-KEY.
  CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
      ID              = 'P_KUNNR1'
      VALUES          = IT_VALUES
    EXCEPTIONS
      ID_ILLEGAL_NAME = 1
      OTHERS          = 2.
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.



AT SELECTION-SCREEN.
  CLEAR S_VBELN.
  REFRESH S_VBELN.
  S_VBELN-LOW = '456'.
  APPEND S_VBELN.


AT SELECTION-SCREEN ON P_KUNNR.
* This event should fire only only for parameters not for select options
  P_KUNNR = 'X'.

*
AT SELECTION-SCREEN OUTPUT.

  IF P_KUNNR = 'X'.
    P_KUNNR = ' '.
  ENDIF.
  IF P_CHK1 = ' '.
    P_CHK1 = 'X'.
  ELSE.
    P_CHK1 = ' '.
  ENDIF.

regards

vijay

6 REPLIES 6

Former Member
0 Kudos

Swamy,

Yes you can do that. Take a look at the usage VRM_SET_VALUES.

Use this statement.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VALUE.

Here you write the code and call the function, which will provide you the DROP DOWN.

Regards,

Ravi

Note : Please mark the helpful answers

Message was edited by: Ravikumar Allampallam

Former Member
0 Kudos

Hi

Did you mean you have customer no as parameter on selection screen and you want only 4 values as valid input ??

if so you can use at selection screen on value request event that triggers when user press F4 key and than in this event you can call screen havin these four values

Thanks

0 Kudos

Hi Rashmi,

can u pls send me the sample code. it will be uesful.

thanks,

Swamy

0 Kudos

Hi

just design one more screen having those 4 values say suppose screen no 100.

than in at selection-screen on value-request code like this

at selection-screen on value-request.

call screen 100 starting at x1 y1 ending at x2 y2.

by doing so whenever user will press F4

this screen will display as a window.

I hope you got this point

Thanks

0 Kudos

Here is the code.

TYPE-POOLS : VRM.

data : t_values type VRM_VALUES,

wa_value type VRM_VALUE.

parameters : p_carrid type S_carrid AS LISTBOX VISIBLE LENGTH 20.

AT SELECTION-SCREEN OUTPUT.

refresh t_values.

wa_value-key = '1'.

wa_value-text = 'a'.

append wa_value to t_values.

clear wa_value.

wa_value-key = '2'.

wa_value-text = 'B'.

append wa_value to t_values.

clear wa_value.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

ID = 'P_CARRID'

VALUES = t_values[].

  • EXCEPTIONS

  • ID_ILLEGAL_NAME = 1

  • OTHERS = 2

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

Regards,

Ravi

former_member188685
Active Contributor
0 Kudos

hi,

Check this example

check this code..

copy paste it and see...

REPORT  ZTEST_CODE_VRM.

TYPE-POOLS: VRM.

TYPES: NAME TYPE VRM_VALUE-TEXT.
DATA: V_VBELN LIKE VBAK-VBELN.
DATA: IT_VALUES TYPE STANDARD TABLE OF VRM_VALUE.
DATA: WA TYPE VRM_VALUE.
TABLES: KNA1.

SELECT-OPTIONS: S_VBELN FOR V_VBELN.
PARAMETERS: P_KUNNR AS CHECKBOX USER-COMMAND ABC.
PARAMETERS: P_CHK1 AS CHECKBOX USER-COMMAND ABC.
PARAMETERS: P_KUNNR1 TYPE NAME AS LISTBOX VISIBLE LENGTH 30.

INITIALIZATION.
  S_VBELN-LOW = '123'.
  APPEND S_VBELN.

  WA-KEY = '1'.
  WA-TEXT = 'One'.
  APPEND WA TO IT_VALUES.
  CLEAR WA.

  WA-KEY = '2'.
  WA-TEXT = 'Two'.
  APPEND WA TO IT_VALUES.
  CLEAR WA.
  READ TABLE IT_VALUES INTO WA INDEX 1.
  P_KUNNR1 = WA-KEY.
  CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
      ID              = 'P_KUNNR1'
      VALUES          = IT_VALUES
    EXCEPTIONS
      ID_ILLEGAL_NAME = 1
      OTHERS          = 2.
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.



AT SELECTION-SCREEN.
  CLEAR S_VBELN.
  REFRESH S_VBELN.
  S_VBELN-LOW = '456'.
  APPEND S_VBELN.


AT SELECTION-SCREEN ON P_KUNNR.
* This event should fire only only for parameters not for select options
  P_KUNNR = 'X'.

*
AT SELECTION-SCREEN OUTPUT.

  IF P_KUNNR = 'X'.
    P_KUNNR = ' '.
  ENDIF.
  IF P_CHK1 = ' '.
    P_CHK1 = 'X'.
  ELSE.
    P_CHK1 = ' '.
  ENDIF.

regards

vijay