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

Regarding ALV

Former Member
0 Likes
472

hi

can anyone explain a report in alv by using tables more than 2.....

i've generated a report in alv by using only one table

plz help me

HI,

Here is a list of report code for ur reference.

<b> ALV All in ONe</b>

REPORT ZMK_ALLINONE_ALV .

&----


*& Program for displaying data using function modules : *

*& REUSE_ALV_LIST_DISPLAY *

*& REUSE_ALV_POPUP_TO_SELECT *

*& REUSE_ALV_GRID_DISPLAY *

*& *

&----


TABLES VBAK.

DATA it_vbak LIKE VBAK OCCURS 0 WITH HEADER LINE.

SELECTION-SCREEN uline.

PARAMETERS: ALV1 RADIOBUTTON GROUP ALV, "REUSE_ALV_LIST_DISPLAY

ALV2 RADIOBUTTON GROUP ALV, "REUSE_ALV_POPUP_TO_SELECT

ALV3 RADIOBUTTON GROUP ALV, "REUSE_ALV_GRID_DISPLAY

ALV4 RADIOBUTTON GROUP ALV. " NORMAL DISPLAY

SELECTION-SCREEN uline.

SELECT * FROM VBAK

INTO CORRESPONDING FIELDS OF TABLE it_vbak

UP TO 10 ROWS.

IF ALV1 = 'X'.

PERFORM ALV_FUNC1.

ELSEIF ALV2 = 'X'.

PERFORM ALV_FUNC2.

ELSEIF ALV3 = 'X'.

PERFORM ALV_FUNC3.

ELSEIF ALV4 = 'X'.

PERFORM NORM.

ENDIF.

&----


*& Form ALV_FUNC1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM ALV_FUNC1 .

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_STRUCTURE_NAME = 'VBAK'

TABLES

T_OUTTAB = it_vbak

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.

ENDFORM. " ALV_FUNC1

&----


*& Form ALV_FUNC2

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM ALV_FUNC2 .

CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'

EXPORTING

I_TITLE = 'SALES ORDER INFO'

I_ZEBRA = 'X'

I_TABNAME = 1

I_STRUCTURE_NAME = 'vbak'

TABLES

T_OUTTAB = it_vbak

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.

ENDFORM. " ALV_FUNC2

&----


*& Form ALV_FUNC3

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM ALV_FUNC3 .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_STRUCTURE_NAME = 'vbak'

I_GRID_TITLE = 'SALES ORDER INFO'

TABLES

T_OUTTAB = it_vbak

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.

ENDFORM. " ALV_FUNC3

&----


*& Form NORM

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM NORM .

format intensified.

skip 1.

WRITE: /'SALES DOC.',

' Created on ',

' Time',

' Created by',

' Valid from ',

' Sold-to party'.

format intensified off.

skip 2.

LOOP AT it_vbak.

write: / it_vbak-vbeln,' ',

it_vbak-erdat,' ',

it_vbak-erzet,' ',

it_vbak-ERNAM,' ',

it_vbak-ANGDT,' ',

it_vbak-KUNNR.

endloop.

ENDFORM. " NORM

REPORT ZMK_SHIPMENT_ALV

no standard page heading

line-size 105

line-count 50(5)

message-id zz.

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

  • TABLES *

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

tables : vttk, "Shipment Header

vttp, " Shipment Item

lips. " Delivary Item

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

***TYPE-POOLS *

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

type-pools : slis.

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

*WORK AREAS *

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

  • Work area for field catalog table

data : wa_fldcat type slis_fieldcat_alv.

  • Work area for Events table

data : wa_events type slis_alv_event.

  • Work area for layout.

data : wa_layout type slis_layout_alv.

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

*INTERNAL TABLES *

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

  • Shimpment Details

data : begin of itab occurs 0,

tknum like vttk-tknum,

shtyp like vttk-shtyp,

tpnum like vttp-tpnum,

vbeln like vttp-vbeln,

end of itab.

data : begin of itab1 occurs 0,

vbeln like lips-vbeln,

posnr like lips-posnr,

matnr like lips-matnr,

lfimg like lips-lfimg,

meins like lips-meins,

end of itab1.

  • For field catalog table

data : it_fldcats type slis_t_fieldcat_alv.

  • For Events table

data : it_event type slis_t_event.

  • For layout.

data : it_layout type slis_layout_alv.

  • For field catalog table

data : it_fldcats1 type slis_t_fieldcat_alv.

  • For Events table

data : it_event1 type slis_t_event.

data : v_repid like sy-repid.

*Data Declaration

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

data: v_index type sy-index,

v_vbeln like lips-vbeln.

*SELECT-OPTIONS

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

selection-screen begin of block b with frame title text-001.

select-options : s_tknum for vttk-tknum .

selection-screen end of block b.

*INITIALIZATION

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

initialization.

v_repid = sy-repid.

*START-OF-SELCTION

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

start-of-selection.

perform populate-data.

sort itab by tknum.

top-of-page.

write : 'Shipment wise Delivary Report'.

end-of-selection.

perform build-fieldcatalog.

perform modify-fieldcatalog.

perform build-events.

perform modify-events.

perform set-layout.

  • perform set-pfstatus.

perform list-display.

&----


*& Form populate-data

  • Retrives the Shipment data depending on the selection criteria *

&----


FORM populate-data.

select vttk~tknum

vttk~shtyp

vttp~tpnum

vttp~vbeln

into table itab

from vttk

join vttp

on vttptknum = vttktknum

where vttk~tknum in s_tknum.

if sy-subrc <> 0.

message e999 with 'NO DATA FOUND'.

exit.

endif.

ENDFORM. " populate-data

&----


*& Form build-fieldcatalog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form build-fieldcatalog.

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = v_repid

i_internal_tabname = 'ITAB'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

changing

ct_fieldcat = it_fldcats

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.

endform. " BUILD-FIELDCATALOG

&----


*& Form build-events

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build-events.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = it_event

EXCEPTIONS

LIST_TYPE_WRONG = 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.

ENDFORM. " build-events

&----


*& Form set-layout

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM set-layout.

wa_layout-zebra = 'X'.

wa_layout-colwidth_optimize = 'X'.

wa_layout-no_colhead = space.

wa_layout-no_vline = space.

ENDFORM. " set-layout

&----


*& Form list-display

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM list-display.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

  • I_STRUCTURE_NAME =

IS_LAYOUT = wa_layout

IT_FIELDCAT = it_fldcats

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = it_event

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = itab

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.

ENDFORM. " list-display

&----


*& Form modify-fieldcatalog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify-fieldcatalog.

loop at it_fldcats into wa_fldcat.

case wa_fldcat-fieldname.

when 'TKNUM'.

wa_fldcat-seltext_l = 'Ship No.'.

wa_fldcat-col_pos = 1.

wa_fldcat-ddictxt = 'L'.

when 'SHTYP'.

wa_fldcat-seltext_l = 'Ship Type'.

wa_fldcat-col_pos = 2.

wa_fldcat-ddictxt = 'L'.

when 'TPNUM'.

wa_fldcat-seltext_l = 'Item No.'.

wa_fldcat-col_pos = 3.

wa_fldcat-ddictxt = 'L'.

when 'VBELN'.

wa_fldcat-seltext_l = 'Delivary No.'.

wa_fldcat-hotspot = 'X'.

wa_fldcat-emphasize = 'C311'.

wa_fldcat-col_pos = 4.

wa_fldcat-ddictxt = 'L'.

endcase.

modify it_fldcats from wa_fldcat.

endloop.

ENDFORM. " modify-fieldcatalog

&----


*& Form modify-events

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form modify-events.

read table it_event with key name =

slis_ev_top_of_page into wa_events.

if sy-subrc = 0.

wa_events-form = 'HEADER-OF-REPORT'.

modify it_event from wa_events index sy-tabix.

clear wa_events.

endif.

read table it_event with key name =

slis_ev_end_of_page into wa_events.

if sy-subrc = 0.

wa_events-form = 'FOOTER-OF-REPORT'.

modify it_event from wa_events index sy-tabix.

clear wa_events.

endif.

endform. " modify-events

&----


*& Form HEADER-OF-REPORT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM HEADER-OF-REPORT.

write : 'Shipment Wise Delivary Report'.

ENDFORM. " HEADER-OF-REPORT

&----


*& Form FOOTER-OF-REPORT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FOOTER-OF-REPORT.

write : 'End of Report'.

ENDFORM. " FOOTER-OF-REPORT

&----


*& Form USER_COMMAND

&----


  • User command for Calling Transaction VT03N, Execute and Refresh

----


FORM user_command USING p_ucomm LIKE sy-ucomm

p_selfield TYPE slis_selfield.

V_INDEX = P_SELFIELD-TABINDEX. " holds the selected table index

CASE p_ucomm.

WHEN '&IC1'.

IF p_selfield-fieldname eq 'VBELN'.

perform secondary_list.

ENDIF.

ENDCASE.

ENDFORM. " USER_COMMAND

&----


*& Form secondary_list

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM secondary_list.

perform get_data1.

perform build-fieldcatalog1.

perform modify-fieldcatalog1.

perform build-events1.

perform modify-events1.

  • perform set-layout.

  • perform set-pfstatus.

perform list-display1.

ENDFORM. " secondary_list

&----


*& Form build-fieldcatalog1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build-fieldcatalog1.

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = v_repid

i_internal_tabname = 'ITAB1'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

changing

ct_fieldcat = it_fldcats1

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.

ENDFORM. " build-fieldcatalog1

&----


*& Form modify-fieldcatalog1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify-fieldcatalog1.

loop at it_fldcats into wa_fldcat.

case wa_fldcat-fieldname.

when 'VBELN'.

wa_fldcat-seltext_l = 'Delivary No.'.

wa_fldcat-col_pos = 1.

wa_fldcat-ddictxt = 'L'.

when 'POSNR'.

wa_fldcat-seltext_l = 'Item No'.

wa_fldcat-col_pos = 2.

wa_fldcat-ddictxt = 'L'.

when 'MATNR'.

wa_fldcat-seltext_l = 'Material'.

wa_fldcat-col_pos = 3.

wa_fldcat-ddictxt = 'L'.

when 'LFIMG'.

wa_fldcat-seltext_l = 'Quantity'.

wa_fldcat-col_pos = 4.

wa_fldcat-ddictxt = 'L'.

when 'MEINS'.

wa_fldcat-seltext_l = 'Unit of Measure'.

wa_fldcat-col_pos = 5.

wa_fldcat-ddictxt = 'L'.

endcase.

modify it_fldcats from wa_fldcat.

endloop.

ENDFORM. " modify-fieldcatalog1

&----


*& Form build-events1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build-events1.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = it_event1

EXCEPTIONS

LIST_TYPE_WRONG = 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.

ENDFORM. " build-events1

&----


*& Form modify-events1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify-events1.

read table it_event1 with key name =

slis_ev_top_of_page into wa_events.

if sy-subrc = 0.

wa_events-form = 'HEADER_OF_REPORT_2'.

modify it_event1 from wa_events index sy-tabix.

clear wa_events.

endif.

ENDFORM. " modify-events1

&----


*& Form list-display1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM list-display1.

*CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

  • EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

  • I_CALLBACK_PROGRAM = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

  • I_STRUCTURE_NAME =

  • IS_LAYOUT = wa_layout

  • IT_FIELDCAT = it_fldcats1

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS = it_event1

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

  • TABLES

  • T_OUTTAB = itab1

  • 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.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

IS_LAYOUT = wa_layout

IT_FIELDCAT = it_fldcats1

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = it_event1

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IT_ALV_GRAPHICS =

  • IT_ADD_FIELDCAT =

  • IT_HYPERLINK =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IT_EXCEPT_QINFO =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = itab1

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.

ENDFORM. " list-display1

&----


*& Form get_data1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_data1.

READ TABLE itab INDEX V_INDEX.

v_vbeln = itab-vbeln.

select vbeln

posnr

matnr

lfimg

meins

from lips

into table itab1

where vbeln eq v_vbeln.

ENDFORM. " get_data1

&----


*& Form header_of_report_2

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM header_of_report_2.

write: 'Delivary item list'.

ENDFORM. " header_of_report_2

REPORT ZMK_PO_ALV .

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

  • TABLES *

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

tables : ekko,

ekpo.

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

  • TYPES

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

type-pools: slis.

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

  • INTERNAL TABLES

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

data: begin of itab occurs 0,

EBELN like ekko-ebeln, "Purchasing Document Number

BUKRS like ekko-bukrs, "Company Code

BSTYP like ekko-bstyp, "Purchasing document category

STATU like ekko-statu, "Status of purchasing document

AEDAT like ekko-aedat, "Date on which the record was created

LIFNR like ekko-lifnr, "Vendor's account number

end of itab.

data: begin of itab1 occurs 0,

EBELN like ekpo-ebeln,

EBELP like ekpo-ebelp,

MATNR like ekpo-matnr,

MATKL like ekpo-matkl,

MENGE like ekpo-menge,

end of itab1.

data: begin of itab2 occurs 0,

LIFNR like lfa1-lifnr,

NAME1 like lfa1-name1,

ADRNR like lfa1-adrnr,

ORT01 like lfa1-ort01,

ORT02 like lfa1-ort02,

PFACH like lfa1-pfach,

end of itab2.

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

  • ALV Specific Tables and Structures

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

data : v_repid like sy-repid,

v_index like sy-index,

v_eblen like ekko-ebeln,

v_lifnr like ekko-lifnr.

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

  • ALV Specific Tables and Structures

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

  • Work area for field catalog table

data : wa_fldcat type slis_fieldcat_alv.

data: wa_events type slis_alv_event.

data: wa_layout type slis_layout_alv.

data: it_fldcat type slis_t_fieldcat_alv.

data: it_events type slis_t_event.

data: it_fldcat1 type slis_t_fieldcat_alv.

data: it_events1 type slis_t_event.

data: it_fldcat2 type slis_t_fieldcat_alv.

data: it_events2 type slis_t_event.

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

  • Selection Screen

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

selection-screen begin of block b with frame title text-001.

select-options : s_ebeln for ekko-ebeln .

selection-screen end of block b.

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

  • Start of Selection

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

initialization.

v_repid = sy-repid.

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

  • Start of Selection

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

start-of-selection.

perform get_data.

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

  • End of Selection

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

end-of-selection.

perform build_fldcatalog.

perform modify_fldcatalog.

perform build_events.

perform modify_events.

perform build_layout.

perform list_display.

&----


*& Form get_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_data.

select

EBELN

BUKRS

BSTYP

STATU

AEDAT

LIFNR

from ekko

into table itab

where ebeln in s_ebeln.

ENDFORM. " get_data

&----


*& Form build_fldcatalog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build_fldcatalog.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = v_repid

I_INTERNAL_TABNAME = 'ITAB'

  • I_STRUCTURE_NAME =

I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = it_fldcat

  • 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.

ENDFORM. " build_fldcatalog

&----


*& Form build_events

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build_events.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = it_events

EXCEPTIONS

LIST_TYPE_WRONG = 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.

ENDFORM. " build_events

&----


*& Form modify_events

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify_events.

read table it_events with key name =

slis_ev_top_of_page into wa_events.

if sy-subrc eq 0.

wa_events-form = 'HEADER-OF-REPORT'.

modify it_events from wa_events index sy-tabix.

endif.

ENDFORM. " modify_events

&----


*& Form build_layout

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build_layout.

wa_layout-zebra = 'X'.

wa_layout-colwidth_optimize = 'X'.

wa_layout-no_colhead = space.

wa_layout-no_vline = space.

.

ENDFORM. " build_layout

&----


*& Form list_display

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM list_display.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

  • I_STRUCTURE_NAME =

IS_LAYOUT = wa_layout

IT_FIELDCAT = it_fldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = it_events

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 30

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = itab

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.

ENDFORM. " list_display

&----


*& Form modify_fldcatalog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify_fldcatalog.

loop at it_fldcat into wa_fldcat.

case wa_fldcat-fieldname.

when 'EBELN'.

wa_fldcat-seltext_l = 'Purchase Order'.

wa_fldcat-emphasize = 'C811'.

wa_fldcat-hotspot = 'X'.

wa_fldcat-col_pos = 1.

wa_fldcat-ddictxt = 'L'.

when 'BUKRS'.

wa_fldcat-seltext_l = 'Company Code'.

wa_fldcat-col_pos = 2.

wa_fldcat-ddictxt = 'L'.

when 'BSTYP'.

wa_fldcat-seltext_l = 'PO Category'.

wa_fldcat-col_pos = 3.

wa_fldcat-ddictxt = 'L'.

when 'STATU'.

wa_fldcat-seltext_l = 'PO Status'.

wa_fldcat-col_pos = 4.

  • wa_fldcat-tech ='X'.

wa_fldcat-ddictxt = 'L'.

when 'AEDAT'.

wa_fldcat-seltext_l = 'Date Created'.

wa_fldcat-col_pos = 5.

wa_fldcat-ddictxt = 'L'.

when 'LIFNR'.

wa_fldcat-seltext_l = 'Vendor'.

wa_fldcat-hotspot = 'X'.

wa_fldcat-emphasize = 'C511'.

wa_fldcat-col_pos = 6.

wa_fldcat-ddictxt = 'L'.

endcase.

modify it_fldcat from wa_fldcat.

ENDLOOP.

ENDFORM. " modify_fldcatalog

&----


*& Form header-of-page

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM header-of-report.

skip 2.

write : /20 'Purchase Order List Report'.

skip 2.

ENDFORM. " header-of-report

&----


*& Form USER_COMMAND

&----


  • User command for Calling Transaction VT03N, Execute and Refresh

----


FORM user_command USING p_ucomm LIKE sy-ucomm

p_selfield TYPE slis_selfield.

V_INDEX = P_SELFIELD-TABINDEX. " holds the selected table index

CASE p_ucomm.

WHEN '&IC1'.

IF p_selfield-fieldname eq 'EBELN'.

perform display_po_item.

ENDIF.

IF p_selfield-fieldname eq 'LIFNR'.

perform display_vendor_info.

endif.

ENDCASE.

ENDFORM. " USER_COMMAND

&----


*& Form secondary_list

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display_po_item.

read table itab index v_index.

v_eblen = itab-ebeln.

perform get_item_data.

ENDFORM. " secondary_list

&----


*& Form display_vendor_info

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display_vendor_info.

read table itab index v_index.

v_lifnr = itab-lifnr.

perform get_vendor_info.

ENDFORM. " display_vendor_info

&----


*& Form get_item_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_item_data.

clear itab1.

refresh itab1.

select EBELN

EBELP

MATNR

MATKL

MENGE

from ekpo

into table itab1

where ebeln eq v_eblen.

if sy-subrc eq 0.

perform build_catalog1.

perform modify_catalog1.

perform build_events1.

perform modify_events1.

perform list_display1.

endif.

ENDFORM. " get_item_data

&----


*& Form build_catalog1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build_catalog1.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = v_repid

I_INTERNAL_TABNAME = 'ITAB1'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = it_fldcat1

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.

ENDFORM. " build_catalog1

&----


*& Form modify_catalog1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify_catalog1.

ENDFORM. " modify_catalog1

&----


*& Form build_events1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build_events1.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = it_events1

EXCEPTIONS

LIST_TYPE_WRONG = 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.

ENDFORM. " build_events1

&----


*& Form modify_events1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify_events1.

read table it_events1 with key name =

slis_ev_top_of_page into wa_events.

if sy-subrc eq 0.

wa_events-form = 'HEADER-OF-REPORT1'.

modify it_events1 from wa_events index sy-tabix.

endif.

ENDFORM. " modify_events1

&----


*& Form list_display1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM list_display1.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_STRUCTURE_NAME =

IS_LAYOUT = wa_layout

IT_FIELDCAT = it_fldcat1

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = it_events1

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = itab1

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.

ENDFORM. " list_display1

&----


*& Form header-of-report1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM header-of-report1.

skip 2.

write : 'ITEM WISE DEATILS OF A PURCHASE ORDER' centered.

skip 3.

ENDFORM. " header-of-report1

&----


*& Form get_vendor_info

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_vendor_info.

select LIFNR

NAME1

ADRNR

ORT01

ORT02

PFACH

from lfa1

into table itab2

where lifnr eq v_lifnr.

if sy-subrc eq 0.

perform build_catalog2.

perform modify_catalog2.

perform build_events2.

perform modify_events2.

perform list_display2.

endif.

ENDFORM. " get_item_data

&----


*& Form build_catalog1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build_catalog2.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = v_repid

I_INTERNAL_TABNAME = 'ITAB2'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = it_fldcat2

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.

ENDFORM. " build_catalog1

&----


*& Form modify_catalog1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify_catalog2.

ENDFORM. " modify_catalog1

&----


*& Form build_events1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build_events2.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = it_events2

EXCEPTIONS

LIST_TYPE_WRONG = 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.

ENDFORM. " build_events1

&----


*& Form modify_events1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify_events2.

read table it_events2 with key name =

slis_ev_top_of_page into wa_events.

if sy-subrc eq 0.

wa_events-form = 'HEADER-OF-REPORT2'.

modify it_events2 from wa_events index sy-tabix.

endif.

ENDFORM. " modify_events1

&----


*& Form list_display1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM list_display2.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_STRUCTURE_NAME =

IS_LAYOUT = wa_layout

IT_FIELDCAT = it_fldcat2

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = it_events2

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = itab2

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.

ENDFORM. " list_display1

&----


*& Form header-of-report1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM header-of-report2.

skip 2.

write : 'VENDOR DETAILS' centered.

skip 3.

ENDFORM. " header-of-report1

<b>ALV INTERACTIVE</b>

REPORT ZMK_SHIPMENT_ALV

no standard page heading

line-size 105

line-count 50(5)

message-id zz.

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

  • TABLES *

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

tables : vttk, "Shipment Header

vttp, " Shipment Item

lips. " Delivary Item

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

***TYPE-POOLS *

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

type-pools : slis.

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

*WORK AREAS *

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

  • Work area for field catalog table

data : wa_fldcat type slis_fieldcat_alv.

  • Work area for Events table

data : wa_events type slis_alv_event.

  • Work area for layout.

