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

help me out

Former Member
0 Likes
1,090

hi to all sdn experts,

i want to add at selection-screen on value request and function module

F4_int_table_value_request to my code so that based on material number i should get material type and plant plz help me out. i have tried but unsuccessful here is my code.

tables :mara, marc.

types: begin of ty_mara,

matnr type mara-matnr,"material no

mtart type mara-mtart,"material type

matkl type mara-matkl,"material group

meins type mara-meins,"base unit of measure

ntgew type mara-ntgew,"net weight

end of ty_mara,

begin of ty_marc,

matnr type marc-matnr,"material no

werks type marc-werks,"plant

pstat type marc-pstat,"maintenance status

dispo type marc-dispo,"mrp controller

end of ty_marc.

data: it_mara type standard table of ty_mara initial size 0,

wa_mara like line of it_mara,

it_marc type standard table of ty_marc initial size 0,

wa_marc like line of it_marc.

selection-screen begin of block b1 with frame title text-001.

select-options : so_mat for mara-matnr.

parameters: p_matype type mara-mtart.

select-options: so_werks for marc-werks.

selection-screen end of block b1.

start-of-selection.

perform f_get_val using wa_mara

changing it_mara.

&----


*& Form f_get_val

&----


  • text

----


  • -->P_WA_MARA text

  • <--P_IT_MARA text

----


FORM f_get_val USING P_WA_MARA

CHANGING P_IT_MARA.

select matnr mtart matkl meins ntgew

from mara into table it_mara

where matnr in so_mat and mtart eq p_matype.

ENDFORM. " f_get_val

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,065

hi,

try this

just press enter after inserting material number.

U will get related data to that material number in F4 help

TABLES : mara, marc.

TYPES : BEGIN OF ty_maty,

mtart TYPE mara-mtart,

END OF ty_maty.

TYPES : BEGIN OF ty_werk,

werks type marc-werks,

END OF ty_werk.

DATA : dyfields LIKE dynpread OCCURS 1 WITH HEADER LINE ,

i_maty TYPE TABLE OF ty_maty WITH HEADER LINE,

i_werk TYPE TABLE OF ty_werk WITH HEADER LINE.

DATA : wa_value_tab TYPE ty_maty.

DATA : wa_value_tab1 TYPE ty_werk.

DATA : value_tab LIKE wa_value_tab OCCURS 0 WITH HEADER LINE.

DATA : value_tab1 LIKE wa_value_tab1 OCCURS 0 WITH HEADER LINE.

DATA : field_tab LIKE dfies OCCURS 0 WITH HEADER LINE.

DATA : return_tab LIKE ddshretval OCCURS 0 WITH HEADER LINE.

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

SELECT-OPTIONS : so_mat FOR mara-matnr.

PARAMETERS: p_matype TYPE mara-mtart.

SELECT-OPTIONS: so_werks FOR marc-werks.

SELECTION-SCREEN END OF BLOCK b1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_matype.

CHECK NOT so_mat IS INITIAL .

SELECT mtart

INTO TABLE i_maty

FROM mara

WHERE matnr in so_mat. "dyfields-fieldvalue.

SORT i_maty BY mtart.

DELETE ADJACENT DUPLICATES FROM i_maty.

CLEAR : value_tab,field_tab,return_tab.

REFRESH : value_tab,field_tab,return_tab.

field_tab-fieldname = 'MTART'.

field_tab-tabname = 'MARA'.

APPEND field_tab.

LOOP AT i_maty .

value_tab-mtart = i_maty-mtart.

APPEND value_tab.

ENDLOOP.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = field_tab-fieldname

TABLES

value_tab = value_tab

field_tab = field_tab

return_tab = return_tab

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc = 0.

p_matype = return_tab-fieldval.

ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_werks-low.

CHECK NOT so_mat IS INITIAL .

SELECT werks

INTO TABLE i_werk

FROM marc

WHERE matnr in so_mat. "dyfields-fieldvalue.

