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

alv interactive

Former Member
0 Likes
598

Hi frnds,

Can anyone give me a small example for interactive alv report with function modules not object oriented abap.

looking for ur reply.

regards,

sahakla

3 REPLIES 3
Read only

Former Member
0 Likes
569

Hi,

Check this example..You click on the PO number..It will take you to ME23N transaction for the corresponding PO...

TYPE-POOLS: slis.

DATA: gt_fieldcat TYPE slis_t_fieldcat_alv.

DATA: BEGIN OF wa_ekko,

ebeln like ekko-ebeln,

ekorg like ekko-ekorg,

ekgrp like ekko-ekgrp,

END OF wa_ekko.

DATA: v_repid TYPE syrepid.

v_repid = sy-repid.

DATA it_ekko LIKE STANDARD TABLE OF wa_ekko WITH HEADER LINE.

SELECT * UP TO 100 ROWS

FROM ekko

INTO CORRESPONDING FIELDS OF TABLE it_ekko.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = v_repid

i_internal_tabname = 'WA_EKKO'

i_inclname = v_repid

CHANGING

ct_fieldcat = gt_fieldcat.

  • have hotspot for a PO.

DATA: s_fieldcat LIKE LINE OF gt_fieldcat.

s_fieldcat-hotspot = 'X'.

MODIFY gt_fieldcat FROM s_fieldcat TRANSPORTING hotspot

WHERE fieldname = 'EBELN'.

  • Pass the program.

v_repid = sy-repid.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

i_callback_program = v_repid

it_fieldcat = gt_fieldcat

i_callback_user_command = 'USER_COMMAND'

TABLES

t_outtab = it_ekko.

----


  • FORM display_detail *

----


  • ........ *

----


  • --> UCOMM *

  • --> SELFIELD *

----


FORM user_command USING ucomm LIKE sy-ucomm

selfield TYPE slis_selfield.

IF ucomm = '&IC1'.

READ TABLE it_ekko INDEX selfield-tabindex.

IF sy-subrc = 0.

SET PARAMETER ID 'BES' FIELD it_ekko-ebeln.

CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

ENDIF.

ENDIF.

ENDFORM.

Thanks,

Naren

Read only

rahulkavuri
Active Contributor
0 Likes
569

hi check this example, this works fine, just copy and run this code

https://forums.sdn.sap.com/click.jspa?searchID=1476649&messageID=3124289

REPORT Z_50657_ALV_EX5 NO STANDARD PAGE HEADING

LINE-COUNT 65(3)

LINE-SIZE 220

MESSAGE-ID ZZ.

************************************************************************

  • Type Pools *

************************************************************************

TYPE-POOLS: SLIS, ICON.

************************************************************************

  • Tables *

************************************************************************

TABLES : VBRK, "Billing Master table

VBRP. "Billing Item table

************************************************************************

  • VARIABLES DECLARATION *

************************************************************************

DATA: STR_DATE LIKE SY-DATUM.

DATA: X_FIELDCAT_VBRK TYPE SLIS_FIELDCAT_ALV,

IT_FIELDCAT_VBRK TYPE SLIS_T_FIELDCAT_ALV.

DATA: X_FIELDCAT_VBRP TYPE SLIS_FIELDCAT_ALV,

IT_FIELDCAT_VBRP TYPE SLIS_T_FIELDCAT_ALV.

DATA: L_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA: CUR_VBELN(15), CUR_VBELN_VALUE(15).

DATA: TEMP_VBELN(10).

DATA: CTAB LIKE SY-TABIX.

************************************************************************

  • Internal Tables *

************************************************************************

  • Internal table to hold data from VBRK

DATA: BEGIN OF IT_VBRK OCCURS 0,

VBELN LIKE VBRK-VBELN,

WAERK LIKE VBRK-WAERK,

VKORG LIKE VBRK-VKORG,

FKDAT LIKE VBRK-FKDAT,

BUKRS LIKE VBRK-BUKRS,