data : wa_layout type slis_layout_alv.

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

*INTERNAL TABLES *

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

  • Shimpment Details

data : begin of itab occurs 0,

tknum like vttk-tknum,

shtyp like vttk-shtyp,

tpnum like vttp-tpnum,

vbeln like vttp-vbeln,

end of itab.

data : begin of itab1 occurs 0,

vbeln like lips-vbeln,

posnr like lips-posnr,

matnr like lips-matnr,

lfimg like lips-lfimg,

meins like lips-meins,

end of itab1.

  • For field catalog table

data : it_fldcats type slis_t_fieldcat_alv.

  • For Events table

data : it_event type slis_t_event.

  • For layout.

data : it_layout type slis_layout_alv.

  • For field catalog table

data : it_fldcats1 type slis_t_fieldcat_alv.

  • For Events table

data : it_event1 type slis_t_event.

data : v_repid like sy-repid.

*Data Declaration

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

data: v_index type sy-index,

v_vbeln like lips-vbeln.

*SELECT-OPTIONS

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

selection-screen begin of block b with frame title text-001.

select-options : s_tknum for vttk-tknum .

selection-screen end of block b.

*INITIALIZATION

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

initialization.

v_repid = sy-repid.

*START-OF-SELCTION

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

start-of-selection.

perform populate-data.

sort itab by tknum.

top-of-page.

write : 'Shipment wise Delivary Report'.

end-of-selection.

perform build-fieldcatalog.

perform modify-fieldcatalog.

perform build-events.

perform modify-events.

perform set-layout.

  • perform set-pfstatus.

perform list-display.

&----


*& Form populate-data

  • Retrives the Shipment data depending on the selection criteria *

&----


FORM populate-data.

select vttk~tknum

vttk~shtyp

vttp~tpnum

vttp~vbeln

into table itab

from vttk

join vttp

on vttptknum = vttktknum

where vttk~tknum in s_tknum.

if sy-subrc <> 0.

message e999 with 'NO DATA FOUND'.

exit.

endif.

ENDFORM. " populate-data

&----


*& Form build-fieldcatalog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form build-fieldcatalog.

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = v_repid

i_internal_tabname = 'ITAB'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

changing

ct_fieldcat = it_fldcats

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.

endform. " BUILD-FIELDCATALOG

&----


*& Form build-events

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build-events.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = it_event

EXCEPTIONS

LIST_TYPE_WRONG = 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.

ENDFORM. " build-events

&----


*& Form set-layout

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM set-layout.

wa_layout-zebra = 'X'.

wa_layout-colwidth_optimize = 'X'.

wa_layout-no_colhead = space.

wa_layout-no_vline = space.

ENDFORM. " set-layout

&----


*& Form list-display

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM list-display.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

  • I_STRUCTURE_NAME =

IS_LAYOUT = wa_layout

IT_FIELDCAT = it_fldcats

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = it_event

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = itab

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.

ENDFORM. " list-display

&----


*& Form modify-fieldcatalog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify-fieldcatalog.

loop at it_fldcats into wa_fldcat.

case wa_fldcat-fieldname.

when 'TKNUM'.

wa_fldcat-seltext_l = 'Ship No.'.

wa_fldcat-col_pos = 1.

wa_fldcat-ddictxt = 'L'.

when 'SHTYP'.

wa_fldcat-seltext_l = 'Ship Type'.

wa_fldcat-col_pos = 2.

wa_fldcat-ddictxt = 'L'.

when 'TPNUM'.

wa_fldcat-seltext_l = 'Item No.'.

wa_fldcat-col_pos = 3.

wa_fldcat-ddictxt = 'L'.

when 'VBELN'.

wa_fldcat-seltext_l = 'Delivary No.'.

wa_fldcat-hotspot = 'X'.

wa_fldcat-col_pos = 4.

wa_fldcat-ddictxt = 'L'.

endcase.

modify it_fldcats from wa_fldcat.

endloop.

ENDFORM. " modify-fieldcatalog

&----


*& Form modify-events

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form modify-events.

read table it_event with key name =

slis_ev_top_of_page into wa_events.

if sy-subrc = 0.

wa_events-form = 'HEADER-OF-REPORT'.

modify it_event from wa_events index sy-tabix.

clear wa_events.

endif.

read table it_event with key name =

slis_ev_end_of_page into wa_events.

if sy-subrc = 0.

wa_events-form = 'FOOTER-OF-REPORT'.

modify it_event from wa_events index sy-tabix.

clear wa_events.

endif.

endform. " modify-events

&----


*& Form HEADER-OF-REPORT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM HEADER-OF-REPORT.

write : 'Shipment Wise Delivary Report'.

ENDFORM. " HEADER-OF-REPORT

&----


*& Form FOOTER-OF-REPORT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FOOTER-OF-REPORT.

write : 'End of Report'.

ENDFORM. " FOOTER-OF-REPORT

&----


*& Form USER_COMMAND

&----


  • User command for Calling Transaction VT03N, Execute and Refresh

----


FORM user_command USING p_ucomm LIKE sy-ucomm

p_selfield TYPE slis_selfield.

V_INDEX = P_SELFIELD-TABINDEX. " holds the selected table index

CASE p_ucomm.

WHEN '&IC1'.

IF p_selfield-fieldname eq 'VBELN'.

perform secondary_list.

ENDIF.

ENDCASE.

ENDFORM. " USER_COMMAND

&----


*& Form secondary_list

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM secondary_list.

perform get_data1.

perform build-fieldcatalog1.

perform modify-fieldcatalog1.

perform build-events1.

perform modify-events1.

  • perform set-layout.

  • perform set-pfstatus.

perform list-display1.

ENDFORM. " secondary_list

&----


*& Form build-fieldcatalog1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build-fieldcatalog1.

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = v_repid

i_internal_tabname = 'ITAB1'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

changing

ct_fieldcat = it_fldcats1

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.

ENDFORM. " build-fieldcatalog1

&----


*& Form modify-fieldcatalog1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify-fieldcatalog1.

loop at it_fldcats into wa_fldcat.

case wa_fldcat-fieldname.

when 'VBELN'.

wa_fldcat-seltext_l = 'Delivary No.'.

wa_fldcat-col_pos = 1.

wa_fldcat-ddictxt = 'L'.

when 'POSNR'.

wa_fldcat-seltext_l = 'Item No'.

wa_fldcat-col_pos = 2.

wa_fldcat-ddictxt = 'L'.

when 'MATNR'.

wa_fldcat-seltext_l = 'Material'.

wa_fldcat-col_pos = 3.

wa_fldcat-ddictxt = 'L'.

when 'LFIMG'.

wa_fldcat-seltext_l = 'Quantity'.

wa_fldcat-col_pos = 4.

wa_fldcat-ddictxt = 'L'.

when 'MEINS'.

wa_fldcat-seltext_l = 'Unit of Measure'.

wa_fldcat-col_pos = 5.

wa_fldcat-ddictxt = 'L'.

endcase.

modify it_fldcats from wa_fldcat.

endloop.

ENDFORM. " modify-fieldcatalog1

&----


*& Form build-events1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build-events1.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = it_event1

EXCEPTIONS

LIST_TYPE_WRONG = 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.

ENDFORM. " build-events1

&----


*& Form modify-events1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify-events1.

read table it_event1 with key name =

slis_ev_top_of_page into wa_events.

if sy-subrc = 0.

wa_events-form = 'HEADER_OF_REPORT_2'.

modify it_event1 from wa_events index sy-tabix.

clear wa_events.

endif.

ENDFORM. " modify-events1

&----


*& Form list-display1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM list-display1.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

  • I_STRUCTURE_NAME =

IS_LAYOUT = wa_layout

IT_FIELDCAT = it_fldcats1

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = it_event1

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = itab1

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.

ENDFORM. " list-display1

&----


*& Form get_data1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_data1.

READ TABLE itab INDEX V_INDEX.

v_vbeln = itab-vbeln.

select vbeln

posnr

matnr

lfimg

meins

from lips

into table itab1

where vbeln eq v_vbeln.

ENDFORM. " get_data1

&----


*& Form header_of_report_2

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM header_of_report_2.

write: 'Delivary item list'.

ENDFORM. " header_of_report_2

<b>ALV SUBTOTALS</b>

REPORT ZYFI_REPT007

NO STANDARD PAGE HEADING

LINE-SIZE 300

LINE-COUNT 50

MESSAGE-ID ZYFI.

*----


-


*

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

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

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

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

TABLES : COOI, " Commitments

Management: Line Items

LFA1,

" Vendor master (general section)

VBEP,

RKPLN.

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

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

  • TABLE TYPES AND INTERNAL

TABLES

*

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

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

DATA : BEGIN OF TYP_COOI ,

OBJNR LIKE COOI-OBJNR,

SAKTO LIKE COOI-SAKTO,

MEGBTR LIKE COOI-MEGBTR,

MEINH LIKE COOI-MEINH,

WKGBTR LIKE COOI-WKGBTR,

REFBN LIKE COOI-REFBN,

RFPOS LIKE COOI-RFPOS,

SGTXT LIKE COOI-SGTXT,

BUDAT LIKE COOI-BUDAT,

LIFNR LIKE COOI-LIFNR,

END OF TYP_COOI.

DATA : BEGIN OF TYP_LFA1 ,

LIFNR LIKE LFA1-LIFNR,

NAME1 LIKE LFA1-NAME1,

END OF TYP_LFA1.

DATA : BEGIN OF IT_OUTTAB OCCURS 0,

OBJNR LIKE COOI-OBJNR,

SAKTO LIKE COOI-SAKTO,

MEGBTR LIKE COOI-MEGBTR,

MEINH LIKE COOI-MEINH,

WKGBTR LIKE COOI-WKGBTR,

REFBN LIKE COOI-REFBN,

RFPOS LIKE COOI-RFPOS,

SGTXT LIKE COOI-SGTXT,

BUDAT LIKE COOI-BUDAT,

LIFNR LIKE COOI-LIFNR,

NAME1 LIKE LFA1-NAME1,

END OF IT_OUTTAB.

DATA : IT_COOI LIKE TYP_COOI OCCURS

0 WITH HEADER LINE,

IT_LFA1 LIKE TYP_LFA1 OCCURS

0 WITH HEADER LINE.

*-- ALV Declarations

TYPE-POOLS SLIS.

DATA: IT_EVENTS TYPE

SLIS_T_EVENT,

GS_EVENT TYPE

SLIS_ALV_EVENT,

wa_fldcat type

slis_fieldcat_alv.

DATA: S_LAYOUT TYPE SLIS_LAYOUT_ALV,

GT_PRINT TYPE SLIS_PRINT_ALV.

DATA: IT_FLDCAT TYPE

SLIS_T_FIELDCAT_ALV.

DATA: IT_SORT TYPE

SLIS_T_SORTINFO_ALV.

DATA: V_REPID LIKE SY-REPID.

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

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

  • SELECTION

SCREEN

*

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

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

SELECTION-SCREEN BEGIN OF BLOCK B1

WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS : S_KOKRS FOR

COOI-KOKRS NO-EXTENSION NO

INTERVALS,

" Controlling Area

S_BUKRS FOR

