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: 

need an abap code

0 Kudos
362

TYPES: BEGIN OF ty_mara,

matnr type matnr,

end of ty_mara.

TYPES: BEGIN OF ty_marc,

werks type werks_d,

end of ty_marc.

TYPES: BEGIN OF ty_marm,

meinh type meinh,

end of ty_marm.

DATA: it_mara type STANDARD TABLE OF ty_mara, wa_mara type ty_mara.

DATA: it_marc type STANDARD TABLE OF ty_marc, wa_marc type ty_marc.

DATA: it_marm type STANDARD TABLE OF ty_marm, wa_marm type ty_marm.

DATA : TABLE_NAME TYPE VRM_ID,

LIST TYPE VRM_VALUES,

VALUE LIKE LINE OF LIST.

PARAMETERS : TABLES TYPE spfli-carrid AS LISTBOX VISIBLE LENGTH 10 user-command TABLE_NAME. PARAMETERS : p_MATNR type matnr, p_WERKS type werks, p_MEINH type meinh.

AT SELECTION-SCREEN OUTPUT.

TABLE_NAME = 'TABLES'.

VALUE-KEY = '1'.

VALUE-TEXT = 'MARA'.

APPEND VALUE TO LIST.

VALUE-KEY = '2'.

VALUE-TEXT = 'MARC'.

APPEND VALUE TO LIST.

VALUE-KEY = '3'.

VALUE-TEXT = 'MARM'.

APPEND VALUE TO LIST.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING ID = TABLE_NAME VALUES = LIST.

START-OF-SELECTION.

WRITE : /'TABLE_NAME' , TABLES.

SELECTION-SCREEN: SKIP.

AT SELECTION-SCREEN.

IF TABLE_NAME = 'MARM'.

ENDIF.

CASE TABLE_NAME.

WHEN 'MARM'.

LOOP AT SCREEN.

IF screen-name cs 'P_MATNR'.

screen-active = 0.

screen-input = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDCASE.

SELECT matnr from mara into wa_mara where matnr = p_matnr.

ENDSELECT.

SELECT werks from marc into wa_marc where werks = p_werks.

ENDSELECT.

SELECT meinh from marm into wa_marm where meinh = p_meinh.

ENDSELECT.

this is my code, I need a code that helps me change my parameters on the selection screen based on the selection made in the listbox

4 REPLIES 4

AlexGourdet
Product and Topic Expert
Product and Topic Expert
0 Kudos
306

Thank you for visiting SAP Community to get answers to your questions. Since this is your first question, I recommend that you familiarize yourself with Community Q&A, as the overview provides tips for preparing questions that draw responses from our members.

Should you wish, you can revise your question by selecting Actions, then Edit.

By adding a Picture to your profile you encourage readers to respond.

Sandra_Rossi
Active Contributor
306

Please edit your question (Actions>Edit), select your code and press the button [CODE], which makes the code appear colored/indented, it'll be easier for people to look at it. Thanks!

Sandra_Rossi
Active Contributor
306

That's quite a meaningless title!

A better title could be: "Change fields in selection screen when user selects other value in listbox"

jens_michaelsen
Participant
306

You need an ABAP code, here is an ABAP code

TYPES: BEGIN OF ty_mara,
matnr TYPE matnr,
END OF ty_mara.

TYPES: BEGIN OF ty_marc,
werks TYPE werks_d,
END OF ty_marc.

TYPES: BEGIN OF ty_marm,
meinh TYPE meinh,
END OF ty_marm.

DATA: it_mara TYPE STANDARD TABLE OF ty_mara, wa_mara TYPE ty_mara.
DATA: it_marc TYPE STANDARD TABLE OF ty_marc, wa_marc TYPE ty_marc.
DATA: it_marm TYPE STANDARD TABLE OF ty_marm, wa_marm TYPE ty_marm.
DATA : table_name TYPE vrm_id,
list TYPE vrm_values,
value LIKE LINE OF list.

PARAMETERS : tables TYPE spfli-carrid AS LISTBOX VISIBLE LENGTH 10 USER-COMMAND table_name.
PARAMETERS : p_matnr TYPE matnr MODIF ID mat, p_werks TYPE werks, p_meinh TYPE meinh.

AT SELECTION-SCREEN OUTPUT.
table_name = 'TABLES'.

value-key = '1'.
value-text = 'MARA'.
APPEND value TO list.

value-key = '2'.
value-text = 'MARC'.
APPEND value TO list.

value-key = '3'.
value-text = 'MARM'.
APPEND value TO list.

CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = table_name
values = list.

CASE tables.
WHEN '3'.
LOOP AT SCREEN.
IF screen-group1 = 'MAT'.
* screen-active = 0.
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDCASE.

START-OF-SELECTION.
WRITE : /'TABLE_NAME' , tables.
SELECTION-SCREEN: SKIP.

AT SELECTION-SCREEN.

IF table_name = 'MARM'.
ENDIF.

SELECT matnr FROM mara INTO wa_mara WHERE matnr = p_matnr.
ENDSELECT.

SELECT werks FROM marc INTO wa_marc WHERE werks = p_werks.
ENDSELECT.

SELECT meinh FROM marm INTO wa_marm WHERE meinh = p_meinh.
ENDSELECT.