BUTXT LIKE T001-BUTXT,

CHECK(1) TYPE C,

END OF IT_VBRK.

  • Internal table to hold data from VBRP

DATA: BEGIN OF IT_VBRP OCCURS 0,

VBELN LIKE VBRP-VBELN,

POSNR LIKE VBRP-POSNR,

FKIMG LIKE VBRP-FKIMG,

VRKME LIKE VBRP-VRKME,

NETWR LIKE VBRP-NETWR,

MATNR LIKE VBRP-MATNR,

ARKTX LIKE VBRP-ARKTX,

END OF IT_VBRP.

DATA: BEGIN OF IT_T001 OCCURS 0,

BUKRS LIKE T001-BUKRS,

BUTXT LIKE T001-BUTXT,

END OF IT_T001.

************************************************************************

  • Selection-Screen *

************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS: S_VBELN FOR VBRK-VBELN,

S_FKDAT FOR VBRK-FKDAT,

S_MATNR FOR VBRP-MATNR.

SELECTION-SCREEN END OF BLOCK B1.

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-001.

PARAMETERS : LIST RADIOBUTTON GROUP G1,

GRID RADIOBUTTON GROUP G1 DEFAULT 'X'.

SELECTION-SCREEN END OF BLOCK B2.

************************************************************************

                                  • INITIALIZATION ********************

************************************************************************

INITIALIZATION.

STR_DATE = SY-DATUM - 200.

S_FKDAT-LOW = STR_DATE.

S_FKDAT-HIGH = SY-DATUM.

S_FKDAT-SIGN = 'I'.

APPEND S_FKDAT.

************************************************************************

  • At Selection-Screen Output *

************************************************************************

AT SELECTION-SCREEN OUTPUT .

LOOP AT SCREEN.

IF SCREEN-NAME = 'S_FKDAT-HIGH'.

SCREEN-INPUT = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

************************************************************************

  • At Selection-Screen *

************************************************************************

AT SELECTION-SCREEN.

PERFORM VALIDATION.

************************************************************************

  • Start of Selection *

************************************************************************

START-OF-SELECTION.

*POPULATION OF DATA INTO INTERNAL TABLE IT_VBRK AND IT_VBRP

PERFORM GET_DATA_VBRK.

PERFORM FIELDCATALOG_CHANGE.

*ALV GRID/LIST DISPLAY

PERFORM FIRST_SCREEN_DISPLAY.

&----


*& Form VALIDATION

&----


  • text

----


FORM VALIDATION.

IF S_VBELN[] IS NOT INITIAL.

SELECT SINGLE VBELN

FROM VBRK

INTO VBRK-VBELN

WHERE VBELN IN S_VBELN.

IF SY-SUBRC <> 0.

MESSAGE I000 WITH 'PLEASE ENTER CORRECT BILLING DOCUMENT'.

STOP.

ENDIF.

ENDIF.

IF S_FKDAT[] IS INITIAL.

MESSAGE I000 WITH 'PLEASE ENTER ALL THE MANDATORY FIELDS'.

STOP.

ENDIF.

IF S_MATNR[] IS NOT INITIAL.

SELECT SINGLE MATNR

FROM MARA

INTO VBRP-MATNR

WHERE MATNR IN S_MATNR.

IF SY-SUBRC <> 0.

MESSAGE I000 WITH 'PLEASE ENTER CORRECT MATERIAL NUMBER'.

STOP.

ENDIF.

ENDIF.

ENDFORM. "VALIDATION

&----


*& Form GET_DATA_VBRK

&----


  • text

----


FORM GET_DATA_VBRK.

SELECT VBELN

WAERK

VKORG

FKDAT

BUKRS

FROM VBRK INTO TABLE IT_VBRK

WHERE VBELN IN S_VBELN

AND FKDAT IN S_FKDAT.

SORT IT_VBRK BY VBELN BUKRS.

SELECT BUKRS

BUTXT

