2007 Nov 29 11:01 AM
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
2007 Nov 29 1:04 PM
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,
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
2007 Nov 29 11:03 AM
after initilaization use at-selectionscreen and ise this fnm over there
2007 Nov 29 11:04 AM
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....
2007 Nov 29 11:05 AM
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
2007 Nov 29 11:10 AM
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.
2007 Nov 29 12:47 PM
2007 Nov 29 12:48 PM
2007 Nov 29 12:51 PM
2007 Nov 29 1:04 PM
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
2007 Nov 29 1:11 PM
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |