‎2008 Jan 22 10:57 AM
i am writing this code for getting corresponding material no for the plant which i giving in the selection-screen .
parameter : WERKS type marc-werks,
matnr type marc-matnr.
data : begin of itab occurs 0,
matnr like marc-matnr,
werks like marc-werks,
end of itab.
at selection-screen on value-request for werks.
select matnr werks from marc up to 10 rows into table itab.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
RETFIELD = 'WERKS'
PVALKEY = ' '
DYNPPROG = sy-cprog
DYNPNR = sy-dynnr
DYNPROFIELD = 'WERKS'
STEPL = 0
WINDOW_TITLE =
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
TABLES
VALUE_TAB = itab
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.
pls help
‎2008 Jan 22 11:33 AM
Hi Check this ...
Its working.....
PARAMETER : werks TYPE marc-werks,
matnr TYPE marc-matnr.
*
DATA : BEGIN OF itab OCCURS 0,
matnr LIKE marc-matnr,
werks LIKE marc-werks,
END OF itab.
DATA: dynfields TYPE TABLE OF dynpread WITH HEADER LINE.
DATA: return TYPE TABLE OF ddshretval WITH HEADER LINE.
*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR werks.
*
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
tabname = 'T001W'
fieldname = 'WERKS'
dynpprog = sy-cprog
dynpnr = sy-dynnr
dynprofield = 'WERKS'
TABLES
return_tab = return
EXCEPTIONS
field_not_found = 1
no_help_for_field = 2
inconsistent_help = 3
no_values_found = 4
OTHERS = 5.
REFRESH dynfields.
READ TABLE return WITH KEY fieldname = 'WERKS'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR matnr.
SELECT matnr werks FROM marc
INTO TABLE itab
WHERE werks EQ return-fieldval.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
retfield = 'MATNR'
PVALKEY = ' '
dynpprog = sy-cprog
dynpnr = sy-dynnr
dynprofield = 'MATNR'
STEPL = 0
WINDOW_TITLE =
VALUE = ' '
value_org = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
TABLES
value_tab = itab
FIELD_TAB =
RETURN_TAB =
DYNPFLD_MAPPING =
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3 .
IF sy-subrc NE 0.
ENDIF.
Regards,
Sai Ramesh
‎2008 Jan 22 11:13 AM
‎2008 Jan 22 11:23 AM
‎2008 Jan 22 11:24 AM
Hi Jamshad,
Change your select query from
select matnr werks from marc up to 10 rows into table itab.
to
select matnr
werks
from marc
into table itab
where werks = werks.
Regards,
Mohaiyuddin
‎2008 Jan 22 11:33 AM
Hi Check this ...
Its working.....
PARAMETER : werks TYPE marc-werks,
matnr TYPE marc-matnr.
*
DATA : BEGIN OF itab OCCURS 0,
matnr LIKE marc-matnr,
werks LIKE marc-werks,
END OF itab.
DATA: dynfields TYPE TABLE OF dynpread WITH HEADER LINE.
DATA: return TYPE TABLE OF ddshretval WITH HEADER LINE.
*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR werks.
*
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
tabname = 'T001W'
fieldname = 'WERKS'
dynpprog = sy-cprog
dynpnr = sy-dynnr
dynprofield = 'WERKS'
TABLES
return_tab = return
EXCEPTIONS
field_not_found = 1
no_help_for_field = 2
inconsistent_help = 3
no_values_found = 4
OTHERS = 5.
REFRESH dynfields.
READ TABLE return WITH KEY fieldname = 'WERKS'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR matnr.
SELECT matnr werks FROM marc
INTO TABLE itab
WHERE werks EQ return-fieldval.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
retfield = 'MATNR'
PVALKEY = ' '
dynpprog = sy-cprog
dynpnr = sy-dynnr
dynprofield = 'MATNR'
STEPL = 0
WINDOW_TITLE =
VALUE = ' '
value_org = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
TABLES
value_tab = itab
FIELD_TAB =
RETURN_TAB =
DYNPFLD_MAPPING =
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3 .
IF sy-subrc NE 0.
ENDIF.
Regards,
Sai Ramesh