FROM T001 INTO TABLE IT_T001

FOR ALL ENTRIES IN IT_VBRK

WHERE BUKRS = IT_VBRK-BUKRS.

LOOP AT IT_VBRK.

CTAB = SY-TABIX.

LOOP AT IT_T001 WHERE BUKRS = IT_VBRK-BUKRS.

IF SY-SUBRC = 0.

IT_VBRK-BUTXT = IT_T001-BUTXT.

MODIFY IT_VBRK INDEX CTAB.

CLEAR CTAB.

ENDIF.

ENDLOOP.

ENDLOOP.

ENDFORM. "GET_DATA

&----


*& Form FIELDCATALOG_CHANGE

&----


  • text

----


FORM FIELDCATALOG_CHANGE.

*Layout Change

L_LAYOUT-ZEBRA = 'X'.

  • L_LAYOUT-BOX_FIELDNAME = 'CHECK'.

*Define seperate Color for the fields

X_FIELDCAT_VBRK-COL_POS = 1.

X_FIELDCAT_VBRK-FIELDNAME = 'CHECK'.

X_FIELDCAT_VBRK-SELTEXT_M = 'chek'.

X_FIELDCAT_VBRK-CHECKBOX = 'X'.

X_FIELDCAT_VBRK-INPUT = 'X'.

X_FIELDCAT_VBRK-EDIT = 'X'.

APPEND X_FIELDCAT_VBRK TO IT_FIELDCAT_VBRK.

CLEAR X_FIELDCAT_VBRK.

X_FIELDCAT_VBRK-COL_POS = 2.

X_FIELDCAT_VBRK-TABNAME = 'IT_VBRK'.

X_FIELDCAT_VBRK-FIELDNAME = 'VBELN'.

X_FIELDCAT_VBRK-EMPHASIZE = 'C301'.

X_FIELDCAT_VBRK-OUTPUTLEN = 15.

APPEND X_FIELDCAT_VBRK TO IT_FIELDCAT_VBRK.

CLEAR X_FIELDCAT_VBRK.

X_FIELDCAT_VBRK-TABNAME = 'IT_VBRK'.

X_FIELDCAT_VBRK-FIELDNAME = 'WAERK'.

X_FIELDCAT_VBRK-EMPHASIZE = 'C201'.

X_FIELDCAT_VBRK-OUTPUTLEN = 15.

APPEND X_FIELDCAT_VBRK TO IT_FIELDCAT_VBRK.

CLEAR X_FIELDCAT_VBRK.

X_FIELDCAT_VBRK-TABNAME = 'IT_VBRK'.

X_FIELDCAT_VBRK-FIELDNAME = 'VKORG'.

X_FIELDCAT_VBRK-EMPHASIZE = 'C300'.

X_FIELDCAT_VBRK-OUTPUTLEN = 15.

APPEND X_FIELDCAT_VBRK TO IT_FIELDCAT_VBRK.

CLEAR X_FIELDCAT_VBRK.

X_FIELDCAT_VBRK-TABNAME = 'IT_VBRK'.

X_FIELDCAT_VBRK-FIELDNAME = 'FKDAT'.

X_FIELDCAT_VBRK-EMPHASIZE = 'C600'.

X_FIELDCAT_VBRK-OUTPUTLEN = 15.

APPEND X_FIELDCAT_VBRK TO IT_FIELDCAT_VBRK.

CLEAR X_FIELDCAT_VBRK.

X_FIELDCAT_VBRK-TABNAME = 'IT_VBRK'.

X_FIELDCAT_VBRK-FIELDNAME = 'BUKRS'.

X_FIELDCAT_VBRK-EMPHASIZE = 'C400'.

X_FIELDCAT_VBRK-OUTPUTLEN = 15.

APPEND X_FIELDCAT_VBRK TO IT_FIELDCAT_VBRK.

CLEAR X_FIELDCAT_VBRK.

X_FIELDCAT_VBRK-TABNAME = 'IT_VBRK'.