SORT i_werk BY werks.

DELETE ADJACENT DUPLICATES FROM i_werk.

CLEAR : value_tab1,field_tab,return_tab.

REFRESH : value_tab1,field_tab,return_tab.

field_tab-fieldname = 'WERKS'.

field_tab-tabname = 'MARC'.

APPEND field_tab.

LOOP AT i_werk .

value_tab1-werks = i_werk-werks.

APPEND value_tab1.

ENDLOOP.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = field_tab-fieldname

TABLES

value_tab = value_tab1

field_tab = field_tab

return_tab = return_tab

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc = 0.

so_werks-low = return_tab-fieldval.

ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_werks-high.

CHECK NOT so_mat IS INITIAL .

SELECT werks

INTO TABLE i_werk

FROM marc

WHERE matnr in so_mat. "dyfields-fieldvalue.

SORT i_werk BY werks.

DELETE ADJACENT DUPLICATES FROM i_werk.

CLEAR : value_tab1,field_tab,return_tab.

REFRESH : value_tab1,field_tab,return_tab.

field_tab-fieldname = 'WERKS'.

field_tab-tabname = 'MARC'.

APPEND field_tab.

LOOP AT i_werk .

value_tab1-werks = i_werk-werks.

APPEND value_tab1.

ENDLOOP.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = field_tab-fieldname

TABLES

value_tab = value_tab1

field_tab = field_tab

return_tab = return_tab

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc = 0.

so_werks-low = return_tab-fieldval.

ENDIF.

reward if useful

hi to all sdn experts,

i want to add at selection-screen on value request and function module

F4_int_table_value_request to my code so that based on material number i should get material type and plant plz help me out. i have tried but unsuccessful here is my code.

tables :mara, marc.

types: begin of ty_mara,

matnr type mara-matnr,"material no

mtart type mara-mtart,"material type

matkl type mara-matkl,"material group

meins type mara-meins,"base unit of measure

ntgew type mara-ntgew,"net weight

end of ty_mara,

begin of ty_marc,

matnr type marc-matnr,"material no

werks type marc-werks,"plant

pstat type marc-pstat,"maintenance status

dispo type marc-dispo,"mrp controller

end of ty_marc.

data: it_mara type standard table of ty_mara initial size 0,

wa_mara like line of it_mara,

it_marc type standard table of ty_marc initial size 0,

wa_marc like line of it_marc.

selection-screen begin of block b1 with frame title text-001.

select-options : so_mat for mara-matnr.

parameters: p_matype type mara-mtart.

select-options: so_werks for marc-werks.

selection-screen end of block b1.

start-of-selection.

perform f_get_val using wa_mara

changing it_mara.

&----


*& Form f_get_val

&----


  • text

----


  • -->P_WA_MARA text

  • <--P_IT_MARA text

----


FORM f_get_val USING P_WA_MARA

CHANGING P_IT_MARA.

select matnr mtart matkl meins ntgew

from mara into table it_mara

where matnr in so_mat and mtart eq p_matype.

ENDFORM. " f_get_val

9 REPLIES 9
Read only

Former Member
0 Likes
1,065

after initilaization use at-selectionscreen and ise this fnm over there

Read only

Former Member
0 Likes
1,065

hi,

try like this

Here i am finding customer from Bukrs ( company code )

TYPES : BEGIN OF ty_kna1,

kunnr TYPE kna1-kunnr, "CUstomer Code

name1 TYPE kna1-name1, "Customer Code

END OF ty_kna1.

DATA : dyfields LIKE dynpread OCCURS 1 WITH HEADER LINE ,

i_kna1 TYPE TABLE OF ty_kna1 WITH HEADER LINE.

DATA : wa_value_tab TYPE ty_kna1.

DATA : value_tab LIKE wa_value_tab OCCURS 0 WITH HEADER LINE.

DATA : field_tab LIKE dfies OCCURS 0 WITH HEADER LINE.

DATA : return_tab LIKE ddshretval OCCURS 0 WITH HEADER LINE.

