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: 

List box for screen field S_CUST based on another screen field value

Former Member
0 Kudos

Team,

I want to create listbox for screen field S_CUST. Listbox box values will be read from a z_zipcodes table where zipcode = S_ZIPCODE.

(There is alot of material on sdn - but somehow it is mixed with se38 and se80 programming). I am only interested in SE80 since both fields S_CUST and S_ZIPCODE are on screen 0100. I want the user to choose values for field S_CUST only from listbox. The listbox is created by select statement where zipcode = S_ZIPCODE.

I know I have to declare the following in TOP module:

TYPE-POOLS : VRM.

DATA: param TYPE vrm_id,

values TYPE vrm_values,

value LIKE LINE OF values.

and there is a FM involved:

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = 'i/o screen field'

values = values.

I also know that following code will be in PAI module:

PROCESS ON VALUE-REQUEST

field S_CUST module CUST_LBOX. "List box

****

How to code module CUST_LBOX.

I want to know how to put all this together (And If I am missing anything). (Please do not refer to another post for suggestions or reading - I want solution to my scenario)

Thanks

Message was edited by:

SAPna2000

3 REPLIES 3

Former Member
0 Kudos

I have code for providing F4 help to a field based on another field.

Try manipulating this code....and populate listbox instead....

*******************************************************

REPORT Z50651_F4 MESSAGE-ID ZMSG_50651.

******************TABLES DECLARATION*********************

TABLES : VBAP.

******************DATA DECLARATIONS********************

DATA : PGMNAME LIKE SY-REPID.

DATA : DYNNO LIKE SY-DYNNR.

*****************INTERNAL TABLES*************************

DATA : BEGIN OF IT_VBAP OCCURS 0,

VBELN LIKE VBAP-VBELN,

POSNR LIKE VBAP-POSNR,

END OF IT_VBAP.

DATA : DYNVALUE TYPE TABLE OF DYNPREAD,

FIELD_VALUE LIKE LINE OF DYNVALUE.

************INITIALIZATION*************************

INITIALIZATION.

PGMNAME = SY-REPID.

DYNNO = SY-DYNNR.

*************SELECTION SCREEN**********

PARAMETERS : P_VBELN LIKE VBAP-VBELN,

P_POSNR LIKE VBAP-POSNR.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_POSNR.

PERFORM GET_ENTERED_VBELN.

PERFORM POPULATE_IT_VBAP.

PERFORM PROVIDE_F4_VBELN.

&----


*& Form PROVIDE_F4_VBELN

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM PROVIDE_F4_VBELN .

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

RETFIELD = 'P_POSNR'

  • PVALKEY = ' '

DYNPPROG = PGMNAME

DYNPNR = DYNNO

DYNPROFIELD = 'P_POSNR'

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

VALUE_ORG = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

  • MARK_TAB =

  • IMPORTING

  • USER_RESET =

TABLES

VALUE_TAB = IT_VBAP

  • FIELD_TAB =

  • RETURN_TAB =

  • DYNPFLD_MAPPING =

EXCEPTIONS

PARAMETER_ERROR = 1

NO_VALUES_FOUND = 2

OTHERS = 3

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

ENDFORM. " PROVIDE_F4_VBELN

&----


*& Form POPULATE_IT_VBAP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM POPULATE_IT_VBAP .

READ TABLE DYNVALUE INDEX 1 INTO FIELD_VALUE.

SELECT VBELN

POSNR

FROM VBAP

INTO TABLE IT_VBAP

WHERE VBELN = FIELD_VALUE-FIELDVALUE.

ENDFORM. " POPULATE_IT_VBAP

&----


*& Form GET_ENTERED_VBELN

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_ENTERED_VBELN .

CLEAR : DYNVALUE,FIELD_VALUE.

FIELD_VALUE-FIELDNAME = 'P_VBELN'.

APPEND FIELD_VALUE TO DYNVALUE.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

DYNAME = PGMNAME

DYNUMB = DYNNO

TRANSLATE_TO_UPPER = 'X'

  • REQUEST = ' '

  • PERFORM_CONVERSION_EXITS = ' '

  • PERFORM_INPUT_CONVERSION = ' '

  • DETERMINE_LOOP_INDEX = ' '

TABLES

DYNPFIELDS = DYNVALUE

EXCEPTIONS

INVALID_ABAPWORKAREA = 1

INVALID_DYNPROFIELD = 2

INVALID_DYNPRONAME = 3

INVALID_DYNPRONUMMER = 4

INVALID_REQUEST = 5

NO_FIELDDESCRIPTION = 6

INVALID_PARAMETER = 7

UNDEFIND_ERROR = 8

DOUBLE_CONVERSION = 9

STEPL_NOT_FOUND = 10

OTHERS = 11

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

ENDFORM. " GET_ENTERED_VBELN

***********************************************************

Regards

Vasu

0 Kudos

Vasu,

Thanks for your response. It gives solution for SE38. I am interested in module pool solutions only, i.e. SE80.

Thanks

0 Kudos

Try using this type of code.....in event Process On Value Request (POV).

But u can use this type of code even in module pool programs i guess....

Regards

Vasu