X_FIELDCAT_VBRK-FIELDNAME = 'BUTXT'.

X_FIELDCAT_VBRK-EMPHASIZE = 'C500'.

X_FIELDCAT_VBRK-OUTPUTLEN = 15.

APPEND X_FIELDCAT_VBRK TO IT_FIELDCAT_VBRK.

CLEAR X_FIELDCAT_VBRK.

ENDFORM. "FIELDCATALOG_CHANGE

&----


*& Form FIRST_SCREEN_DISPLAY

&----


  • text

----


FORM FIRST_SCREEN_DISPLAY.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'IT_VBRK'

I_INCLNAME = SY-REPID

CHANGING

CT_FIELDCAT = IT_FIELDCAT_VBRK

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.

  • CHECK RADIO BUTTON SELECTION AND ACCORDINGLY DISPLAY LIST OR GRID ALV

IF LIST = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

I_CALLBACK_PF_STATUS_SET = 'STATUS'

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

IS_LAYOUT = L_LAYOUT

IT_FIELDCAT = IT_FIELDCAT_VBRK

  • IT_EVENTS =

TABLES

T_OUTTAB = IT_VBRK

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2

.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CLEAR LIST.

ENDIF.

IF GRID = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

I_CALLBACK_PF_STATUS_SET = 'STATUS'

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

IS_LAYOUT = L_LAYOUT

IT_FIELDCAT = IT_FIELDCAT_VBRK

  • IT_EVENTS =

TABLES

T_OUTTAB = IT_VBRK

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2

.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CLEAR GRID.

ENDIF.

ENDFORM. "FIRST_SCREEN_DISPLAY

&----


*& Form STATUS

&----


  • text

----


  • -->P_EXTAB text

----


FORM STATUS USING P_EXTAB TYPE SLIS_T_EXTAB.

SET PF-STATUS 'STATUS' EXCLUDING P_EXTAB.

ENDFORM. "STATUS

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->RS_SELFIELD text

----


FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN 'BACK' OR 'CANC' OR 'EXIT'.

LEAVE TO SCREEN 0.

WHEN '&IC1'.

IF RS_SELFIELD-FIELDNAME = 'VBELN'.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = RS_SELFIELD-VALUE

IMPORTING

OUTPUT = TEMP_VBELN.

  • TEMP_VBELN = RS_SELFIELD-VALUE.

PERFORM GET_DATA_VBRP.

PERFORM GET_SECOND_SCREEN_DISPLAY.

ENDIF.

ENDCASE.

ENDFORM. "USER_COMMAND

&----


*& Form GET_DATA_VBRP

&----


  • text

----


FORM GET_DATA_VBRP.

SELECT VBELN

POSNR

FKIMG

VRKME

NETWR

MATNR

ARKTX

FROM VBRP INTO TABLE IT_VBRP

WHERE VBELN = TEMP_VBELN.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH ' NO BILLING DETAILS FOUND'.

EXIT.

ENDIF.

ENDFORM. "GET_DATA_VBRP

&----


*& Form GET_SECOND_SCREEN_DISPLAY

&----


  • text

----


FORM GET_SECOND_SCREEN_DISPLAY.

  • FIELDCATALOG CALL

X_FIELDCAT_VBRP-TABNAME = 'IT_VBRP'.

X_FIELDCAT_VBRP-FIELDNAME = 'VRKME'.

X_FIELDCAT_VBRP-EMPHASIZE = 'C500'.

X_FIELDCAT_VBRP-OUTPUTLEN = 10.

APPEND X_FIELDCAT_VBRP TO IT_FIELDCAT_VBRP.

CLEAR X_FIELDCAT_VBRP.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'IT_VBRP'

I_INCLNAME = SY-REPID

CHANGING

CT_FIELDCAT = IT_FIELDCAT_VBRP

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.

  • CHECK RADIO BUTTON SELECTION AND ACCORDINGLY DISPLAY LIST OR GRID ALV