PARAMETERS:bukrs LIKE rbkp-bukrs OBLIGATORY.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS : rad_but1 RADIOBUTTON GROUP one DEFAULT 'X' USER-COMMAND ucom.

SELECTION-SCREEN COMMENT 3(26) text-003.

SELECT-OPTIONS : kunnr FOR kna1-kunnr.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS : rad_but2 RADIOBUTTON GROUP one.

SELECTION-SCREEN COMMENT 3(26) text-004.

SELECT-OPTIONS : lifnr FOR lfa1-lifnr.

SELECTION-SCREEN END OF LINE.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR kunnr-low.

CHECK NOT bukrs IS INITIAL .

SELECT kna1kunnr kna1name1

INTO TABLE i_kna1

FROM kna1 INNER JOIN vbrk

ON kna1kunnr = vbrkkunag

WHERE vbrk~bukrs = bukrs. "dyfields-fieldvalue.

SORT i_kna1 BY kunnr.

DELETE ADJACENT DUPLICATES FROM i_kna1.

CLEAR : value_tab,field_tab,return_tab.

REFRESH : value_tab,field_tab,return_tab.

field_tab-fieldname = 'KUNNR'.

field_tab-tabname = 'KNA1'.

APPEND field_tab.

field_tab-fieldname = 'NAME1'.

field_tab-tabname = 'KNA1'.

APPEND field_tab.

field_tab-fieldname = 'KUNNR'.

LOOP AT i_kna1 .

value_tab-kunnr = i_kna1-kunnr.

APPEND value_tab.

CLEAR value_tab.

value_tab-name1 = i_kna1-name1.

APPEND value_tab.

ENDLOOP.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = field_tab-fieldname

TABLES

value_tab = value_tab

field_tab = field_tab

return_tab = return_tab

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc = 0.

kunnr-low = return_tab-fieldval.

ENDIF.

reward if useful....

Read only

former_member386202
Active Contributor
0 Likes
1,065

Hi,

Call FM F4IF_INT_TABLE_VALUE_REQUEST inside of at selection-screen on value request of matnr .

then select data from mara based on populated internal table and pass that value to ur select options fields.

Regards,

PRashant

Read only

Former Member
0 Likes
1,065

Hi,

selection-screen begin of block b1 with frame title text-001.

select-options : so_mat for mara-matnr.

parameters: p_matype type mara-mtart.

select-options: so_werks for marc-werks.

selection-screen end of block b1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR SO_mat-LOW.

*

  • SELECT DISTINCT material number,material desc,plant INTO TABLE IT_matnr FROM <tablename>.

*

  • CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

  • EXPORTING

    • DDIC_STRUCTURE = '<databasetablename>'

  • RETFIELD = 'matnr'

    • PVALKEY = ' '

  • DYNPPROG = W_REPID

  • DYNPNR = W_DYNNR

  • DYNPROFIELD = 'S_matnr-LOW'

    • STEPL = 0

  • WINDOW_TITLE = 'matno'

    • VALUE = ' '

  • VALUE_ORG = 'S'

    • MULTIPLE_CHOICE = 'X'

    • DISPLAY = ' '

    • CALLBACK_PROGRAM = ' '

    • CALLBACK_FORM = ' '

    • MARK_TAB = 'X'

    • IMPORTING

    • USER_RESET =

  • TABLES

  • VALUE_TAB = IT_matnr

    • FIELD_TAB =

    • RETURN_TAB = IT_RETURN

    • 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.

start-of-selection.

perform f_get_val using wa_mara

changing it_mara.

Regards,

Vani.

Read only

Former Member
0 Likes
1,065

IT ALL SUGGESTIONS STILL ANYBODY PLEASE HELP ME

Read only

0 Likes
1,065

IM NOT GETTING IT PLZ HELP ME OUT

Read only

0 Likes
1,065

HI,

HAVE U TRIED MY CODE?

Read only

Former Member
0 Likes
1,066

