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

error in ALV report

Former Member
0 Likes
890

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

7 REPLIES 7
Read only

Former Member
0 Likes
845

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.

Read only

0 Likes
845

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

Read only

0 Likes
845

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.

Read only

0 Likes
845

HI Chandrasekhar,

I am able to execute it but i am not getting the out.

regards

seenu

Read only

Former Member
0 Likes
845

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

Read only

Former Member
0 Likes
845

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.

Read only

Former Member
0 Likes
845

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>