IF LIST = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

I_CALLBACK_PF_STATUS_SET = 'STATUS'

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

IS_LAYOUT = L_LAYOUT

IT_FIELDCAT = IT_FIELDCAT_VBRP

I_SCREEN_START_COLUMN = 1

I_SCREEN_START_LINE = 1

I_SCREEN_END_COLUMN = 100

I_SCREEN_END_LINE = 10

  • IT_EVENTS =

TABLES

T_OUTTAB = IT_VBRP

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2

.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDIF.

IF GRID = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

I_CALLBACK_PF_STATUS_SET = 'STATUS'

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

IS_LAYOUT = L_LAYOUT

IT_FIELDCAT = IT_FIELDCAT_VBRP

I_SCREEN_START_COLUMN = 1

I_SCREEN_START_LINE = 1

I_SCREEN_END_COLUMN = 100

I_SCREEN_END_LINE = 10

  • IT_EVENTS =

TABLES

T_OUTTAB = IT_VBRP

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2

.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDIF.

ENDFORM. "GET_SECOND_SCREEN_DISPLA

Read only

Former Member
0 Likes
569

REPORT xxxxxx

&----


*& I N I T I A L I Z A T I O N *

&----


INITIALIZATION.

TABLES: MARA,MARC,MARD,MBEW,MVKE.

TYPE-POOLS: SLIS.

DATA: t_fieldcatalog1 TYPE slis_t_fieldcat_alv.

DATA: t_fieldcatalog2 TYPE slis_t_fieldcat_alv.

PERFORM get_fieldcat1.

PERFORM get_fieldcat2.

DATA : FNAM(10),FVAL(10).

DATA: BEGIN OF I_MARA OCCURS 0,

MATNR LIKE MARA-MATNR,

MTART LIKE MARA-MTART,

MATKL LIKE mara-matkl,

MEINS LIKE MARA-MEINS,

END OF I_MARA.

DATA: BEGIN OF I_MARC OCCURS 0,

MATNR LIKE MARC-MATNR,

WERKS LIKE MARC-WERKS,

END OF I_MARC.

DATA: BEGIN OF I_MARD OCCURS 0,

MATNR LIKE MARD-MATNR,

LGORT LIKE MARD-LGORT,

WERKS LIKE MARD-WERKS,

END OF I_MARD.

DATA: BEGIN OF I_MBEW OCCURS 0,

MATNR LIKE MBEW-MATNR,

LBKUM LIKE MBEW-LBKUM,

END OF I_MBEW.

DATA: BEGIN OF I_MVKE OCCURS 0,

MATNR LIKE MVKE-MATNR,

VKORG LIKE MVKE-VKORG,

END OF I_MVKE.

DATA: BEGIN OF I_TAB OCCURS 0,

MATNR LIKE MARC-MATNR,

MTART LIKE MARA-MTART,

MATKL LIKE mara-matkl,

MEINS LIKE MARA-MEINS,

WERKS LIKE MARC-WERKS,

LGORT LIKE MARD-LGORT,

LBKUM LIKE MBEW-LBKUM,

VKORG LIKE MVKE-VKORG,

END OF I_TAB.

DATA: BEGIN OF i_tab2 OCCURS 0,

matnr TYPE MARD-matnr,

LGORT TYPE MARD-LGORT,

END OF i_tab2.

&----


*& 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.

PARAMETERS: P_WERKS LIKE MARC-WERKS OBLIGATORY.

SELECT-OPTIONS: S_MATNR FOR MARC-MATNR,

S_LGORT FOR MARD-LGORT.

SELECTION-SCREEN END OF BLOCK B1.

*INITIALIZATION.

*

  • P_WERKS = '3000'.

  • S_MATNR-SIGN = 'I'.

  • S_MATNR-OPTION = 'EQ'.

  • S_MATNR-LOW = '1'.

  • S_MATNR-HIGH = '1000'.

  • APPEND S_MATNR.

  • CLEAR S_MATNR.