COOI-BUKRS NO-EXTENSION NO

INTERVALS,

" Company code

S_GJAHR FOR

COOI-GJAHR NO-EXTENSION NO

INTERVALS,

" Fiscal Year

S_OBJNR FOR

RKPLN-AUFNR MATCHCODE OBJECT ORDE,

" Internal order

S_SAKTO FOR

COOI-SAKTO MATCHCODE OBJECT KART,

" Cost Element

S_BUDAT FOR

COOI-BUDAT, " Debit Date

S_LIFNR FOR

COOI-LIFNR. " Vendor

SELECTION-SCREEN END OF BLOCK B1.

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

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

  • S T A R T O F S E L E C

T I O N *

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

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

START-OF-SELECTION.

*-- Read data

PERFORM GET_DATA.

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

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

  • E N D O F S E L E C T I

O N *

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

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

END-OF-SELECTION.

*-- Process the data and prepare the

output data

PERFORM CALCULATE_FINAL_INFO.

*--Display Report output

PERFORM DISPLAY_REPORT.

*----


-


*

  • FORM CALCULATE_FINAL_INFO

*

*----


-


*

  • Process the data and prepare

final internal table *

*----


-


*

FORM CALCULATE_FINAL_INFO.

DATA : L_OBJNR LIKE COOI-OBJNR.

SORT IT_LFA1 BY LIFNR.

DELETE ADJACENT DUPLICATES FROM

IT_LFA1 COMPARING LIFNR.

LOOP AT IT_COOI.

L_OBJNR = IT_COOI-OBJNR+2(20).

SHIFT L_OBJNR LEFT DELETING

LEADING '0'.

IF L_OBJNR IN S_OBJNR.

READ TABLE IT_LFA1 WITH KEY

LIFNR = IT_COOI-LIFNR.

IF SY-SUBRC EQ 0.

IT_OUTTAB-NAME1 =

IT_LFA1-NAME1.

ENDIF.

MOVE-CORRESPONDING IT_COOI TO

IT_OUTTAB.

CLEAR IT_OUTTAB-OBJNR.

IT_OUTTAB-OBJNR = L_OBJNR.

APPEND IT_OUTTAB.

CLEAR IT_OUTTAB.

CLEAR IT_LFA1.

CLEAR L_OBJNR.

ENDIF.

ENDLOOP.

ENDFORM.

*&----


-


*

*& Form GET_DATA

*&----


-


*

  • Fetch the Data from the table

COOI and LFA1

*----


-


*

FORM GET_DATA.

SELECT OBJNR

SAKTO

MEGBTR

MEINH

WKGBTR

REFBN

RFPOS

SGTXT

BUDAT

LIFNR

FROM COOI

INTO TABLE IT_COOI

WHERE BUDAT IN S_BUDAT

AND LIFNR IN S_LIFNR

AND KOKRS IN S_KOKRS

AND BUKRS IN S_BUKRS

AND GJAHR IN S_GJAHR

AND SAKTO IN S_SAKTO.

IF SY-SUBRC EQ 0 .

  • Get the Vendor name from LFA1

SELECT LIFNR

NAME1

FROM LFA1

INTO TABLE IT_LFA1

FOR ALL ENTRIES IN

IT_COOI

WHERE LIFNR EQ

IT_COOI-LIFNR.

ELSE.

MESSAGE I999 WITH TEXT-013.

ENDIF.

ENDFORM.

" GET_DATA

*&----


-


*

*& Form DISPLAY_REPORT

*&----


-


*

  • Display the output

*----


-


*

FORM DISPLAY_REPORT.

PERFORM BUILD_CATALOG.

PERFORM FRM_PREPARE_EVENT_LIST

TABLES IT_EVENTS.

IF NOT IT_OUTTAB[] IS INITIAL.

CALL FUNCTION

'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM

= V_REPID

I_CALLBACK_USER_COMMAND =

'USER_COMMAND'

IT_FIELDCAT

= IT_FLDCAT

IT_SORT

= IT_SORT

IT_EVENTS

= IT_EVENTS

TABLES

T_OUTTAB

= IT_OUTTAB

EXCEPTIONS

PROGRAM_ERROR

= 1

OTHERS

= 2.

ELSE.

MESSAGE I999 WITH TEXT-013.

ENDIF.

ENDFORM.

" DISPLAY_REPORT

*&----


-


*

*& Form BUILD_CATALOG

*&----


-


*

  • Build the Field catalog for

the ALV Report

*----


-


*

FORM BUILD_CATALOG.

DATA: V_INDEX LIKE SY-TABIX.

V_REPID = SY-REPID.

DATA: LS_SORT TYPE

SLIS_SORTINFO_ALV.

CALL FUNCTION

'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME =

V_REPID

I_INTERNAL_TABNAME =

'IT_OUTTAB'

I_INCLNAME =

V_REPID

CHANGING

CT_FIELDCAT =

IT_FLDCAT

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.

READ TABLE IT_FLDCAT WITH KEY

FIELDNAME = 'WKGBTR'

TABNAME =

'IT_OUTTAB' INTO WA_FLDCAT.

IF SY-SUBRC EQ 0.

WA_FLDCAT-DO_SUM = 'X'.

MODIFY IT_FLDCAT FROM WA_FLDCAT

INDEX SY-TABIX.

ENDIF.

READ TABLE IT_FLDCAT WITH KEY

FIELDNAME = 'OBJNR'

TABNAME

= 'IT_OUTTAB' INTO WA_FLDCAT.

IF SY-SUBRC EQ 0.

WA_FLDCAT-SELTEXT_L = 'Order'.

WA_FLDCAT-COL_POS = 1.

WA_FLDCAT-DDICTXT = 'L'.

MODIFY IT_FLDCAT FROM WA_FLDCAT

INDEX SY-TABIX.

ENDIF.

LS_SORT-FIELDNAME = 'OBJNR'.

LS_SORT-SPOS = 1.

LS_SORT-UP = 'X'.

LS_SORT-SUBTOT = 'X'.

APPEND LS_SORT TO IT_SORT.

ENDFORM.

" BUILD_CATALOG

*&----


-


*

*& Form FRM_PREPARE_EVENT_LIST

*&----


-


*

  • Build the Events

*----


-


*

FORM FRM_PREPARE_EVENT_LIST TABLES

IT_EVENTS TYPE SLIS_T_EVENT.

CLEAR GS_EVENT.

GS_EVENT-NAME =

SLIS_EV_TOP_OF_PAGE.

GS_EVENT-FORM =

'TOP_OF_PAGE_REPORT'.

APPEND GS_EVENT TO IT_EVENTS.

ENDFORM.

" FRM_PREPARE_EVENT_LIST

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

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

  • TOP OF PAGE

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

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

FORM TOP_OF_PAGE_REPORT.

CALL FUNCTION 'Z_YREPORT_HEADER'

EXPORTING

DL_TITLE = SY-TITLE

DL_REPID = SY-CPROG

DL_LINSZ = SY-LINSZ

EXCEPTIONS

OTHERS = 1.

ENDFORM.

" FRM_TOP_OF_PAGE_REPORT

*&----


-


*

*& Form USER_COMMAND

*&----


-


*

  • Drill Down Functionality to Call

the Transaction ME23

*----


-


*

FORM USER_COMMAND USING P_UCOMM

LIKE SY-UCOMM

P_SELFIELD TYPE SLIS_SELFIELD.

DATA : L_INDEX LIKE SY-INDEX,

L_REFBN LIKE COOI-REFBN.

L_INDEX = P_SELFIELD-TABINDEX.

" holds the selected table index

CLEAR L_REFBN.

CASE P_UCOMM.

*-- On Double Click

WHEN '&IC1'.

CLEAR L_REFBN.

*-- Read the Current Line

READ TABLE IT_OUTTAB INDEX

L_INDEX.

IF SY-SUBRC EQ 0.

L_REFBN = IT_OUTTAB-REFBN.

IF NOT L_REFBN IS INITIAL.

*-- Set the BES Paramater Id to the

Current line Purchase Order Number

SET PARAMETER ID 'BES'

FIELD L_REFBN.

*-- Call the Transaction Purchase

Order Display with the above PO

Number

CALL TRANSACTION 'ME23'

AND SKIP FIRST SCREEN.

ENDIF.

ELSE.

MESSAGE E999 WITH TEXT-014.

ENDIF.

ENDCASE.

ENDFORM.

" USER_COMMAND

Thanks,

Mahesh

2 REPLIES 2
Read only

Former Member
0 Likes
437

Check the simple ALV Program :

REPORT ZTEST3 line-size 400.

TABLES: EKKO, LFA1, MAKT, EKET, EKPO, cdhdr.

*Data Declaration

*----


TYPES: BEGIN OF FINAL,

ebeln type ekko-ebeln,

BEDAT type ekko-bedat,

lifnr type ekko-lifnr,

ernam type ekko-ernam,

name1 type lfa1-name1,

matnr type ekpo-matnr,

eindt type eket-eindt,

MAKTX type MAKT-MAKTX,

MBLNR type MSEG-MBLNR,

eldat type eket-eldat,

end of FINAL.

DATA: ITAB TYPE STANDARD TABLE OF FINAL INITIAL SIZE 10 WITH HEADER LINE.

  • all ALV declarations

*----


type-pools: slis. "ALV Declarations

DATA: fieldcatalog TYPE slis_t_fieldcat_alv with header line,

G_REPID TYPE SY-REPID,

GS_PRINT TYPE SLIS_PRINT_ALV,

GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,

GT_EVENTS TYPE SLIS_T_EVENT,

GT_SORT TYPE SLIS_T_SORTINFO_ALV,

GS_LAYOUT TYPE SLIS_LAYOUT_ALV,

COL_POS TYPE I.

*----


  • -----------------SELECTION SCREEN----------------------

selection-screen begin of block b1 with frame title text-001.

select-options podate for EKKO-bedat.

selection-screen end of block b1.

*----


*................... GET DATA..................

SELECT EKKO~EBELN

EKKO~BEDAT

EKKO~LIFNR

EKKO~ERNAM

LFA1~NAME1

MAKT~MATNR

EKET~EINDT

MAKT~MAKTX

MSEG~MBLNR

eket~eldat

INTO CORRESPONDING FIELDS OF ITAB

FROM

( EKKO INNER JOIN LFA1

ON EKKO~LIFNR = LFA1~LIFNR

INNER JOIN MSEG

ON EKKO~EBELN = MSEG~EBELN

INNER JOIN MKPF

ON MSEG~MBLNR = MKPF~MBLNR

INNER JOIN EKPO

ON EKKO~EBELN = EKPO~EBELN

INNER JOIN MAKT

ON EKPO~MATNR = MAKT~MATNR

INNER JOIN EKET

ON EKKO~EBELN = EKET~EBELN

)

WHERE EKKO~BEDAT IN PODATE .

APPEND ITAB. CLEAR ITAB.

ENDSELECT.

*

*LOOP AT ITAB.

  • at first.

  • write: / 'VENDOR NO' color 6 INVERSE,' VENDOR NAME' COLOR 6