hi,

try this

just press enter after inserting material number.

U will get related data to that material number in F4 help

TABLES : mara, marc.

TYPES : BEGIN OF ty_maty,

mtart TYPE mara-mtart,

END OF ty_maty.

TYPES : BEGIN OF ty_werk,

werks type marc-werks,

END OF ty_werk.

DATA : dyfields LIKE dynpread OCCURS 1 WITH HEADER LINE ,

i_maty TYPE TABLE OF ty_maty WITH HEADER LINE,

i_werk TYPE TABLE OF ty_werk WITH HEADER LINE.

DATA : wa_value_tab TYPE ty_maty.

DATA : wa_value_tab1 TYPE ty_werk.

DATA : value_tab LIKE wa_value_tab OCCURS 0 WITH HEADER LINE.

DATA : value_tab1 LIKE wa_value_tab1 OCCURS 0 WITH HEADER LINE.

DATA : field_tab LIKE dfies OCCURS 0 WITH HEADER LINE.

DATA : return_tab LIKE ddshretval OCCURS 0 WITH HEADER LINE.

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

SELECT-OPTIONS : so_mat FOR mara-matnr.

PARAMETERS: p_matype TYPE mara-mtart.

SELECT-OPTIONS: so_werks FOR marc-werks.

SELECTION-SCREEN END OF BLOCK b1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_matype.

CHECK NOT so_mat IS INITIAL .

SELECT mtart

INTO TABLE i_maty

FROM mara

WHERE matnr in so_mat. "dyfields-fieldvalue.

SORT i_maty BY mtart.

DELETE ADJACENT DUPLICATES FROM i_maty.

CLEAR : value_tab,field_tab,return_tab.

REFRESH : value_tab,field_tab,return_tab.

field_tab-fieldname = 'MTART'.

field_tab-tabname = 'MARA'.

APPEND field_tab.

LOOP AT i_maty .

value_tab-mtart = i_maty-mtart.

APPEND value_tab.

ENDLOOP.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = field_tab-fieldname

TABLES

value_tab = value_tab

field_tab = field_tab

return_tab = return_tab

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc = 0.

p_matype = return_tab-fieldval.

ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_werks-low.

CHECK NOT so_mat IS INITIAL .

SELECT werks

INTO TABLE i_werk

FROM marc

WHERE matnr in so_mat. "dyfields-fieldvalue.

SORT i_werk BY werks.

DELETE ADJACENT DUPLICATES FROM i_werk.

CLEAR : value_tab1,field_tab,return_tab.

REFRESH : value_tab1,field_tab,return_tab.

field_tab-fieldname = 'WERKS'.

field_tab-tabname = 'MARC'.

APPEND field_tab.

LOOP AT i_werk .

value_tab1-werks = i_werk-werks.

APPEND value_tab1.

ENDLOOP.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = field_tab-fieldname

TABLES

value_tab = value_tab1

field_tab = field_tab

return_tab = return_tab

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc = 0.

so_werks-low = return_tab-fieldval.

ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_werks-high.

CHECK NOT so_mat IS INITIAL .

SELECT werks

INTO TABLE i_werk

FROM marc

WHERE matnr in so_mat. "dyfields-fieldvalue.

SORT i_werk BY werks.

DELETE ADJACENT DUPLICATES FROM i_werk.

CLEAR : value_tab1,field_tab,return_tab.

REFRESH : value_tab1,field_tab,return_tab.

field_tab-fieldname = 'WERKS'.

field_tab-tabname = 'MARC'.

APPEND field_tab.

LOOP AT i_werk .

value_tab1-werks = i_werk-werks.

APPEND value_tab1.

ENDLOOP.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = field_tab-fieldname

TABLES

value_tab = value_tab1

field_tab = field_tab

return_tab = return_tab

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc = 0.

so_werks-low = return_tab-fieldval.

ENDIF.

reward if useful

Read only

0 Likes
1,065

hi dwani shah ,

thanks i got it.i have rewarded you