&----


*& T O P O F P A G E *

&----


TOP-OF-PAGE.

WRITE 😕 SY-ULINE,

SY-VLINE,

3 'MATNUM',

11 SY-VLINE,

14 'MATTYPE',

22 SY-VLINE,

25 'MATGRP',

32 SY-VLINE,

34 'UNITS',

41 SY-VLINE,

44 'STRGLOC',

54 SY-VLINE,

58 'TOTSTOCKS',

72 SY-VLINE,

75 'SALESORG',

85 SY-VLINE,

SY-ULINE.

&----


*& E N D O F P A G E *

&----


END-OF-PAGE.

WRITE : /80 'PAGNO:',SY-PAGNO.

&----


*& S T A R T O F S E L E C T I O N *

&----


START-OF-SELECTION.

SELECT MATNR WERKS

FROM MARC

INTO TABLE I_MARC

WHERE WERKS = P_WERKS

AND MATNR IN S_MATNR.

SELECT MATNR MTART MATKL MEINS

FROM MARA

INTO TABLE I_MARA FOR ALL ENTRIES IN I_MARC

WHERE MATNR = I_MARC-MATNR.

SELECT MATNR LGORT

FROM MARD

INTO TABLE I_MARD FOR ALL ENTRIES IN I_MARC

WHERE MATNR = I_MARC-MATNR

AND LGORT IN S_LGORT.

SELECT MATNR LBKUM

FROM MBEW

INTO TABLE I_MBEW FOR ALL ENTRIES IN I_MARC

WHERE MATNR = I_MARC-MATNR.

SELECT MATNR VKORG

FROM MVKE

INTO TABLE I_MVKE FOR ALL ENTRIES IN I_MARC

WHERE MATNR = I_MARC-MATNR.

&----


*& E N D O F S E L E C T I O N *

&----


END-OF-SELECTION.

LOOP AT I_MARC.

MOVE I_MARC-MATNR TO I_TAB-MATNR.

MOVE I_MARC-WERKS TO I_TAB-WERKS.

READ TABLE I_MARA WITH KEY MATNR = I_MARC-MATNR.

MOVE I_MARA-MTART TO I_TAB-MTART.

MOVE I_MARA-MATKL TO I_TAB-MATKL.

MOVE I_MARA-MEINS TO I_TAB-MEINS.

READ TABLE I_MARD WITH KEY MATNR = I_MARC-MATNR.

MOVE I_MARD-LGORT TO I_TAB-LGORT.

READ TABLE I_MBEW WITH KEY MATNR = I_MARC-MATNR.

MOVE I_MBEW-LBKUM TO I_TAB-LBKUM.

READ TABLE I_MVKE WITH KEY MATNR = I_MARC-MATNR.

MOVE I_MVKE-VKORG TO I_TAB-VKORG.

APPEND I_TAB.

ENDLOOP.

*LOOP AT I_TAB.

*WRITE: / SY-VLINE,

  • 4 I_TAB-MATNR,

  • 11 SY-VLINE,

  • 15 I_TAB-MTART,

  • 22 SY-VLINE,

  • 25 I_TAB-MATKL,

  • 32 SY-VLINE,

  • 35 I_TAB-MEINS,

  • 41 SY-VLINE,

  • 45 I_TAB-LGORT,

  • 54 SY-VLINE,

  • 56 I_TAB-LBKUM,

  • 72 SY-VLINE,

  • 77 I_TAB-VKORG,

  • 85 SY-VLINE,

  • SY-ULINE.

  • HIDE I_TAB-MATNR.

  • ENDLOOP.

SELECT MATNR LGORT

FROM MARD

INTO TABLE I_TAB2 FOR ALL ENTRIES IN I_TAB

WHERE MATNR = I_TAB-MATNR.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

i_callback_program = 'ZMAT_EXAM'

i_callback_user_command = 'DISPLAY_DETAIL'

it_fieldcat = t_fieldcatalog1