*INVERSE,48'MATERIAL NO' COLOR 6 INVERSE,67'MATERIAL DESCRIPTION' COLOR 6 INVERSE,108'PO.NUMBER' COLOR 6 INVERSE,119'DATE' COLOR 6 INVERSE,129'CREATED BY' COLOR 6 INVERSE,143'G R NO' COLOR 6 INVERSE, 154'GR DATE' COLOR 6 INVERSE,

*167'DELIVERY DATE PROMISED' COLOR 6 INVERSE.

  • ULINE.

  • endat.

*

*

*WRITE:/ ITAB-LIFNR,ITAB-NAME1,ITAB-MATNR,ITAB-MAKTX,ITAB-EBELN,ITAB-BEDAT,ITAB-ERNAM,ITAB-MBLNR, ITAB-ELDAT, ITAB-EINDT, itab-udate.

*

*ENDLOOP.

*

*

  • CDHDROBJECTCLAS AND CDHDRTCODE EQ 'ME28'.

*LOOP AT ITAB.

*

*

*SELECT * FROM CDHDR WHERE OBJECTid = ITAB-EBELN AND .

*

*ITAB-UDATE = CDHDR-UDATE.

*APPEND ITAB. CLEAR ITAB.

*ENDSELECT.

*ENDLOOP.

*

**----


fieldcatalog-fieldname = 'ebeln'.

fieldcatalog-seltext_m = 'po Number'.

fieldcatalog-col_pos = 0.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'bedat'.

fieldcatalog-seltext_m = 'po date'.

fieldcatalog-col_pos = 1.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'lifnr'.

fieldcatalog-seltext_m = 'vendor no'.

fieldcatalog-col_pos = 2.

fieldcatalog-outputlen = 15.

fieldcatalog-emphasize = 'X'.

fieldcatalog-key = 'X'.

  • fieldcatalog-do_sum = 'X'.

  • fieldcatalog-no_zero = 'X'.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'ernam'.

fieldcatalog-seltext_m = 'created by'.

fieldcatalog-col_pos = 3.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'name1'.

fieldcatalog-seltext_m = 'vendor name'.

fieldcatalog-col_pos = 4.

fieldcatalog-outputlen = 15.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'matnr'.

fieldcatalog-seltext_m = 'material number'.

fieldcatalog-col_pos = 5.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'eindt'.

fieldcatalog-seltext_m = 'date promised'.

fieldcatalog-col_pos = 6.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'maktx'.

fieldcatalog-seltext_m = 'material desc'.

fieldcatalog-col_pos = 7.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'mblnr'.

fieldcatalog-seltext_m = 'GR no'.

fieldcatalog-col_pos = 8.

fieldcatalog-outputlen = 15.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'eldat'.

fieldcatalog-seltext_m = 'gr date'.

fieldcatalog-col_pos = 9.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

*----


call function 'REUSE_ALV_GRID_DISPLAY'

exporting

i_callback_program = g_repid

it_fieldcat = fieldcatalog[]

is_layout = GS_layout

  • is_variant = z_template

tables

t_outtab = itab

exceptions

program_error = 1

others = 2.

*----


Thanks

Seshu

Read only

Former Member
0 Likes
437

HI,

Here is a list of report code for ur reference.

<b> ALV All in ONe</b>

REPORT ZMK_ALLINONE_ALV .

&----


*& Program for displaying data using function modules : *

*& REUSE_ALV_LIST_DISPLAY *

*& REUSE_ALV_POPUP_TO_SELECT *

*& REUSE_ALV_GRID_DISPLAY *

*& *

&----


TABLES VBAK.

DATA it_vbak LIKE VBAK OCCURS 0 WITH HEADER LINE.

SELECTION-SCREEN uline.

PARAMETERS: ALV1 RADIOBUTTON GROUP ALV, "REUSE_ALV_LIST_DISPLAY

ALV2 RADIOBUTTON GROUP ALV, "REUSE_ALV_POPUP_TO_SELECT

ALV3 RADIOBUTTON GROUP ALV, "REUSE_ALV_GRID_DISPLAY

ALV4 RADIOBUTTON GROUP ALV. " NORMAL DISPLAY

SELECTION-SCREEN uline.

SELECT * FROM VBAK

INTO CORRESPONDING FIELDS OF TABLE it_vbak

UP TO 10 ROWS.

IF ALV1 = 'X'.

PERFORM ALV_FUNC1.

ELSEIF ALV2 = 'X'.

PERFORM ALV_FUNC2.

ELSEIF ALV3 = 'X'.

PERFORM ALV_FUNC3.

ELSEIF ALV4 = 'X'.

PERFORM NORM.

ENDIF.

&----


*& Form ALV_FUNC1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM ALV_FUNC1 .

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_STRUCTURE_NAME = 'VBAK'

TABLES

T_OUTTAB = it_vbak

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.

ENDFORM. " ALV_FUNC1

&----


*& Form ALV_FUNC2

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM ALV_FUNC2 .

CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'

EXPORTING

I_TITLE = 'SALES ORDER INFO'

I_ZEBRA = 'X'

I_TABNAME = 1

I_STRUCTURE_NAME = 'vbak'

TABLES

T_OUTTAB = it_vbak

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.

ENDFORM. " ALV_FUNC2

&----


*& Form ALV_FUNC3

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM ALV_FUNC3 .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_STRUCTURE_NAME = 'vbak'

I_GRID_TITLE = 'SALES ORDER INFO'

TABLES

T_OUTTAB = it_vbak

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.

ENDFORM. " ALV_FUNC3

&----


*& Form NORM

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM NORM .

format intensified.

skip 1.

WRITE: /'SALES DOC.',

' Created on ',

' Time',

' Created by',

' Valid from ',

' Sold-to party'.

format intensified off.

skip 2.

LOOP AT it_vbak.

write: / it_vbak-vbeln,' ',

it_vbak-erdat,' ',

it_vbak-erzet,' ',

it_vbak-ERNAM,' ',

it_vbak-ANGDT,' ',

it_vbak-KUNNR.

endloop.

ENDFORM. " NORM

REPORT ZMK_SHIPMENT_ALV

no standard page heading

line-size 105

line-count 50(5)

message-id zz.

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

  • TABLES *

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

tables : vttk, "Shipment Header

vttp, " Shipment Item

lips. " Delivary Item

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

***TYPE-POOLS *

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

type-pools : slis.

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

*WORK AREAS *

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

  • Work area for field catalog table

data : wa_fldcat type slis_fieldcat_alv.

  • Work area for Events table

data : wa_events type slis_alv_event.

  • Work area for layout.

data : wa_layout type slis_layout_alv.

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

*INTERNAL TABLES *

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

  • Shimpment Details

data : begin of itab occurs 0,

tknum like vttk-tknum,

shtyp like vttk-shtyp,

tpnum like vttp-tpnum,

vbeln like vttp-vbeln,

end of itab.

data : begin of itab1 occurs 0,

vbeln like lips-vbeln,

posnr like lips-posnr,

matnr like lips-matnr,

lfimg like lips-lfimg,

meins like lips-meins,

end of itab1.

  • For field catalog table

data : it_fldcats type slis_t_fieldcat_alv.

  • For Events table

data : it_event type slis_t_event.

  • For layout.

data : it_layout type slis_layout_alv.

  • For field catalog table

data : it_fldcats1 type slis_t_fieldcat_alv.

  • For Events table

data : it_event1 type slis_t_event.

data : v_repid like sy-repid.

*Data Declaration

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

data: v_index type sy-index,

v_vbeln like lips-vbeln.

*SELECT-OPTIONS

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

selection-screen begin of block b with frame title text-001.

select-options : s_tknum for vttk-tknum .

selection-screen end of block b.

*INITIALIZATION

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

initialization.

v_repid = sy-repid.

*START-OF-SELCTION

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

start-of-selection.

perform populate-data.

sort itab by tknum.

top-of-page.

write : 'Shipment wise Delivary Report'.

end-of-selection.

perform build-fieldcatalog.

perform modify-fieldcatalog.

perform build-events.

perform modify-events.

perform set-layout.

  • perform set-pfstatus.

perform list-display.

&----


*& Form populate-data

  • Retrives the Shipment data depending on the selection criteria *

&----


FORM populate-data.

select vttk~tknum

vttk~shtyp

vttp~tpnum

vttp~vbeln

into table itab

from vttk

join vttp

on vttptknum = vttktknum

where vttk~tknum in s_tknum.

if sy-subrc <> 0.

message e999 with 'NO DATA FOUND'.

exit.

endif.

ENDFORM. " populate-data

&----


*& Form build-fieldcatalog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form build-fieldcatalog.

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = v_repid

i_internal_tabname = 'ITAB'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

changing

ct_fieldcat = it_fldcats

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.

endform. " BUILD-FIELDCATALOG

&----


*& Form build-events

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build-events.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = it_event

EXCEPTIONS

LIST_TYPE_WRONG = 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.

ENDFORM. " build-events

&----


*& Form set-layout

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM set-layout.

wa_layout-zebra = 'X'.

wa_layout-colwidth_optimize = 'X'.

wa_layout-no_colhead = space.

wa_layout-no_vline = space.

ENDFORM. " set-layout

&----


*& Form list-display

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM list-display.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

  • I_STRUCTURE_NAME =

IS_LAYOUT = wa_layout

IT_FIELDCAT = it_fldcats

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = it_event

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = itab

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.

ENDFORM. " list-display

&----


*& Form modify-fieldcatalog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify-fieldcatalog.

loop at it_fldcats into wa_fldcat.

case wa_fldcat-fieldname.

when 'TKNUM'.

wa_fldcat-seltext_l = 'Ship No.'.

wa_fldcat-col_pos = 1.

wa_fldcat-ddictxt = 'L'.

when 'SHTYP'.

wa_fldcat-seltext_l = 'Ship Type'.

wa_fldcat-col_pos = 2.

wa_fldcat-ddictxt = 'L'.

when 'TPNUM'.

wa_fldcat-seltext_l = 'Item No.'.

wa_fldcat-col_pos = 3.

wa_fldcat-ddictxt = 'L'.

when 'VBELN'.

wa_fldcat-seltext_l = 'Delivary No.'.

wa_fldcat-hotspot = 'X'.

wa_fldcat-emphasize = 'C311'.

wa_fldcat-col_pos = 4.

wa_fldcat-ddictxt = 'L'.

endcase.

modify it_fldcats from wa_fldcat.

endloop.

ENDFORM. " modify-fieldcatalog

&----


*& Form modify-events

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form modify-events.

read table it_event with key name =

slis_ev_top_of_page into wa_events.

if sy-subrc = 0.

wa_events-form = 'HEADER-OF-REPORT'.

modify it_event from wa_events index sy-tabix.

clear wa_events.

endif.

read table it_event with key name =

slis_ev_end_of_page into wa_events.

if sy-subrc = 0.

wa_events-form = 'FOOTER-OF-REPORT'.

modify it_event from wa_events index sy-tabix.

clear wa_events.

endif.

endform. " modify-events

&----


*& Form HEADER-OF-REPORT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM HEADER-OF-REPORT.

write : 'Shipment Wise Delivary Report'.

ENDFORM. " HEADER-OF-REPORT

&----


*& Form FOOTER-OF-REPORT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FOOTER-OF-REPORT.

write : 'End of Report'.

