2007 Feb 07 12:11 PM
hello all,
this is my code. i am getting an error("rk_mara1" is a table without a header and therefore has no component called "ieldname"). can somebody tell me????
REPORT Y_RK_TRAIL NO STANDARD PAGE HEADING
LINE-SIZE 221
LINE-COUNT 40(5).
TABLES: MARA,MARC,MARD,MBEW,MVKE,MAKT.
TYPE-POOLS : SLIS.
DATA: REPID LIKE SY-REPID,
*DATA: Vf_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, " THIS INTERNAL TABLE
" CONTAINS THE FIELD
" ATTRIBUTES
rk_MARA1 type slis_t_fieldcat_alv,
rk_MARA type slis_fieldcat_alv,
rk_MARC1 type slis_t_fieldcat_alv,
rk_MARC type slis_fieldcat_alv,
rk_MARD1 type slis_t_fieldcat_alv,
rk_MARD type slis_fieldcat_alv,
rk_MBEW1 type slis_t_fieldcat_alv,
rk_MBEW type slis_fieldcat_alv,
rk_MVKE1 type slis_t_fieldcat_alv,
rk_MVKE type slis_fieldcat_alv,
rk_MAKT1 type slis_t_fieldcat_alv,
rk_MAKT type slis_fieldcat_alv.
DATA: BEGIN OF I_MARC OCCURS 0,
MATNR LIKE MARC-MATNR,
EKGRP LIKE MARC-EKGRP,
PSTAT LIKE MARC-PSTAT,
END OF I_MARC.
DATA: BEGIN OF I_MARD OCCURS 0,
MATNR LIKE MARD-MATNR,
LGORT LIKE MARD-LGORT,
ERSDA LIKE MARD-ERSDA,
LABST LIKE MARD-LABST,
WERKS LIKE MARD-WERKS,
END OF I_MARD.
DATA: BEGIN OF I_MBEW OCCURS 0,
MATNR LIKE MBEW-MATNR,
BWKEY LIKE MBEW-BWKEY,
STPRS LIKE MBEW-STPRS,
PEINH LIKE MBEW-PEINH,
END OF I_MBEW.
DATA: BEGIN OF I_MARA OCCURS 0,
MATNR LIKE MARA-MATNR,
MTART LIKE MARA-MTART,
MATKL LIKE MARA-MATKL,
MEINS LIKE MARA-MEINS,
MBRSH LIKE MARA-MBRSH,
END OF I_MARA.
DATA: BEGIN OF I_MVKE OCCURS 0,
MATNR LIKE MVKE-MATNR,
VKORG LIKE MVKE-VKORG,
VTWEG LIKE MVKE-VTWEG,
VRKME LIKE MVKE-VRKME,
END OF I_MVKE.
DATA: BEGIN OF I_MAKT OCCURS 0,
MATNR LIKE MAKT-MATNR,
SPRAS LIKE MAKT-SPRAS,
MAKTX LIKE MAKT-MAKTX,
END OF I_MAKT.
*
*DATA: BEGIN OF I_OUT OCCURS 0,
MATNR LIKE MARC-MATNR,
MEINS LIKE MARA-MEINS,
MBRSH LIKE MARA-MBRSH,
MATKL LIKE MARA-MATKL,
MTART LIKE MARA-MTART,
WERKS LIKE MARD-WERKS,
EKGRP LIKE MARC-EKGRP,
PSTAT LIKE MARC-PSTAT,
LGORT LIKE MARD-LGORT,
ERSDA LIKE MARD-ERSDA,
LABST LIKE MARD-LABST,
BWKEY LIKE MBEW-BWKEY,
STPRS LIKE MBEW-STPRS,
PEINH LIKE MBEW-PEINH,
VKORG LIKE MVKE-VKORG,
VTWEG LIKE MVKE-VTWEG,
VRKME LIKE MVKE-VRKME,
SPRAS LIKE MAKT-SPRAS,
MAKTX LIKE MAKT-MAKTX,
END OF I_OUT.
&----
*& A T - S E L E C T I O N - S C R E E N *
&----
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-100.
SELECT-OPTIONS: S_MATNR FOR MARA-MATNR .
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-101.
PARAMETERS: P_WERKS LIKE MARD-WERKS OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B2.
START-OF-SELECTION.
perform get_val.
repid = sy-repid.
SELECT MATNR EKGRP PSTAT FROM MARC INTO
CORRESPONDING FIELDS OF TABLE I_MARC
WHERE WERKS = P_WERKS AND MATNR IN S_MATNR.
SELECT MATNR MTART MBRSH MEINS MATKL FROM MARA INTO
CORRESPONDING FIELDS OF TABLE I_MARA FOR ALL ENTRIES IN I_MARC
WHERE MATNR EQ I_MARC-MATNR.
SELECT MATNR SPRAS MAKTX FROM MAKT INTO
CORRESPONDING FIELDS OF TABLE I_MAKT
FOR ALL ENTRIES IN I_MARC
WHERE MATNR = I_MARC-MATNR.
SELECT MATNR LGORT ERSDA LABST WERKS FROM MARD INTO
CORRESPONDING FIELDS OF TABLE
I_MARD FOR ALL ENTRIES IN I_MAKT
WHERE MATNR = I_MAKT-MATNR.
SELECT MATNR BWKEY STPRS PEINH FROM MBEW INTO TABLE I_MBEW
FOR ALL ENTRIES IN I_MARD
WHERE MATNR = I_MARD-MATNR.
SELECT MATNR VKORG VTWEG VRKME FROM MVKE INTO TABLE I_MVKE
FOR ALL ENTRIES IN I_MBEW
WHERE MATNR = I_MBEW-MATNR.
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
i_callback_program = repid
i_callback_user_command = 'HANDLE_USER_COMMAND'
it_fieldcat = rk_mara1
it_events = i_events
tables
t_outtab = i_mara.
if sy-subrc <> 0.
endif.
----
FORM GET_VAL *
----
........ *
----
form get_val.
rk_mara1-fieldname = 'MATNR'.
rk_mara1-ref_fieldname = 'MATNR'.
rk_mara1-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.
rk_mara1-fieldname = 'MEINS'.
rk_mara1-ref_fieldname = 'MEINS'.
rk_mara1-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.
rk_mara1-fieldname = 'MATKL'.
rk_mara1-ref_fieldname = 'MATKL'.
rk_mara1-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.
rk_mara1-fieldname = 'MBRSH'.
rk_mara1-ref_fieldname = 'MBRSH'.
rk_mara1-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.
rk_mard1-fieldname = 'WERKS'.
rk_mard1-ref_fieldname = 'WERKS'.
rk_mard1-ref_tabname = 'MARD'.
append rk_mard to rk_mard1.
rk_mard1-fieldname = 'LGORT'.
rk_mard1-ref_fieldname = 'LGORT'.
rk_mard1-ref_tabname = 'MARD'.
append rk_mard to rk_mard1.
rk_mard1-fieldname = 'ERSDA'.
rk_mard1-ref_fieldname = 'ERSDA'.
rk_mard1-ref_tabname = 'MARD'.
append rk_mard to rk_mard1.
rk_mard1-fieldname = 'LABST'.
rk_mard1-ref_fieldname = 'LABST'.
rk_mard1-ref_tabname = 'MARD'.
append rk_mard to rk_mard1.
rk_marc1-fieldname = 'EKGRP'.
rk_marc1-ref_fieldname = 'EKGRP'.
rk_marc1-ref_tabname = 'MARC'.
append rk_marc to rk_marc1.
rk_marc1-fieldname = 'PSTAT'.
rk_marc1-ref_fieldname = 'PSTAT'.
rk_marc1-ref_tabname = 'MARC'.
append rk_marc to rk_marc1.
rk_mbew1-fieldname = 'BWKEY'.
rk_mbew1-ref_fieldname = 'BWKEY'.
rk_mbew-ref_tabname = 'MBEW'.
append rk_mbew to rk_mbew1.
rk_mbew1-fieldname = 'STPRS'.
rk_mbew1-ref_fieldname = 'STPRS'.
rk_mbew1-ref_tabname = 'MBEW'.
append rk_mbew to rk_mbew1.
rk_mbew1-fieldname = 'PEINH'.
rk_mbew1-ref_fieldname = 'PEINH'.
rk_mbew1-ref_tabname = 'MBEW'.
append rk_mbew to rk_mbew1.
rk_mvke1-fieldname = 'VTWEG'.
rk_mvke1-ref_fieldname = 'VTWEG'.
rk_mvke1-ref_tabname = 'MVKE'.
append rk_mvke to rk_mvke1.
rk_mvke1-fieldname = 'VRKME'.
rk_mvke1-ref_fieldname = 'VRKME'.
rk_mvke1-ref_tabname = 'MVKE'.
append rk_mvke to rk_mvke1.
rk_mvke1-fieldname = 'VKORG'.
rk_mvke1-ref_fieldname = 'VKORG'.
rk_mvke1-ref_tabname = 'MVKE'.
append rk_mvke to rk_mvke1.
rk_mvkt1-fieldname = 'SPRAS'.
rk_mvkt1-ref_fieldname = 'SPRAS'.
rk_mvkt1-ref_tabname = 'MAKT'.
append rk_mvkt to rk_mvkt1.
rk_mvkt1-fieldname = 'MAKTX'.
rk_mvkt1-ref_fieldname = 'MAKTX'.
rk_mvkt1-ref_tabname = 'MAKT'.
append rk_mvkt to rk_mvkt1.
endform. "get_val
----
FORM VAL *
----
........ *
----
--> USER_COMMAND *
--> SEL *
----
form handle_user_command using r_ucomm like sy-ucomm
sel type slis_selfield.
data: cus(10) type n,
sal(10) type n,
mat(10) type c.
case r_ucomm.
when '&IC1'.
if sel-fieldname = 'matnr'.
cus = sel-value.
SELECT MATNR LGORT ERSDA LABST WERKS FROM MARD
INTO TABLE I_MARD WHERE MATNR = cus
AND WERKS = P_WERKS.
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
i_callback_program = repid
i_callback_user_command = 'HANDLE_USER_COMMAND'
it_fieldcat = rk_mard1
it_events = i_events
tables
t_outtab = i_mard.
endif.
endform. "handle_user_command
thanks & regards
seenu
hello all,
this is my code. i am getting an error("rk_mara1" is a table without a header and therefore has no component called "ieldname"). can somebody tell me????
REPORT Y_RK_TRAIL NO STANDARD PAGE HEADING
LINE-SIZE 221
LINE-COUNT 40(5).
TABLES: MARA,MARC,MARD,MBEW,MVKE,MAKT.
TYPE-POOLS : SLIS.
DATA: REPID LIKE SY-REPID,
*DATA: Vf_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, " THIS INTERNAL TABLE
" CONTAINS THE FIELD
" ATTRIBUTES
rk_MARA1 type slis_t_fieldcat_alv,
rk_MARA type slis_fieldcat_alv,
rk_MARC1 type slis_t_fieldcat_alv,
rk_MARC type slis_fieldcat_alv,
rk_MARD1 type slis_t_fieldcat_alv,
rk_MARD type slis_fieldcat_alv,
rk_MBEW1 type slis_t_fieldcat_alv,
rk_MBEW type slis_fieldcat_alv,
rk_MVKE1 type slis_t_fieldcat_alv,
rk_MVKE type slis_fieldcat_alv,
rk_MAKT1 type slis_t_fieldcat_alv,
rk_MAKT type slis_fieldcat_alv.
DATA: BEGIN OF I_MARC OCCURS 0,
MATNR LIKE MARC-MATNR,
EKGRP LIKE MARC-EKGRP,
PSTAT LIKE MARC-PSTAT,
END OF I_MARC.
DATA: BEGIN OF I_MARD OCCURS 0,
MATNR LIKE MARD-MATNR,
LGORT LIKE MARD-LGORT,
ERSDA LIKE MARD-ERSDA,
LABST LIKE MARD-LABST,
WERKS LIKE MARD-WERKS,
END OF I_MARD.
DATA: BEGIN OF I_MBEW OCCURS 0,
MATNR LIKE MBEW-MATNR,
BWKEY LIKE MBEW-BWKEY,
STPRS LIKE MBEW-STPRS,
PEINH LIKE MBEW-PEINH,
END OF I_MBEW.
DATA: BEGIN OF I_MARA OCCURS 0,
MATNR LIKE MARA-MATNR,
MTART LIKE MARA-MTART,
MATKL LIKE MARA-MATKL,
MEINS LIKE MARA-MEINS,
MBRSH LIKE MARA-MBRSH,
END OF I_MARA.
DATA: BEGIN OF I_MVKE OCCURS 0,
MATNR LIKE MVKE-MATNR,
VKORG LIKE MVKE-VKORG,
VTWEG LIKE MVKE-VTWEG,
VRKME LIKE MVKE-VRKME,
END OF I_MVKE.
DATA: BEGIN OF I_MAKT OCCURS 0,
MATNR LIKE MAKT-MATNR,
SPRAS LIKE MAKT-SPRAS,
MAKTX LIKE MAKT-MAKTX,
END OF I_MAKT.
*
*DATA: BEGIN OF I_OUT OCCURS 0,
MATNR LIKE MARC-MATNR,
MEINS LIKE MARA-MEINS,
MBRSH LIKE MARA-MBRSH,
MATKL LIKE MARA-MATKL,
MTART LIKE MARA-MTART,
WERKS LIKE MARD-WERKS,
EKGRP LIKE MARC-EKGRP,
PSTAT LIKE MARC-PSTAT,
LGORT LIKE MARD-LGORT,
ERSDA LIKE MARD-ERSDA,
LABST LIKE MARD-LABST,
BWKEY LIKE MBEW-BWKEY,
STPRS LIKE MBEW-STPRS,
PEINH LIKE MBEW-PEINH,
VKORG LIKE MVKE-VKORG,
VTWEG LIKE MVKE-VTWEG,
VRKME LIKE MVKE-VRKME,
SPRAS LIKE MAKT-SPRAS,
MAKTX LIKE MAKT-MAKTX,
END OF I_OUT.
&----
*& A T - S E L E C T I O N - S C R E E N *
&----
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-100.
SELECT-OPTIONS: S_MATNR FOR MARA-MATNR .
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-101.
PARAMETERS: P_WERKS LIKE MARD-WERKS OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B2.
START-OF-SELECTION.
perform get_val.
repid = sy-repid.
SELECT MATNR EKGRP PSTAT FROM MARC INTO
CORRESPONDING FIELDS OF TABLE I_MARC
WHERE WERKS = P_WERKS AND MATNR IN S_MATNR.
SELECT MATNR MTART MBRSH MEINS MATKL FROM MARA INTO
CORRESPONDING FIELDS OF TABLE I_MARA FOR ALL ENTRIES IN I_MARC
WHERE MATNR EQ I_MARC-MATNR.
SELECT MATNR SPRAS MAKTX FROM MAKT INTO
CORRESPONDING FIELDS OF TABLE I_MAKT
FOR ALL ENTRIES IN I_MARC
WHERE MATNR = I_MARC-MATNR.
SELECT MATNR LGORT ERSDA LABST WERKS FROM MARD INTO
CORRESPONDING FIELDS OF TABLE
I_MARD FOR ALL ENTRIES IN I_MAKT
WHERE MATNR = I_MAKT-MATNR.
SELECT MATNR BWKEY STPRS PEINH FROM MBEW INTO TABLE I_MBEW
FOR ALL ENTRIES IN I_MARD
WHERE MATNR = I_MARD-MATNR.
SELECT MATNR VKORG VTWEG VRKME FROM MVKE INTO TABLE I_MVKE
FOR ALL ENTRIES IN I_MBEW
WHERE MATNR = I_MBEW-MATNR.
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
i_callback_program = repid
i_callback_user_command = 'HANDLE_USER_COMMAND'
it_fieldcat = rk_mara1
it_events = i_events
tables
t_outtab = i_mara.
if sy-subrc <> 0.
endif.
----
FORM GET_VAL *
----
........ *
----
form get_val.
rk_mara1-fieldname = 'MATNR'.
rk_mara1-ref_fieldname = 'MATNR'.
rk_mara1-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.
rk_mara1-fieldname = 'MEINS'.
rk_mara1-ref_fieldname = 'MEINS'.
rk_mara1-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.
rk_mara1-fieldname = 'MATKL'.
rk_mara1-ref_fieldname = 'MATKL'.
rk_mara1-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.
rk_mara1-fieldname = 'MBRSH'.
rk_mara1-ref_fieldname = 'MBRSH'.
rk_mara1-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.
rk_mard1-fieldname = 'WERKS'.
rk_mard1-ref_fieldname = 'WERKS'.
rk_mard1-ref_tabname = 'MARD'.
append rk_mard to rk_mard1.
rk_mard1-fieldname = 'LGORT'.
rk_mard1-ref_fieldname = 'LGORT'.
rk_mard1-ref_tabname = 'MARD'.
append rk_mard to rk_mard1.
rk_mard1-fieldname = 'ERSDA'.
rk_mard1-ref_fieldname = 'ERSDA'.
rk_mard1-ref_tabname = 'MARD'.
append rk_mard to rk_mard1.
rk_mard1-fieldname = 'LABST'.
rk_mard1-ref_fieldname = 'LABST'.
rk_mard1-ref_tabname = 'MARD'.
append rk_mard to rk_mard1.
rk_marc1-fieldname = 'EKGRP'.
rk_marc1-ref_fieldname = 'EKGRP'.
rk_marc1-ref_tabname = 'MARC'.
append rk_marc to rk_marc1.
rk_marc1-fieldname = 'PSTAT'.
rk_marc1-ref_fieldname = 'PSTAT'.
rk_marc1-ref_tabname = 'MARC'.
append rk_marc to rk_marc1.
rk_mbew1-fieldname = 'BWKEY'.
rk_mbew1-ref_fieldname = 'BWKEY'.
rk_mbew-ref_tabname = 'MBEW'.
append rk_mbew to rk_mbew1.
rk_mbew1-fieldname = 'STPRS'.
rk_mbew1-ref_fieldname = 'STPRS'.
rk_mbew1-ref_tabname = 'MBEW'.
append rk_mbew to rk_mbew1.
rk_mbew1-fieldname = 'PEINH'.
rk_mbew1-ref_fieldname = 'PEINH'.
rk_mbew1-ref_tabname = 'MBEW'.
append rk_mbew to rk_mbew1.
rk_mvke1-fieldname = 'VTWEG'.
rk_mvke1-ref_fieldname = 'VTWEG'.
rk_mvke1-ref_tabname = 'MVKE'.
append rk_mvke to rk_mvke1.
rk_mvke1-fieldname = 'VRKME'.
rk_mvke1-ref_fieldname = 'VRKME'.
rk_mvke1-ref_tabname = 'MVKE'.
append rk_mvke to rk_mvke1.
rk_mvke1-fieldname = 'VKORG'.
rk_mvke1-ref_fieldname = 'VKORG'.
rk_mvke1-ref_tabname = 'MVKE'.
append rk_mvke to rk_mvke1.
rk_mvkt1-fieldname = 'SPRAS'.
rk_mvkt1-ref_fieldname = 'SPRAS'.
rk_mvkt1-ref_tabname = 'MAKT'.
append rk_mvkt to rk_mvkt1.
rk_mvkt1-fieldname = 'MAKTX'.
rk_mvkt1-ref_fieldname = 'MAKTX'.
rk_mvkt1-ref_tabname = 'MAKT'.
append rk_mvkt to rk_mvkt1.
endform. "get_val
----
FORM VAL *
----
........ *
----
--> USER_COMMAND *
--> SEL *
----
form handle_user_command using r_ucomm like sy-ucomm
sel type slis_selfield.
data: cus(10) type n,
sal(10) type n,
mat(10) type c.
case r_ucomm.
when '&IC1'.
if sel-fieldname = 'matnr'.
cus = sel-value.
SELECT MATNR LGORT ERSDA LABST WERKS FROM MARD
INTO TABLE I_MARD WHERE MATNR = cus
AND WERKS = P_WERKS.
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
i_callback_program = repid
i_callback_user_command = 'HANDLE_USER_COMMAND'
it_fieldcat = rk_mard1
it_events = i_events
tables
t_outtab = i_mard.
endif.
endform. "handle_user_command
thanks & regards
seenu
2007 Feb 07 12:18 PM
use rk_MARA instead of rk_MARA1 and similarly to others
<b>rk_mara-</b>fieldname = 'MATNR'.
rk_mara-ref_fieldname = 'MATNR'.
rk_mara-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.
rk_mara-fieldname = 'MEINS'.
rk_mara-ref_fieldname = 'MEINS'.
rk_mara-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.
rk_mara-fieldname = 'MATKL'.
rk_mara-ref_fieldname = 'MATKL'.
rk_mara-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.
rk_mara-fieldname = 'MBRSH'.
rk_mara-ref_fieldname = 'MBRSH'.
rk_mara-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.
2007 Feb 07 12:48 PM
hi chandrasekhar,
i got the output but it is displaying only from only 1 table(i_mara) i need to get o/p from all tables --mara,marc,mard,makt,mvke,mbew. so i'm using FM 'REUSE_ALV_FIELDCATALOG_MERGE'
i moved all data to i_out. plz see the code below.
REPORT Y_RK_TRAIL NO STANDARD PAGE HEADING
LINE-SIZE 221
LINE-COUNT 40(5).
TABLES: MARA,MARC,MARD,MBEW,MVKE,MAKT.
TYPE-POOLS : SLIS.
DATA: REPID LIKE SY-REPID.
DATA: VF_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, " THIS INTERNAL TABLE
" CONTAINS THE FIELD
" ATTRIBUTES
rk_MARA1 type slis_t_fieldcat_alv,
rk_MARA type slis_fieldcat_alv,
rk_MARC1 type slis_t_fieldcat_alv,
rk_MARC type slis_fieldcat_alv,
rk_MARD1 type slis_t_fieldcat_alv,
rk_MARD type slis_fieldcat_alv,
rk_MBEW1 type slis_t_fieldcat_alv,
rk_MBEW type slis_fieldcat_alv,
rk_MVKE1 type slis_t_fieldcat_alv,
rk_MVKE type slis_fieldcat_alv,
rk_MAKT1 type slis_t_fieldcat_alv,
rk_MAKT type slis_fieldcat_alv.
DATA: BEGIN OF I_MARC OCCURS 0,
MATNR LIKE MARC-MATNR,
EKGRP LIKE MARC-EKGRP,
PSTAT LIKE MARC-PSTAT,
END OF I_MARC.
DATA: BEGIN OF I_MARD OCCURS 0,
MATNR LIKE MARD-MATNR,
LGORT LIKE MARD-LGORT,
ERSDA LIKE MARD-ERSDA,
LABST LIKE MARD-LABST,
WERKS LIKE MARD-WERKS,
END OF I_MARD.
DATA: BEGIN OF I_MBEW OCCURS 0,
MATNR LIKE MBEW-MATNR,
BWKEY LIKE MBEW-BWKEY,
STPRS LIKE MBEW-STPRS,
PEINH LIKE MBEW-PEINH,
END OF I_MBEW.
DATA: BEGIN OF I_MARA OCCURS 0,
MATNR LIKE MARA-MATNR,
MTART LIKE MARA-MTART,
MATKL LIKE MARA-MATKL,
MEINS LIKE MARA-MEINS,
MBRSH LIKE MARA-MBRSH,
END OF I_MARA.
DATA: BEGIN OF I_MVKE OCCURS 0,
MATNR LIKE MVKE-MATNR,
VKORG LIKE MVKE-VKORG,
VTWEG LIKE MVKE-VTWEG,
VRKME LIKE MVKE-VRKME,
END OF I_MVKE.
DATA: BEGIN OF I_MAKT OCCURS 0,
MATNR LIKE MAKT-MATNR,
SPRAS LIKE MAKT-SPRAS,
MAKTX LIKE MAKT-MAKTX,
END OF I_MAKT.
DATA: BEGIN OF I_OUT OCCURS 0,
MATNR LIKE MARC-MATNR,
MEINS LIKE MARA-MEINS,
MBRSH LIKE MARA-MBRSH,
MATKL LIKE MARA-MATKL,
MTART LIKE MARA-MTART,
WERKS LIKE MARD-WERKS,
EKGRP LIKE MARC-EKGRP,
PSTAT LIKE MARC-PSTAT,
LGORT LIKE MARD-LGORT,
ERSDA LIKE MARD-ERSDA,
LABST LIKE MARD-LABST,
BWKEY LIKE MBEW-BWKEY,
STPRS LIKE MBEW-STPRS,
PEINH LIKE MBEW-PEINH,
VKORG LIKE MVKE-VKORG,
VTWEG LIKE MVKE-VTWEG,
VRKME LIKE MVKE-VRKME,
SPRAS LIKE MAKT-SPRAS,
MAKTX LIKE MAKT-MAKTX,
END OF I_OUT.
&----
*& A T - S E L E C T I O N - S C R E E N *
&----
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-100.
SELECT-OPTIONS: S_MATNR FOR MARA-MATNR .
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-101.
PARAMETERS: P_WERKS LIKE MARD-WERKS OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B2.
START-OF-SELECTION.
perform get_val.
repid = sy-repid.
SELECT MATNR EKGRP PSTAT FROM MARC INTO
CORRESPONDING FIELDS OF TABLE I_MARC
WHERE WERKS = P_WERKS AND MATNR IN S_MATNR.
SELECT MATNR MTART MBRSH MEINS MATKL FROM MARA INTO
CORRESPONDING FIELDS OF TABLE I_MARA FOR ALL ENTRIES IN I_MARC
WHERE MATNR EQ I_MARC-MATNR.
SELECT MATNR SPRAS MAKTX FROM MAKT INTO
CORRESPONDING FIELDS OF TABLE I_MAKT
FOR ALL ENTRIES IN I_MARC
WHERE MATNR = I_MARC-MATNR.
SELECT MATNR LGORT ERSDA LABST WERKS FROM MARD INTO
CORRESPONDING FIELDS OF TABLE
I_MARD FOR ALL ENTRIES IN I_MAKT
WHERE MATNR = I_MAKT-MATNR.
SELECT MATNR BWKEY STPRS PEINH FROM MBEW INTO TABLE I_MBEW
FOR ALL ENTRIES IN I_MARD
WHERE MATNR = I_MARD-MATNR.
SELECT MATNR VKORG VTWEG VRKME FROM MVKE INTO TABLE I_MVKE
FOR ALL ENTRIES IN I_MBEW
WHERE MATNR = I_MBEW-MATNR.
LOOP AT I_MARC.
MOVE I_MARC-MATNR TO I_OUT-MATNR.
MOVE I_MARC-EKGRP TO I_OUT-EKGRP.
MOVE I_MARC-PSTAT TO I_OUT-PSTAT.
READ TABLE I_MARA WITH KEY MATNR = I_MARC-MATNR.
MOVE I_MARA-MTART TO I_OUT-MTART.
MOVE I_MARA-MBRSH TO I_OUT-MBRSH.
MOVE I_MARA-MEINS TO I_OUT-MEINS.
MOVE I_MARA-MATKL TO I_OUT-MATKL.
READ TABLE I_MAKT WITH KEY MATNR = I_MARC-MATNR.
MOVE I_MAKT-SPRAS TO I_OUT-SPRAS.
MOVE I_MAKT-MAKTX TO I_OUT-MAKTX.
READ TABLE I_MARD WITH KEY MATNR = I_MARC-MATNR.
MOVE I_MARD-LGORT TO I_OUT-LGORT.
MOVE I_MARD-ERSDA TO I_OUT-ERSDA.
MOVE I_MARD-LABST TO I_OUT-LABST.
MOVE I_MARD-WERKS TO I_OUT-WERKS.
READ TABLE I_MBEW WITH KEY MATNR = I_MARC-MATNR.
MOVE I_MBEW-BWKEY TO I_OUT-BWKEY.
MOVE I_MBEW-STPRS TO I_OUT-STPRS.
MOVE I_MBEW-PEINH TO I_OUT-PEINH.
READ TABLE I_MVKE WITH KEY MATNR = I_MARC-MATNR.
MOVE I_MVKE-VKORG TO I_OUT-VKORG.
MOVE I_MVKE-VTWEG TO I_OUT-VTWEG.
MOVE I_MVKE-VRKME TO I_OUT-VRKME.
APPEND I_OUT.
CLEAR I_OUT.
ENDLOOP.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = 'Y_RK_TRAIL'
I_INTERNAL_TABNAME = i_out
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = 'Y_RK_TRAIL'
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = VF_FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 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.
----
FORM GET_VAL *
----
........ *
----
form get_val.
rk_mara-fieldname = 'MATNR'.
rk_mara-ref_fieldname = 'MATNR'.
rk_mara-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.
rk_mara-fieldname = 'MEINS'.
rk_mara-ref_fieldname = 'MEINS'.
rk_mara-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.
rk_mara-fieldname = 'MATKL'.
rk_mara-ref_fieldname = 'MATKL'.
rk_mara-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.
rk_mara-fieldname = 'MBRSH'.
rk_mara-ref_fieldname = 'MBRSH'.
rk_mara-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.
rk_mard-fieldname = 'WERKS'.
rk_mard-ref_fieldname = 'WERKS'.
rk_mard-ref_tabname = 'MARD'.
append rk_mard to rk_mard1.
rk_mard-fieldname = 'LGORT'.
rk_mard-ref_fieldname = 'LGORT'.
rk_mard-ref_tabname = 'MARD'.
append rk_mard to rk_mard1.
rk_mard-fieldname = 'ERSDA'.
rk_mard-ref_fieldname = 'ERSDA'.
rk_mard-ref_tabname = 'MARD'.
append rk_mard to rk_mard1.
rk_mard-fieldname = 'LABST'.
rk_mard-ref_fieldname = 'LABST'.
rk_mard-ref_tabname = 'MARD'.
append rk_mard to rk_mard1.
rk_marc-fieldname = 'EKGRP'.
rk_marc-ref_fieldname = 'EKGRP'.
rk_marc-ref_tabname = 'MARC'.
append rk_marc to rk_marc1.
rk_marc-fieldname = 'PSTAT'.
rk_marc-ref_fieldname = 'PSTAT'.
rk_marc-ref_tabname = 'MARC'.
append rk_marc to rk_marc1.
rk_mbew-fieldname = 'BWKEY'.
rk_mbew-ref_fieldname = 'BWKEY'.
rk_mbew-ref_tabname = 'MBEW'.
append rk_mbew to rk_mbew1.
rk_mbew-fieldname = 'STPRS'.
rk_mbew-ref_fieldname = 'STPRS'.
rk_mbew-ref_tabname = 'MBEW'.
append rk_mbew to rk_mbew1.
rk_mbew-fieldname = 'PEINH'.
rk_mbew-ref_fieldname = 'PEINH'.
rk_mbew-ref_tabname = 'MBEW'.
append rk_mbew to rk_mbew1.
rk_mvke-fieldname = 'VTWEG'.
rk_mvke-ref_fieldname = 'VTWEG'.
rk_mvke-ref_tabname = 'MVKE'.
append rk_mvke to rk_mvke1.
rk_mvke-fieldname = 'VRKME'.
rk_mvke-ref_fieldname = 'VRKME'.
rk_mvke-ref_tabname = 'MVKE'.
append rk_mvke to rk_mvke1.
rk_mvke-fieldname = 'VKORG'.
rk_mvke-ref_fieldname = 'VKORG'.
rk_mvke-ref_tabname = 'MVKE'.
append rk_mvke to rk_mvke1.
rk_makt-fieldname = 'SPRAS'.
rk_makt-ref_fieldname = 'SPRAS'.
rk_makt-ref_tabname = 'MAKT'.
append rk_makt to rk_makt1.
rk_makt-fieldname = 'MAKTX'.
rk_makt-ref_fieldname = 'MAKTX'.
rk_makt-ref_tabname = 'MAKT'.
append rk_makt to rk_makt1.
endform. "get_val
----
FORM VAL *
----
........ *
----
--> USER_COMMAND *
--> SEL *
----
form handle_user_command using r_ucomm like sy-ucomm
sel type slis_selfield.
data: cus(10) type n,
sal(10) type n,
mat(10) type c.
case r_ucomm.
when '&IC1'.
if sel-fieldname = 'matnr'.
cus = sel-value.
SELECT MATNR LGORT ERSDA LABST WERKS FROM MARD
INTO TABLE I_MARD WHERE MATNR = cus
AND WERKS = P_WERKS.
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
i_callback_program = repid
i_callback_user_command = 'HANDLE_USER_COMMAND'
it_fieldcat = rk_mard1
it_events = i_events
tables
t_outtab = i_mard.
endif.
endcase.
endform. "handle_user_command
a runtime error is being shown.
Message was edited by:
seenu sap
2007 Feb 07 12:51 PM
1. change I_OUT to upper case and write in quotes
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = 'Y_RK_TRAIL'
I_INTERNAL_TABNAME = <b>'I_OUT'</b>
2. case r_ucomm.
when '&IC1'.
if sel-fieldname = <b>'MATNR'.</b> " shoule be in upper case
cus = sel-value.
2007 Feb 07 12:57 PM
HI Chandrasekhar,
I am able to execute it but i am not getting the out.
regards
seenu
2007 Feb 07 12:21 PM
Hi
declare type table of
<b>rk_MARA1 type table of slis_t_fieldcat_alv</b>,
also append the work area rk_MARA to rk_MARA1 not visa versa.
Regards
Shiva
2007 Feb 07 12:27 PM
hmmm to be honest, the error message really points out the problem.
rk_mara1 is defined as a table of slis_t_fieldcat_alv.
you can NOT acess any attributes of the table as long as you don´t have a workarea or a headerline.
i Mean the attribute of which record do you want to modify? how could the computer know?
So First make yourself a workarea and loop at your table in your workarea.
OR define your rk_mara1 with headerline.
Tho be told that tables with headerline are very very obsolete and should not be used in new developments.
2007 Feb 07 1:09 PM
Hi seenu,
<b>rk_mara1-fieldname = 'MATNR'.
rk_mara1-ref_fieldname = 'MATNR'.
rk_mara1-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.
rk_mara1-fieldname = 'MEINS'.
rk_mara1-ref_fieldname = 'MEINS'.
rk_mara1-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.
rk_mara1-fieldname = 'MATKL'.
rk_mara1-ref_fieldname = 'MATKL'.
rk_mara1-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.
rk_mara1-fieldname = 'MBRSH'.
rk_mara1-ref_fieldname = 'MBRSH'.
rk_mara1-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.</b>
Change to
clear rk_mara.
rk_mara-fieldname = 'MATNR'.
rk_mara-ref_fieldname = 'MATNR'.
rk_mara-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.
clear rk_mara.
rk_mara-fieldname = 'MEINS'.
rk_mara-ref_fieldname = 'MEINS'.
rk_mara-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.
clear rk_mara.
rk_mara-fieldname = 'MATKL'.
rk_mara-ref_fieldname = 'MATKL'.
rk_mara-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.
clear rk_mara.
rk_mara-fieldname = 'MBRSH'.
rk_mara-ref_fieldname = 'MBRSH'.
rk_mara-ref_tabname = 'MARA'.
append rk_mara to rk_mara1.
The same way change also the remaining field cat because we should append from work area to table like,
append rk_mara to rk_mara1.
here rk_mara is work area
rk_mara1 is table
check this
<b>if sel-fieldname = 'matnr'.</b>
cus = sel-value.
SELECT MATNR LGORT ERSDA LABST WERKS FROM MARD
INTO TABLE I_MARD WHERE MATNR = cus
AND WERKS = P_WERKS.
change it to
<b>if sel-fieldname = 'MATNR'.</b>