TABLES

t_outtab = i_tab.

IF SY-SUBRC <> 0.

ENDIF.

FORM display_detail USING ucomm LIKE sy-ucomm

selfield TYPE slis_selfield.

DATA: itab2_temp LIKE i_tab2 OCCURS 0 WITH HEADER LINE.

READ TABLE i_tab INDEX selfield-tabindex.

LOOP AT i_tab2 WHERE MATNR = i_tab-MATNR.

MOVE i_tab2 TO itab2_temp.

APPEND itab2_temp.

ENDLOOP.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

i_callback_program = 'ZMAT_EXAM'

it_fieldcat = t_fieldcatalog2

TABLES

t_outtab = i_mard.

IF SY-SUBRC <> 0.

ENDIF.

ENDFORM.

FORM get_fieldcat1.

DATA: s_fieldcatalog TYPE slis_fieldcat_alv.

s_fieldcatalog-col_pos = '1'.

s_fieldcatalog-fieldname = 'MATNR'.

s_fieldcatalog-tabname = 'I_TAB'.

s_fieldcatalog-rollname = 'MATNR'.

s_fieldcatalog-hotspot = 'X'.

APPEND s_fieldcatalog TO t_fieldcatalog1.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '2'.

s_fieldcatalog-fieldname = 'MTART'.

s_fieldcatalog-tabname = 'I_TAB'.

s_fieldcatalog-rollname = 'MTART'.

APPEND s_fieldcatalog TO t_fieldcatalog1.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '3'.

s_fieldcatalog-fieldname = 'MATKL'.

s_fieldcatalog-tabname = 'I_TAB'.

s_fieldcatalog-rollname = 'MATKL'.

APPEND s_fieldcatalog TO t_fieldcatalog1.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '4'.

s_fieldcatalog-fieldname = 'MEINS'.

s_fieldcatalog-tabname = 'I_TAB'.

s_fieldcatalog-rollname = 'MEINS'.

APPEND s_fieldcatalog TO t_fieldcatalog1.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '5'.

s_fieldcatalog-fieldname = 'WERKS'.

s_fieldcatalog-tabname = 'I_TAB'.

s_fieldcatalog-rollname = 'WERKS'.

s_fieldcatalog-hotspot = 'X'.

APPEND s_fieldcatalog TO t_fieldcatalog1.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '6'.

s_fieldcatalog-fieldname = 'LGORT'.

s_fieldcatalog-tabname = 'I_TAB'.

s_fieldcatalog-rollname = 'LGORT'.

APPEND s_fieldcatalog TO t_fieldcatalog1.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '7'.

s_fieldcatalog-fieldname = 'LBKUM'.

s_fieldcatalog-tabname = 'I_TAB'.

s_fieldcatalog-rollname = 'LBKUM'.

APPEND s_fieldcatalog TO t_fieldcatalog1.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '8'.

s_fieldcatalog-fieldname = 'VKORG'.

s_fieldcatalog-tabname = 'I_TAB'.

s_fieldcatalog-rollname = 'VKORG'.

APPEND s_fieldcatalog TO t_fieldcatalog1.

CLEAR s_fieldcatalog.

ENDFORM.

FORM get_fieldcat2.

DATA: s_fieldcatalog TYPE slis_fieldcat_alv.

s_fieldcatalog-col_pos = '1'.

s_fieldcatalog-fieldname = 'MATNR'.

s_fieldcatalog-tabname = 'I_TAB2'.

s_fieldcatalog-rollname = 'MATNR'.

APPEND s_fieldcatalog TO t_fieldcatalog2.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '2'.

s_fieldcatalog-fieldname = 'LGORT'.

s_fieldcatalog-tabname = 'I_TAB2'.

s_fieldcatalog-rollname = 'LGORT'.

APPEND s_fieldcatalog TO t_fieldcatalog2.

CLEAR s_fieldcatalog.

ENDFORM.

<b>Reward points if code is usefull</b>