ENDFORM. " FOOTER-OF-REPORT

&----


*& Form USER_COMMAND

&----


  • User command for Calling Transaction VT03N, Execute and Refresh

----


FORM user_command USING p_ucomm LIKE sy-ucomm

p_selfield TYPE slis_selfield.

V_INDEX = P_SELFIELD-TABINDEX. " holds the selected table index

CASE p_ucomm.

WHEN '&IC1'.

IF p_selfield-fieldname eq 'VBELN'.

perform secondary_list.

ENDIF.

ENDCASE.

ENDFORM. " USER_COMMAND

&----


*& Form secondary_list

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM secondary_list.

perform get_data1.

perform build-fieldcatalog1.

perform modify-fieldcatalog1.

perform build-events1.

perform modify-events1.

  • perform set-layout.

  • perform set-pfstatus.

perform list-display1.

ENDFORM. " secondary_list

&----


*& Form build-fieldcatalog1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build-fieldcatalog1.

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = v_repid

i_internal_tabname = 'ITAB1'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

changing

ct_fieldcat = it_fldcats1

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.

ENDFORM. " build-fieldcatalog1

&----


*& Form modify-fieldcatalog1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify-fieldcatalog1.

loop at it_fldcats into wa_fldcat.

case wa_fldcat-fieldname.

when 'VBELN'.

wa_fldcat-seltext_l = 'Delivary No.'.

wa_fldcat-col_pos = 1.

wa_fldcat-ddictxt = 'L'.

when 'POSNR'.

wa_fldcat-seltext_l = 'Item No'.

wa_fldcat-col_pos = 2.

wa_fldcat-ddictxt = 'L'.

when 'MATNR'.

wa_fldcat-seltext_l = 'Material'.

wa_fldcat-col_pos = 3.

wa_fldcat-ddictxt = 'L'.

when 'LFIMG'.

wa_fldcat-seltext_l = 'Quantity'.

wa_fldcat-col_pos = 4.

wa_fldcat-ddictxt = 'L'.

when 'MEINS'.

wa_fldcat-seltext_l = 'Unit of Measure'.

wa_fldcat-col_pos = 5.

wa_fldcat-ddictxt = 'L'.

endcase.

modify it_fldcats from wa_fldcat.

endloop.

ENDFORM. " modify-fieldcatalog1

&----


*& Form build-events1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build-events1.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = it_event1

EXCEPTIONS

LIST_TYPE_WRONG = 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.

ENDFORM. " build-events1

&----


*& Form modify-events1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify-events1.

read table it_event1 with key name =

slis_ev_top_of_page into wa_events.

if sy-subrc = 0.

wa_events-form = 'HEADER_OF_REPORT_2'.

modify it_event1 from wa_events index sy-tabix.

clear wa_events.

endif.

ENDFORM. " modify-events1

&----


*& Form list-display1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM list-display1.

*CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

  • EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

  • I_CALLBACK_PROGRAM = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

  • I_STRUCTURE_NAME =

  • IS_LAYOUT = wa_layout

  • IT_FIELDCAT = it_fldcats1

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS = it_event1

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

  • TABLES

  • T_OUTTAB = itab1

  • 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.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

IS_LAYOUT = wa_layout

IT_FIELDCAT = it_fldcats1

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = it_event1

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IT_ALV_GRAPHICS =

  • IT_ADD_FIELDCAT =

  • IT_HYPERLINK =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IT_EXCEPT_QINFO =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = itab1

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.

ENDFORM. " list-display1

&----


*& Form get_data1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_data1.

READ TABLE itab INDEX V_INDEX.

v_vbeln = itab-vbeln.

select vbeln

posnr

matnr

lfimg

meins

from lips

into table itab1

where vbeln eq v_vbeln.

ENDFORM. " get_data1

&----


*& Form header_of_report_2

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM header_of_report_2.

write: 'Delivary item list'.

ENDFORM. " header_of_report_2

REPORT ZMK_PO_ALV .

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

  • TABLES *

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

tables : ekko,

ekpo.

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

  • TYPES

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

type-pools: slis.

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

  • INTERNAL TABLES

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

data: begin of itab occurs 0,

EBELN like ekko-ebeln, "Purchasing Document Number

BUKRS like ekko-bukrs, "Company Code

BSTYP like ekko-bstyp, "Purchasing document category

STATU like ekko-statu, "Status of purchasing document

AEDAT like ekko-aedat, "Date on which the record was created

LIFNR like ekko-lifnr, "Vendor's account number

end of itab.

data: begin of itab1 occurs 0,

EBELN like ekpo-ebeln,

EBELP like ekpo-ebelp,

MATNR like ekpo-matnr,

MATKL like ekpo-matkl,

MENGE like ekpo-menge,

end of itab1.

data: begin of itab2 occurs 0,

LIFNR like lfa1-lifnr,

NAME1 like lfa1-name1,

ADRNR like lfa1-adrnr,

ORT01 like lfa1-ort01,

ORT02 like lfa1-ort02,

PFACH like lfa1-pfach,

end of itab2.

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

  • ALV Specific Tables and Structures

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

data : v_repid like sy-repid,

v_index like sy-index,

v_eblen like ekko-ebeln,

v_lifnr like ekko-lifnr.

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

  • ALV Specific Tables and Structures

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

  • Work area for field catalog table

data : wa_fldcat type slis_fieldcat_alv.

data: wa_events type slis_alv_event.

data: wa_layout type slis_layout_alv.

data: it_fldcat type slis_t_fieldcat_alv.

data: it_events type slis_t_event.

data: it_fldcat1 type slis_t_fieldcat_alv.

data: it_events1 type slis_t_event.

data: it_fldcat2 type slis_t_fieldcat_alv.

data: it_events2 type slis_t_event.

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

  • Selection Screen

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

selection-screen begin of block b with frame title text-001.

select-options : s_ebeln for ekko-ebeln .

selection-screen end of block b.

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

  • Start of Selection

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

initialization.

v_repid = sy-repid.

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

  • Start of Selection

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

start-of-selection.

perform get_data.

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

  • End of Selection

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

end-of-selection.

perform build_fldcatalog.

perform modify_fldcatalog.

perform build_events.

perform modify_events.

perform build_layout.

perform list_display.

&----


*& Form get_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_data.

select

EBELN

BUKRS

BSTYP

STATU

AEDAT

LIFNR

from ekko

into table itab

where ebeln in s_ebeln.

ENDFORM. " get_data

&----


*& Form build_fldcatalog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build_fldcatalog.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = v_repid

I_INTERNAL_TABNAME = 'ITAB'

  • I_STRUCTURE_NAME =

I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = it_fldcat

  • 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.

ENDFORM. " build_fldcatalog

&----


*& Form build_events

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build_events.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = it_events

EXCEPTIONS

LIST_TYPE_WRONG = 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.

ENDFORM. " build_events

&----


*& Form modify_events

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify_events.

read table it_events with key name =

slis_ev_top_of_page into wa_events.

if sy-subrc eq 0.

wa_events-form = 'HEADER-OF-REPORT'.

modify it_events from wa_events index sy-tabix.

endif.

ENDFORM. " modify_events

&----


*& Form build_layout

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build_layout.

wa_layout-zebra = 'X'.

wa_layout-colwidth_optimize = 'X'.

wa_layout-no_colhead = space.

wa_layout-no_vline = space.

.

ENDFORM. " build_layout

&----


*& Form list_display

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM list_display.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

  • I_STRUCTURE_NAME =

IS_LAYOUT = wa_layout

IT_FIELDCAT = it_fldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = it_events

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 30

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = itab

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.

ENDFORM. " list_display

&----


*& Form modify_fldcatalog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify_fldcatalog.

loop at it_fldcat into wa_fldcat.

case wa_fldcat-fieldname.

when 'EBELN'.

wa_fldcat-seltext_l = 'Purchase Order'.

wa_fldcat-emphasize = 'C811'.

wa_fldcat-hotspot = 'X'.

wa_fldcat-col_pos = 1.

wa_fldcat-ddictxt = 'L'.

when 'BUKRS'.

wa_fldcat-seltext_l = 'Company Code'.

wa_fldcat-col_pos = 2.

wa_fldcat-ddictxt = 'L'.

when 'BSTYP'.

wa_fldcat-seltext_l = 'PO Category'.

wa_fldcat-col_pos = 3.

wa_fldcat-ddictxt = 'L'.

when 'STATU'.

wa_fldcat-seltext_l = 'PO Status'.

wa_fldcat-col_pos = 4.

  • wa_fldcat-tech ='X'.

wa_fldcat-ddictxt = 'L'.

when 'AEDAT'.

wa_fldcat-seltext_l = 'Date Created'.

wa_fldcat-col_pos = 5.

wa_fldcat-ddictxt = 'L'.

when 'LIFNR'.

wa_fldcat-seltext_l = 'Vendor'.

wa_fldcat-hotspot = 'X'.

wa_fldcat-emphasize = 'C511'.

wa_fldcat-col_pos = 6.

wa_fldcat-ddictxt = 'L'.

endcase.

modify it_fldcat from wa_fldcat.

ENDLOOP.

ENDFORM. " modify_fldcatalog

&----


*& Form header-of-page

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM header-of-report.

skip 2.

write : /20 'Purchase Order List Report'.

skip 2.

ENDFORM. " header-of-report

&----


*& Form USER_COMMAND

&----


  • User command for Calling Transaction VT03N, Execute and Refresh

----


FORM user_command USING p_ucomm LIKE sy-ucomm

p_selfield TYPE slis_selfield.

V_INDEX = P_SELFIELD-TABINDEX. " holds the selected table index

CASE p_ucomm.

WHEN '&IC1'.

IF p_selfield-fieldname eq 'EBELN'.

perform display_po_item.

ENDIF.

IF p_selfield-fieldname eq 'LIFNR'.

perform display_vendor_info.

endif.

ENDCASE.

ENDFORM. " USER_COMMAND

&----


*& Form secondary_list

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display_po_item.

read table itab index v_index.

v_eblen = itab-ebeln.

perform get_item_data.

ENDFORM. " secondary_list

&----


*& Form display_vendor_info

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display_vendor_info.

read table itab index v_index.

v_lifnr = itab-lifnr.

perform get_vendor_info.

ENDFORM. " display_vendor_info

&----


*& Form get_item_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_item_data.

clear itab1.

refresh itab1.

select EBELN

EBELP

MATNR

MATKL

MENGE

from ekpo

into table itab1

where ebeln eq v_eblen.

if sy-subrc eq 0.

perform build_catalog1.

perform modify_catalog1.

perform build_events1.

perform modify_events1.

perform list_display1.

endif.

ENDFORM. " get_item_data

&----


*& Form build_catalog1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build_catalog1.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = v_repid

I_INTERNAL_TABNAME = 'ITAB1'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = it_fldcat1

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.

ENDFORM. " build_catalog1

&----


*& Form modify_catalog1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify_catalog1.

ENDFORM. " modify_catalog1

&----


*& Form build_events1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build_events1.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = it_events1

EXCEPTIONS

LIST_TYPE_WRONG = 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.

ENDFORM. " build_events1

&----


*& Form modify_events1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify_events1.

read table it_events1 with key name =

slis_ev_top_of_page into wa_events.

if sy-subrc eq 0.

wa_events-form = 'HEADER-OF-REPORT1'.

modify it_events1 from wa_events index sy-tabix.

endif.

ENDFORM. " modify_events1

&----


*& Form list_display1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM list_display1.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_STRUCTURE_NAME =

IS_LAYOUT = wa_layout

IT_FIELDCAT = it_fldcat1

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = it_events1

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = itab1

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.

ENDFORM. " list_display1

&----


*& Form header-of-report1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM header-of-report1.

skip 2.

write : 'ITEM WISE DEATILS OF A PURCHASE ORDER' centered.

skip 3.

ENDFORM. " header-of-report1

&----


*& Form get_vendor_info

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_vendor_info.

select LIFNR

NAME1

ADRNR

ORT01

ORT02

PFACH

from lfa1

into table itab2

where lifnr eq v_lifnr.

if sy-subrc eq 0.

perform build_catalog2.

perform modify_catalog2.

perform build_events2.

perform modify_events2.

perform list_display2.

endif.

ENDFORM. " get_item_data

&----


*& Form build_catalog1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build_catalog2.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = v_repid

I_INTERNAL_TABNAME = 'ITAB2'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = it_fldcat2

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.

ENDFORM. " build_catalog1

&----


*& Form modify_catalog1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify_catalog2.

ENDFORM. " modify_catalog1

&----


*& Form build_events1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build_events2.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = it_events2

EXCEPTIONS

LIST_TYPE_WRONG = 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.

ENDFORM. " build_events1

&----


*& Form modify_events1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify_events2.

read table it_events2 with key name =

slis_ev_top_of_page into wa_events.

if sy-subrc eq 0.

wa_events-form = 'HEADER-OF-REPORT2'.

modify it_events2 from wa_events index sy-tabix.

endif.

ENDFORM. " modify_events1

&----


*& Form list_display1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM list_display2.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_STRUCTURE_NAME =

IS_LAYOUT = wa_layout

IT_FIELDCAT = it_fldcat2

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = it_events2

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = itab2

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.

ENDFORM. " list_display1

&----


*& Form header-of-report1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM header-of-report2.

skip 2.

write : 'VENDOR DETAILS' centered.

skip 3.

ENDFORM. " header-of-report1

<b>ALV INTERACTIVE</b>

REPORT ZMK_SHIPMENT_ALV

no standard page heading

line-size 105

line-count 50(5)

message-id zz.

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

  • TABLES *

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

tables : vttk, "Shipment Header

vttp, " Shipment Item

lips. " Delivary Item

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

***TYPE-POOLS *

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

type-pools : slis.

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

*WORK AREAS *

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

  • Work area for field catalog table

data : wa_fldcat type slis_fieldcat_alv.

  • Work area for Events table

data : wa_events type slis_alv_event.

  • Work area for layout.

data : wa_layout type slis_layout_alv.

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

*INTERNAL TABLES *

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

  • Shimpment Details

data : begin of itab occurs 0,

tknum like vttk-tknum,

shtyp like vttk-shtyp,

tpnum like vttp-tpnum,

vbeln like vttp-vbeln,

end of itab.

data : begin of itab1 occurs 0,

vbeln like lips-vbeln,

posnr like lips-posnr,

matnr like lips-matnr,

lfimg like lips-lfimg,

meins like lips-meins,

end of itab1.

  • For field catalog table

data : it_fldcats type slis_t_fieldcat_alv.

  • For Events table

data : it_event type slis_t_event.

  • For layout.

data : it_layout type slis_layout_alv.

  • For field catalog table

data : it_fldcats1 type slis_t_fieldcat_alv.

  • For Events table

data : it_event1 type slis_t_event.

data : v_repid like sy-repid.

*Data Declaration

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

data: v_index type sy-index,

v_vbeln like lips-vbeln.

*SELECT-OPTIONS

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

selection-screen begin of block b with frame title text-001.

select-options : s_tknum for vttk-tknum .

selection-screen end of block b.

*INITIALIZATION

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

initialization.

v_repid = sy-repid.

*START-OF-SELCTION

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

start-of-selection.

perform populate-data.

sort itab by tknum.

top-of-page.

write : 'Shipment wise Delivary Report'.

end-of-selection.

perform build-fieldcatalog.

perform modify-fieldcatalog.

perform build-events.

perform modify-events.

perform set-layout.

  • perform set-pfstatus.

perform list-display.

&----


*& Form populate-data

  • Retrives the Shipment data depending on the selection criteria *

&----


FORM populate-data.

select vttk~tknum

vttk~shtyp

vttp~tpnum

vttp~vbeln

into table itab

from vttk

join vttp

on vttptknum = vttktknum

where vttk~tknum in s_tknum.

if sy-subrc <> 0.

message e999 with 'NO DATA FOUND'.

exit.

endif.

ENDFORM. " populate-data

&----


*& Form build-fieldcatalog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form build-fieldcatalog.

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = v_repid

i_internal_tabname = 'ITAB'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

changing

ct_fieldcat = it_fldcats

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.

endform. " BUILD-FIELDCATALOG

&----


*& Form build-events

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build-events.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = it_event

EXCEPTIONS

LIST_TYPE_WRONG = 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.

ENDFORM. " build-events

&----


*& Form set-layout

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM set-layout.

wa_layout-zebra = 'X'.

wa_layout-colwidth_optimize = 'X'.

wa_layout-no_colhead = space.

wa_layout-no_vline = space.

ENDFORM. " set-layout

&----


*& Form list-display

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM list-display.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

  • I_STRUCTURE_NAME =

IS_LAYOUT = wa_layout

IT_FIELDCAT = it_fldcats

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = it_event

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = itab

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.

ENDFORM. " list-display

&----


*& Form modify-fieldcatalog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify-fieldcatalog.

loop at it_fldcats into wa_fldcat.

case wa_fldcat-fieldname.

when 'TKNUM'.

wa_fldcat-seltext_l = 'Ship No.'.

wa_fldcat-col_pos = 1.

wa_fldcat-ddictxt = 'L'.

when 'SHTYP'.

wa_fldcat-seltext_l = 'Ship Type'.

wa_fldcat-col_pos = 2.

wa_fldcat-ddictxt = 'L'.

when 'TPNUM'.

wa_fldcat-seltext_l = 'Item No.'.

wa_fldcat-col_pos = 3.

wa_fldcat-ddictxt = 'L'.

when 'VBELN'.

wa_fldcat-seltext_l = 'Delivary No.'.

wa_fldcat-hotspot = 'X'.

wa_fldcat-col_pos = 4.

wa_fldcat-ddictxt = 'L'.

endcase.

modify it_fldcats from wa_fldcat.

endloop.

ENDFORM. " modify-fieldcatalog

&----


*& Form modify-events

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form modify-events.

read table it_event with key name =

slis_ev_top_of_page into wa_events.

if sy-subrc = 0.

wa_events-form = 'HEADER-OF-REPORT'.

modify it_event from wa_events index sy-tabix.

clear wa_events.

endif.

read table it_event with key name =

slis_ev_end_of_page into wa_events.

if sy-subrc = 0.

wa_events-form = 'FOOTER-OF-REPORT'.

modify it_event from wa_events index sy-tabix.

clear wa_events.

endif.

endform. " modify-events

&----


*& Form HEADER-OF-REPORT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM HEADER-OF-REPORT.

write : 'Shipment Wise Delivary Report'.

ENDFORM. " HEADER-OF-REPORT

&----


*& Form FOOTER-OF-REPORT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FOOTER-OF-REPORT.

write : 'End of Report'.

ENDFORM. " FOOTER-OF-REPORT

&----


*& Form USER_COMMAND

&----


  • User command for Calling Transaction VT03N, Execute and Refresh

----


FORM user_command USING p_ucomm LIKE sy-ucomm

p_selfield TYPE slis_selfield.

V_INDEX = P_SELFIELD-TABINDEX. " holds the selected table index

CASE p_ucomm.

WHEN '&IC1'.

IF p_selfield-fieldname eq 'VBELN'.

perform secondary_list.

ENDIF.

ENDCASE.

ENDFORM. " USER_COMMAND

&----


*& Form secondary_list

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM secondary_list.

perform get_data1.

perform build-fieldcatalog1.

perform modify-fieldcatalog1.

perform build-events1.

perform modify-events1.

  • perform set-layout.

  • perform set-pfstatus.

perform list-display1.

ENDFORM. " secondary_list

&----


*& Form build-fieldcatalog1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build-fieldcatalog1.

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = v_repid

i_internal_tabname = 'ITAB1'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

changing

ct_fieldcat = it_fldcats1

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.

ENDFORM. " build-fieldcatalog1

&----


*& Form modify-fieldcatalog1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify-fieldcatalog1.

loop at it_fldcats into wa_fldcat.

case wa_fldcat-fieldname.

when 'VBELN'.

wa_fldcat-seltext_l = 'Delivary No.'.

wa_fldcat-col_pos = 1.

wa_fldcat-ddictxt = 'L'.

when 'POSNR'.

wa_fldcat-seltext_l = 'Item No'.

wa_fldcat-col_pos = 2.

wa_fldcat-ddictxt = 'L'.

when 'MATNR'.

wa_fldcat-seltext_l = 'Material'.

wa_fldcat-col_pos = 3.

wa_fldcat-ddictxt = 'L'.

when 'LFIMG'.

wa_fldcat-seltext_l = 'Quantity'.

wa_fldcat-col_pos = 4.

wa_fldcat-ddictxt = 'L'.

when 'MEINS'.

wa_fldcat-seltext_l = 'Unit of Measure'.

wa_fldcat-col_pos = 5.

wa_fldcat-ddictxt = 'L'.

endcase.

modify it_fldcats from wa_fldcat.

endloop.

ENDFORM. " modify-fieldcatalog1

&----


*& Form build-events1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build-events1.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = it_event1

EXCEPTIONS

LIST_TYPE_WRONG = 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.

ENDFORM. " build-events1

&----


*& Form modify-events1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify-events1.

read table it_event1 with key name =

slis_ev_top_of_page into wa_events.

if sy-subrc = 0.

wa_events-form = 'HEADER_OF_REPORT_2'.

modify it_event1 from wa_events index sy-tabix.

clear wa_events.

endif.

ENDFORM. " modify-events1

&----


*& Form list-display1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM list-display1.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

  • I_STRUCTURE_NAME =

IS_LAYOUT = wa_layout

IT_FIELDCAT = it_fldcats1

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = it_event1

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = itab1

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.

ENDFORM. " list-display1

&----


*& Form get_data1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_data1.

READ TABLE itab INDEX V_INDEX.

v_vbeln = itab-vbeln.

select vbeln

posnr

matnr

lfimg

meins

from lips

into table itab1

where vbeln eq v_vbeln.

ENDFORM. " get_data1

&----


*& Form header_of_report_2

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM header_of_report_2.

write: 'Delivary item list'.

ENDFORM. " header_of_report_2

<b>ALV SUBTOTALS</b>

REPORT ZYFI_REPT007

NO STANDARD PAGE HEADING

LINE-SIZE 300

LINE-COUNT 50

MESSAGE-ID ZYFI.

*----


-


*

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

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

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

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

TABLES : COOI, " Commitments

Management: Line Items

LFA1,

" Vendor master (general section)

VBEP,

RKPLN.

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

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

  • TABLE TYPES AND INTERNAL

TABLES

*

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

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

DATA : BEGIN OF TYP_COOI ,

OBJNR LIKE COOI-OBJNR,

SAKTO LIKE COOI-SAKTO,

MEGBTR LIKE COOI-MEGBTR,

MEINH LIKE COOI-MEINH,

WKGBTR LIKE COOI-WKGBTR,

REFBN LIKE COOI-REFBN,

RFPOS LIKE COOI-RFPOS,

SGTXT LIKE COOI-SGTXT,

BUDAT LIKE COOI-BUDAT,

LIFNR LIKE COOI-LIFNR,

END OF TYP_COOI.

DATA : BEGIN OF TYP_LFA1 ,

LIFNR LIKE LFA1-LIFNR,

NAME1 LIKE LFA1-NAME1,

END OF TYP_LFA1.

DATA : BEGIN OF IT_OUTTAB OCCURS 0,

OBJNR LIKE COOI-OBJNR,

SAKTO LIKE COOI-SAKTO,

MEGBTR LIKE COOI-MEGBTR,

MEINH LIKE COOI-MEINH,

WKGBTR LIKE COOI-WKGBTR,

REFBN LIKE COOI-REFBN,

RFPOS LIKE COOI-RFPOS,

SGTXT LIKE COOI-SGTXT,

BUDAT LIKE COOI-BUDAT,

LIFNR LIKE COOI-LIFNR,

NAME1 LIKE LFA1-NAME1,

END OF IT_OUTTAB.

DATA : IT_COOI LIKE TYP_COOI OCCURS

0 WITH HEADER LINE,

IT_LFA1 LIKE TYP_LFA1 OCCURS

0 WITH HEADER LINE.

*-- ALV Declarations

TYPE-POOLS SLIS.

DATA: IT_EVENTS TYPE

SLIS_T_EVENT,

GS_EVENT TYPE

SLIS_ALV_EVENT,

wa_fldcat type

slis_fieldcat_alv.

DATA: S_LAYOUT TYPE SLIS_LAYOUT_ALV,

GT_PRINT TYPE SLIS_PRINT_ALV.

DATA: IT_FLDCAT TYPE

SLIS_T_FIELDCAT_ALV.

DATA: IT_SORT TYPE

SLIS_T_SORTINFO_ALV.

DATA: V_REPID LIKE SY-REPID.

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

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

  • SELECTION

SCREEN

*

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

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

SELECTION-SCREEN BEGIN OF BLOCK B1

WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS : S_KOKRS FOR

COOI-KOKRS NO-EXTENSION NO

INTERVALS,

" Controlling Area

S_BUKRS FOR

COOI-BUKRS NO-EXTENSION NO

INTERVALS,

" Company code

S_GJAHR FOR

COOI-GJAHR NO-EXTENSION NO

INTERVALS,

" Fiscal Year

S_OBJNR FOR

RKPLN-AUFNR MATCHCODE OBJECT ORDE,

" Internal order

S_SAKTO FOR

COOI-SAKTO MATCHCODE OBJECT KART,

" Cost Element

S_BUDAT FOR

COOI-BUDAT, " Debit Date

S_LIFNR FOR

COOI-LIFNR. " Vendor

SELECTION-SCREEN END OF BLOCK B1.

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

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

  • S T A R T O F S E L E C

T I O N *

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

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

START-OF-SELECTION.

*-- Read data

PERFORM GET_DATA.

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

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

  • E N D O F S E L E C T I

O N *

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

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

END-OF-SELECTION.

*-- Process the data and prepare the

output data

PERFORM CALCULATE_FINAL_INFO.

*--Display Report output

PERFORM DISPLAY_REPORT.

*----


-


*

  • FORM CALCULATE_FINAL_INFO

*

*----


-


*

  • Process the data and prepare

final internal table *

*----


-


*

FORM CALCULATE_FINAL_INFO.

DATA : L_OBJNR LIKE COOI-OBJNR.

SORT IT_LFA1 BY LIFNR.

DELETE ADJACENT DUPLICATES FROM

IT_LFA1 COMPARING LIFNR.

LOOP AT IT_COOI.

L_OBJNR = IT_COOI-OBJNR+2(20).

SHIFT L_OBJNR LEFT DELETING

LEADING '0'.

IF L_OBJNR IN S_OBJNR.

READ TABLE IT_LFA1 WITH KEY

LIFNR = IT_COOI-LIFNR.

IF SY-SUBRC EQ 0.

IT_OUTTAB-NAME1 =

IT_LFA1-NAME1.

ENDIF.

MOVE-CORRESPONDING IT_COOI TO

IT_OUTTAB.

CLEAR IT_OUTTAB-OBJNR.

IT_OUTTAB-OBJNR = L_OBJNR.

APPEND IT_OUTTAB.

CLEAR IT_OUTTAB.

CLEAR IT_LFA1.

CLEAR L_OBJNR.

ENDIF.

ENDLOOP.

ENDFORM.

*&----


-


*

*& Form GET_DATA

*&----


-


*

  • Fetch the Data from the table

COOI and LFA1

*----


-


*

FORM GET_DATA.

SELECT OBJNR

SAKTO

MEGBTR

MEINH

WKGBTR

REFBN

RFPOS

SGTXT

BUDAT

LIFNR

FROM COOI

INTO TABLE IT_COOI

WHERE BUDAT IN S_BUDAT

AND LIFNR IN S_LIFNR

AND KOKRS IN S_KOKRS

AND BUKRS IN S_BUKRS

AND GJAHR IN S_GJAHR

AND SAKTO IN S_SAKTO.

IF SY-SUBRC EQ 0 .

  • Get the Vendor name from LFA1

SELECT LIFNR

NAME1

FROM LFA1

INTO TABLE IT_LFA1

FOR ALL ENTRIES IN

IT_COOI

WHERE LIFNR EQ

IT_COOI-LIFNR.

ELSE.

MESSAGE I999 WITH TEXT-013.

ENDIF.

ENDFORM.

" GET_DATA

*&----


-


*

*& Form DISPLAY_REPORT

*&----


-


*

  • Display the output

*----


-


*

FORM DISPLAY_REPORT.

PERFORM BUILD_CATALOG.

PERFORM FRM_PREPARE_EVENT_LIST

TABLES IT_EVENTS.

IF NOT IT_OUTTAB[] IS INITIAL.

CALL FUNCTION

'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM

= V_REPID

I_CALLBACK_USER_COMMAND =

'USER_COMMAND'

IT_FIELDCAT

= IT_FLDCAT

IT_SORT

= IT_SORT

IT_EVENTS

= IT_EVENTS

TABLES

T_OUTTAB

= IT_OUTTAB

EXCEPTIONS

PROGRAM_ERROR

= 1

OTHERS

= 2.

ELSE.

MESSAGE I999 WITH TEXT-013.

ENDIF.

ENDFORM.

" DISPLAY_REPORT

*&----


-


*

*& Form BUILD_CATALOG

*&----


-


*

  • Build the Field catalog for

the ALV Report

*----


-


*

FORM BUILD_CATALOG.

DATA: V_INDEX LIKE SY-TABIX.

V_REPID = SY-REPID.

DATA: LS_SORT TYPE

SLIS_SORTINFO_ALV.

CALL FUNCTION

'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME =

V_REPID

I_INTERNAL_TABNAME =

'IT_OUTTAB'

I_INCLNAME =

V_REPID

CHANGING

CT_FIELDCAT =

IT_FLDCAT

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.

READ TABLE IT_FLDCAT WITH KEY

FIELDNAME = 'WKGBTR'

TABNAME =

'IT_OUTTAB' INTO WA_FLDCAT.

IF SY-SUBRC EQ 0.

WA_FLDCAT-DO_SUM = 'X'.

MODIFY IT_FLDCAT FROM WA_FLDCAT

INDEX SY-TABIX.

ENDIF.

READ TABLE IT_FLDCAT WITH KEY

FIELDNAME = 'OBJNR'

TABNAME

= 'IT_OUTTAB' INTO WA_FLDCAT.

IF SY-SUBRC EQ 0.

WA_FLDCAT-SELTEXT_L = 'Order'.

WA_FLDCAT-COL_POS = 1.

WA_FLDCAT-DDICTXT = 'L'.

MODIFY IT_FLDCAT FROM WA_FLDCAT

INDEX SY-TABIX.

ENDIF.

LS_SORT-FIELDNAME = 'OBJNR'.

LS_SORT-SPOS = 1.

LS_SORT-UP = 'X'.

LS_SORT-SUBTOT = 'X'.

APPEND LS_SORT TO IT_SORT.

ENDFORM.

" BUILD_CATALOG

*&----


-


*

*& Form FRM_PREPARE_EVENT_LIST

*&----


-


*

  • Build the Events

*----


-


*

FORM FRM_PREPARE_EVENT_LIST TABLES

IT_EVENTS TYPE SLIS_T_EVENT.

CLEAR GS_EVENT.

GS_EVENT-NAME =

SLIS_EV_TOP_OF_PAGE.

GS_EVENT-FORM =

'TOP_OF_PAGE_REPORT'.

APPEND GS_EVENT TO IT_EVENTS.

ENDFORM.

" FRM_PREPARE_EVENT_LIST

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

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

  • TOP OF PAGE

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

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

FORM TOP_OF_PAGE_REPORT.

CALL FUNCTION 'Z_YREPORT_HEADER'

EXPORTING

DL_TITLE = SY-TITLE

DL_REPID = SY-CPROG

DL_LINSZ = SY-LINSZ

EXCEPTIONS

OTHERS = 1.

ENDFORM.

" FRM_TOP_OF_PAGE_REPORT

*&----


-


*

*& Form USER_COMMAND

*&----


-


*

  • Drill Down Functionality to Call

the Transaction ME23

*----


-


*

FORM USER_COMMAND USING P_UCOMM

LIKE SY-UCOMM

P_SELFIELD TYPE SLIS_SELFIELD.

DATA : L_INDEX LIKE SY-INDEX,

L_REFBN LIKE COOI-REFBN.

L_INDEX = P_SELFIELD-TABINDEX.

" holds the selected table index

CLEAR L_REFBN.

CASE P_UCOMM.

*-- On Double Click

WHEN '&IC1'.

CLEAR L_REFBN.

*-- Read the Current Line

READ TABLE IT_OUTTAB INDEX

L_INDEX.

IF SY-SUBRC EQ 0.

L_REFBN = IT_OUTTAB-REFBN.

IF NOT L_REFBN IS INITIAL.

*-- Set the BES Paramater Id to the

Current line Purchase Order Number

SET PARAMETER ID 'BES'

FIELD L_REFBN.

*-- Call the Transaction Purchase

Order Display with the above PO

Number

CALL TRANSACTION 'ME23'

AND SKIP FIRST SCREEN.

ENDIF.

ELSE.

MESSAGE E999 WITH TEXT-014.

ENDIF.

ENDCASE.

ENDFORM.

" USER_COMMAND

Thanks,

Mahesh