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

Reg.alv interactive report

Former Member
0 Likes
536

Hi Experts,

I want one Alv interactive report sample program , please send the report.

Rewards are help ful answers.

Thanks & Regards,

N.Narasimha Rao,

1 ACCEPTED SOLUTION
Read only

former_member386202
Active Contributor
0 Likes
506

Hi,

Refer below code

&----


*& Report ZGRIR

*&

&----


*&

*&

&----


REPORT zgrir

NO STANDARD PAGE HEADING.

----


  • TABLES *

----


TABLES : bsis. "Accounting: Secondary Index for G/L Accounts

----


  • TYPE-POOL *

----


TYPE-POOLS : slis. "Global types for generic cunning building blocks

----


  • CONSTANTS *

----


CONSTANTS : c_top_of_page(15) TYPE c VALUE 'SUB_TOP_OF_PAGE'.

----


  • TYPES *

----


TYPES : BEGIN OF t_bsis,

bukrs TYPE bukrs,

zuonr TYPE dzuonr,

gjahr TYPE gjahr,

belnr TYPE belnr_d,

budat TYPE budat,

bldat TYPE bldat,

blart TYPE blart,

shkzg TYPE shkzg,

dmbtr TYPE dmbtr,

xref3 TYPE xref3,

mblnr TYPE mblnr,

ebeln TYPE ebeln,

ebelp TYPE ebelp,

txz01 TYPE txz01,

menge TYPE menge_d,

mblnr1 TYPE mblnr,

mjahr TYPE mjahr,

lfpos TYPE lfpos,

lifnr TYPE lifnr,

name1 TYPE name1_gp,

END OF t_bsis,

BEGIN OF t_bkpf,

belnr TYPE belnr_d,

gjahr TYPE gjahr,

awkey TYPE awkey,

END OF t_bkpf,

BEGIN OF t_mseg,

mblnr TYPE mblnr,

mjahr TYPE mjahr,

lifnr TYPE elifn,

erfmg TYPE erfmg,

ebeln TYPE bstnr,

ebelp TYPE ebelp,

lfpos TYPE lfpos,

txz01 TYPE txz01,

END OF t_mseg,

BEGIN OF t_mkpf,

mblnr TYPE mblnr,

mjahr TYPE mjahr,

usnam TYPE usnam,

END OF t_mkpf,

BEGIN OF t_lfa1,

lifnr TYPE lifnr,

name1 TYPE name1_gp,

END OF t_lfa1,

BEGIN OF t_ekpo,

ebeln TYPE ebeln,

ebelp TYPE ebelp,

txz01 TYPE txz01,

END OF t_ekpo,

BEGIN OF t_ekbe,

ebeln TYPE ebeln,

ebelp TYPE ebelp,

belnr TYPE mblnr,

menge TYPE menge_d,

END OF t_ekbe,

BEGIN OF t_bsik,

bukrs TYPE bukrs,

lifnr TYPE lifnr,

gjahr TYPE gjahr,

belnr TYPE belnr_d,

END OF t_bsik,

BEGIN OF t_final,

blart TYPE blart,

belnr TYPE belnr_d,

bldat TYPE bldat,

budat TYPE budat,

lifnr TYPE lifnr,

name1 TYPE name1,

xref3 TYPE xref3,

zuonr TYPE dzuonr,

dmbtr TYPE dmbtr,

ebeln TYPE ebeln,

txz01 TYPE txz01,

erfmg TYPE erfmg,

menge TYPE menge_d,

mblnr TYPE mblnr,

END OF t_final.

----


  • Work Areas *

----


DATA : wa_bsis TYPE t_bsis,

wa_bkpf TYPE t_bkpf,

wa_mseg TYPE t_mseg,

wa_mkpf TYPE t_mkpf,

wa_lfa1 TYPE t_lfa1,

wa_dtlfa1 TYPE t_lfa1,

wa_ekpo TYPE t_ekpo,

wa_ekbe TYPE t_ekbe,

wa_bsik TYPE t_bsik,

wa_final TYPE t_final,

wa_layout TYPE slis_layout_alv.

----


  • Internal tables *

----


DATA : it_bsis TYPE STANDARD TABLE OF t_bsis,

it_bkpf TYPE STANDARD TABLE OF t_bkpf,

it_mseg TYPE STANDARD TABLE OF t_mseg,

it_mkpf TYPE STANDARD TABLE OF t_mkpf,

it_lfa1 TYPE STANDARD TABLE OF t_lfa1,

it_dtlfa1 TYPE STANDARD TABLE OF t_lfa1,

it_ekpo TYPE STANDARD TABLE OF t_ekpo,

it_ekbe TYPE STANDARD TABLE OF t_ekbe,

it_bsik TYPE STANDARD TABLE OF t_bsik,

it_final TYPE STANDARD TABLE OF t_final,

it_events TYPE slis_t_event,

it_header TYPE slis_t_listheader,

it_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.

----


  • PARAMETERS & SELECT-OPTIONS *

----


SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.

PARAMETERS : p_bukrs LIKE bsis-bukrs OBLIGATORY DEFAULT '1000',

p_hkont LIKE bsis-hkont OBLIGATORY.

SELECT-OPTIONS : s_blart FOR bsis-blart,

s_budat FOR bsis-budat OBLIGATORY.

SELECTION-SCREEN END OF BLOCK blk1.

----


  • START-OF-SELECTION *

----


START-OF-SELECTION.

PERFORM sub_read_bsis.

PERFORM sub_read_bkpf.

PERFORM sub_read_mseg.

PERFORM sub_read_mkpf.

PERFORM sub_read_lfa1.

PERFORM sub_read_ekpo.

PERFORM sub_read_ekbe.

PERFORM sub_read_bsik.

PERFORM sub_read_dtlfa1.

PERFORM sub_collect_data.

----


  • END-OF-SELECTION *

----


END-OF-SELECTION.

*--This perform creates the ALV events

PERFORM sub_create_events.

PERFORM sub_field_catalog.

PERFORM sub_display_data.

&----


*& Form sub_read_bsis

&----


  • text

----


FORM sub_read_bsis .

*--Local Variables

DATA : lv_index LIKE sy-tabix.

SELECT bukrs

zuonr

gjahr

belnr

budat

bldat

blart

shkzg

dmbtr

xref3

FROM bsis

INTO CORRESPONDING FIELDS OF TABLE it_bsis

WHERE bukrs EQ p_bukrs

AND hkont EQ p_hkont

AND blart IN s_blart

AND budat IN s_budat.

IF sy-subrc EQ 0.

SORT it_bsis BY zuonr belnr.

ENDIF.

LOOP AT it_bsis INTO wa_bsis.

lv_index = sy-tabix.

wa_bsis-mblnr = wa_bsis-xref3+4(10).

wa_bsis-lfpos = wa_bsis-xref3+14(4).

wa_bsis-ebeln = wa_bsis-zuonr+0(10).

wa_bsis-ebelp = wa_bsis-zuonr+10(5).

MODIFY it_bsis FROM wa_bsis INDEX lv_index

TRANSPORTING mblnr lfpos ebeln ebelp.

CLEAR : wa_bsis.

ENDLOOP.

ENDFORM. " sub_read_bsis

&----


*& Form SUB_READ_BKPF

&----


  • text

----


FORM sub_read_bkpf .

*--Local Variables

DATA : lv_index LIKE sy-tabix.

IF NOT it_bsis[] IS INITIAL.

SELECT belnr

gjahr

awkey

FROM bkpf

INTO TABLE it_bkpf

FOR ALL ENTRIES IN it_bsis

WHERE bukrs EQ it_bsis-bukrs

AND belnr EQ it_bsis-belnr

AND gjahr EQ it_bsis-gjahr.

IF sy-subrc EQ 0.

SORT it_bkpf BY belnr gjahr.

ENDIF.

ENDIF.

SORT it_bsis BY belnr gjahr.

IF NOT it_bsis[] IS INITIAL.

LOOP AT it_bsis INTO wa_bsis.

lv_index = sy-tabix.

CLEAR : wa_bkpf.

READ TABLE it_bkpf INTO wa_bkpf WITH KEY belnr = wa_bsis-belnr

gjahr = wa_bsis-gjahr

BINARY SEARCH.

IF sy-subrc EQ 0.

wa_bsis-mblnr1 = wa_bkpf-awkey+0(10).

ENDIF.

MODIFY it_bsis FROM wa_bsis INDEX lv_index

TRANSPORTING mblnr1.

CLEAR : wa_bkpf,

wa_bsis.

ENDLOOP.

ENDIF.

ENDFORM. " SUB_READ_BKPF

&----


*& Form sub_read_mseg

&----


  • text

----


FORM sub_read_mseg .

*--Local Variables

DATA : lv_index LIKE sy-tabix.

IF NOT it_bsis[] IS INITIAL.

LOOP AT it_bsis INTO wa_bsis.

lv_index = sy-tabix.

wa_bsis-mjahr = wa_bsis-budat+0(4).

MODIFY it_bsis FROM wa_bsis INDEX lv_index

TRANSPORTING mjahr.

CLEAR : wa_bsis.

ENDLOOP.

SELECT mblnr

mjahr

lifnr

erfmg

ebeln

ebelp

lfpos

FROM mseg

INTO CORRESPONDING FIELDS OF TABLE it_mseg

FOR ALL ENTRIES IN it_bsis

WHERE mblnr EQ it_bsis-mblnr

AND mjahr EQ it_bsis-mjahr.

IF sy-subrc EQ 0.

SORT it_mseg BY mblnr mjahr lfpos.

ENDIF.

ENDIF.

SORT it_bsis BY mblnr mjahr lfpos.

IF NOT it_mseg[] IS INITIAL.

LOOP AT it_bsis INTO wa_bsis.

lv_index = sy-tabix.

CLEAR : wa_mseg.

READ TABLE it_mseg INTO wa_mseg WITH KEY mblnr = wa_bsis-mblnr

mjahr = wa_bsis-mjahr

lfpos = wa_bsis-lfpos

BINARY SEARCH.

IF sy-subrc EQ 0.

wa_bsis-ebeln = wa_mseg-ebeln.

wa_bsis-ebelp = wa_mseg-ebelp.

ENDIF.

MODIFY it_bsis FROM wa_bsis INDEX lv_index

TRANSPORTING ebeln ebelp.

CLEAR : wa_bsis,

wa_mseg.

ENDLOOP.

ENDIF.

ENDFORM. " sub_read_mseg

&----


*& Form sub_read_mkpf

&----


  • text

----


FORM sub_read_mkpf .

IF NOT it_bsis[] IS INITIAL.

SELECT mblnr

mjahr

usnam

FROM mkpf

INTO TABLE it_mkpf

FOR ALL ENTRIES IN it_bsis

WHERE mblnr EQ it_bsis-mblnr

AND mjahr EQ it_bsis-mjahr.

IF sy-subrc EQ 0.

SORT it_mkpf BY mblnr mjahr.

ENDIF.

ENDIF.

ENDFORM. " sub_read_mkpf

&----


*& Form sub_read_lfa1

&----


  • text

----


FORM sub_read_lfa1 .

IF NOT it_mseg[] IS INITIAL.

SELECT lifnr

name1

FROM lfa1

INTO TABLE it_lfa1

FOR ALL ENTRIES IN it_mseg

WHERE lifnr EQ it_mseg-lifnr.

IF sy-subrc EQ 0.

SORT it_lfa1 BY lifnr.

ENDIF.

ENDIF.

ENDFORM. " sub_readǝlfa1

&----


*& Form sub_read_ekpo

&----


  • text

----


FORM sub_read_ekpo .

*--Local Variables

DATA : lv_index LIKE sy-tabix.

IF NOT it_mseg[] IS INITIAL.

SELECT ebeln

ebelp

txz01

FROM ekpo

INTO TABLE it_ekpo

FOR ALL ENTRIES IN it_mseg

WHERE ebeln EQ it_mseg-ebeln

AND ebelp EQ it_mseg-ebelp.

IF sy-subrc EQ 0.

SORT it_ekpo BY ebeln ebelp.

ENDIF.

SORT it_mseg BY ebeln ebelp.

LOOP AT it_mseg INTO wa_mseg.

lv_index = sy-tabix.

CLEAR : wa_ekpo.

READ TABLE it_ekpo INTO wa_ekpo WITH KEY ebeln = wa_mseg-ebeln

ebelp = wa_mseg-ebelp

BINARY SEARCH.

IF sy-subrc EQ 0.

wa_mseg-txz01 = wa_ekpo-txz01.

ENDIF.

MODIFY it_mseg FROM wa_mseg INDEX lv_index

TRANSPORTING txz01.

CLEAR : wa_mseg,

wa_ekpo.

ENDLOOP.

ENDIF.

ENDFORM. " sub_read_ekpo

&----


*& Form SUB_READ_EKBE

&----


  • text

----


FORM sub_read_ekbe .

*--Local Variables

DATA : lv_index LIKE sy-tabix.

IF NOT it_bsis[] IS INITIAL.

SELECT ebeln

ebelp

belnr

menge

FROM ekbe

INTO TABLE it_ekbe

FOR ALL ENTRIES IN it_bsis

WHERE ebeln EQ it_bsis-ebeln

AND ebelp EQ it_bsis-ebelp

AND belnr EQ it_bsis-mblnr1

AND vgabe EQ '2'.

IF sy-subrc EQ 0.

SORT it_ekbe BY ebeln ebelp belnr.

ENDIF.

SORT it_bsis BY ebeln ebelp mblnr1.

LOOP AT it_bsis INTO wa_bsis.

lv_index = sy-tabix.

CLEAR : wa_ekpo.

READ TABLE it_ekpo INTO wa_ekpo WITH KEY ebeln = wa_bsis-ebeln

ebelp = wa_bsis-ebelp

BINARY SEARCH.

IF sy-subrc EQ 0.

wa_bsis-txz01 = wa_ekpo-txz01.

ENDIF.

CLEAR : wa_ekbe.

READ TABLE it_ekbe INTO wa_ekbe WITH KEY ebeln = wa_bsis-ebeln

ebelp = wa_bsis-ebelp

belnr = wa_bsis-mblnr1

BINARY SEARCH.

IF sy-subrc EQ 0.

wa_bsis-menge = wa_ekbe-menge.

ENDIF.

MODIFY it_bsis FROM wa_bsis INDEX lv_index

TRANSPORTING txz01 menge.

CLEAR : wa_bsis,

wa_ekpo.

ENDLOOP.

ENDIF.

ENDFORM. " SUB_READ_EKBE

&----


*& Form sub_read_bsik

&----


  • text

----


FORM sub_read_bsik .

*--Local Variables

DATA : lv_index LIKE sy-tabix.

IF NOT it_bsis[] IS INITIAL.

SELECT bukrs

lifnr

gjahr

belnr

FROM bsik

INTO TABLE it_bsik

FOR ALL ENTRIES IN it_bsis

WHERE bukrs EQ it_bsis-bukrs

AND gjahr EQ it_bsis-gjahr

AND belnr EQ it_bsis-belnr.

IF sy-subrc EQ 0.

SORT it_bsik BY belnr gjahr.

ENDIF.

SORT it_bsis BY belnr gjahr.

LOOP AT it_bsis INTO wa_bsis.

lv_index = sy-tabix.

CLEAR : wa_bsik.

READ TABLE it_bsik INTO wa_bsik WITH KEY belnr = wa_bsis-belnr

gjahr = wa_bsis-gjahr

BINARY SEARCH.

IF sy-subrc EQ 0.

wa_bsis-lifnr = wa_bsik-lifnr.

ENDIF.

MODIFY it_bsis FROM wa_bsis INDEX lv_index

TRANSPORTING lifnr.

CLEAR : wa_bsis,

wa_bsik.

ENDLOOP.

ENDIF.

ENDFORM. " sub_read_bsik

&----


*& Form sub_read_dtlfa1

&----


  • text

----


FORM sub_read_dtlfa1 .

*--Local Variables

DATA : lv_index LIKE sy-tabix.

IF NOT it_bsis[] IS INITIAL.

SELECT lifnr

name1

FROM lfa1

INTO TABLE it_dtlfa1

FOR ALL ENTRIES IN it_bsis

WHERE lifnr EQ it_bsis-lifnr.

IF sy-subrc EQ 0.

SORT it_dtlfa1 BY lifnr.

ENDIF.

SORT it_bsis BY lifnr.

LOOP AT it_bsis INTO wa_bsis.

lv_index = sy-tabix.

CLEAR : wa_dtlfa1.

READ TABLE it_dtlfa1 INTO wa_dtlfa1 WITH KEY lifnr = wa_bsis-lifnr

BINARY SEARCH.

IF sy-subrc EQ 0.

wa_bsis-name1 = wa_dtlfa1-name1.

ENDIF.

MODIFY it_bsis FROM wa_bsis INDEX lv_index

TRANSPORTING name1.

CLEAR : wa_bsis,

wa_dtlfa1.

ENDLOOP.

ENDIF.

ENDFORM. " sub_read_dtlfa1

&----


*& Form sub_collect_data

&----


  • text

----


FORM sub_collect_data .

*--Local Variables

DATA : lv_index LIKE sy-tabix.

SORT it_bsis BY mblnr gjahr ebeln ebelp.

SORT it_mseg BY mblnr mjahr ebeln ebelp.

IF NOT it_bsis[] IS INITIAL.

LOOP AT it_bsis INTO wa_bsis.

wa_final-blart = wa_bsis-blart.

wa_final-belnr = wa_bsis-belnr.

wa_final-bldat = wa_bsis-bldat.

wa_final-budat = wa_bsis-budat.

wa_final-xref3 = wa_bsis-xref3.

wa_final-zuonr = wa_bsis-zuonr.

wa_final-ebeln = wa_bsis-ebeln.

wa_final-txz01 = wa_bsis-txz01.

wa_final-lifnr = wa_bsis-lifnr.

IF wa_bsis-shkzg EQ 'H'.

wa_final-dmbtr = wa_bsis-dmbtr * ( -1 ).

ELSE.

wa_final-dmbtr = wa_bsis-dmbtr.

ENDIF.

IF wa_bsis-blart EQ 'RE'.

wa_final-menge = wa_bsis-menge.

ENDIF.

CLEAR : wa_mseg.

READ TABLE it_mseg INTO wa_mseg WITH KEY mblnr = wa_bsis-mblnr

mjahr = wa_bsis-mjahr

ebeln = wa_bsis-ebeln

ebelp = wa_bsis-ebelp

BINARY SEARCH.

IF sy-subrc EQ 0.

wa_final-lifnr = wa_mseg-lifnr.

wa_final-txz01 = wa_mseg-txz01.

IF wa_bsis-blart EQ 'WE'.

wa_final-erfmg = wa_mseg-erfmg.

ENDIF.

IF wa_bsis-ebeln IS INITIAL.

wa_final-ebeln = wa_mseg-ebeln.

ENDIF.

ENDIF.

IF wa_bsis-blart EQ 'WE'.

wa_final-mblnr = wa_bsis-mblnr.

ENDIF.

APPEND wa_final TO it_final.

CLEAR : wa_bsis,

wa_final,

wa_mseg,

wa_mkpf.

ENDLOOP.

ENDIF.

SORT it_final BY lifnr .

IF NOT it_final[] IS INITIAL.

LOOP AT it_final INTO wa_final.

lv_index = sy-tabix.

CLEAR : wa_lfa1.

READ TABLE it_lfa1 INTO wa_lfa1 WITH KEY lifnr = wa_final-lifnr

BINARY SEARCH.

IF sy-subrc EQ 0.

wa_final-name1 = wa_lfa1-name1.

ELSE.

CLEAR : wa_dtlfa1.

READ TABLE it_dtlfa1 INTO wa_dtlfa1 WITH KEY lifnr = wa_final-lifnr

BINARY SEARCH.

IF sy-subrc EQ 0.

wa_final-name1 = wa_dtlfa1-name1.

ENDIF.

ENDIF.

MODIFY it_final FROM wa_final INDEX lv_index

TRANSPORTING name1.

CLEAR : wa_final,

wa_lfa1.

ENDLOOP.

ENDIF.

ENDFORM. " sub_collect_data

&----


*& Form sub_create_events *

&----


  • This form will display the ALV Events *

----


FORM sub_create_events .

*--Local Work Area

DATA: lwa_event TYPE slis_alv_event. "Work area for Events

*--Call Function to display the events for the ALV

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 1

IMPORTING

et_events = it_events.

*--Sort by Name

SORT it_events BY name.

*--Clear

CLEAR lwa_event.

READ TABLE it_events INTO lwa_event WITH KEY name = slis_ev_top_of_page

BINARY SEARCH.

IF sy-subrc = 0.

MOVE c_top_of_page TO lwa_event-form.

MODIFY it_events FROM lwa_event TRANSPORTING form WHERE

name = slis_ev_top_of_page.

ENDIF.

*--Clear

CLEAR : lwa_event.

ENDFORM. "sub_create_events

&----


*& Form sub_top_of_page *

&----


  • This form is to build the Page Header *

----


FORM sub_top_of_page .

*--Local Variable

DATA : lv_title(120) TYPE c, " Title

lv_blart(30) TYPE c,

lv_date(30) TYPE c,

lv_bdate1(10) TYPE c,

lv_bdate2(10) TYPE c,

lv_hkont(10) TYPE c.

*--Local Work Area

DATA : lwa_line TYPE slis_listheader. " Hold list header

WRITE : p_hkont TO lv_hkont.

SHIFT lv_hkont LEFT DELETING LEADING '0'.

*--Title Display

lwa_line-typ = 'H'. " header

lv_title = sy-title.

lwa_line-info = lv_title.

APPEND lwa_line TO it_header.

CLEAR lwa_line.

*--Compnay code

lwa_line-typ = 'S'. " Item

  • WRITE: p_bukrs TO lv_month.

lwa_line-key = text-017.

lwa_line-info = p_bukrs.

APPEND lwa_line TO it_header.

CLEAR lwa_line.

*--GL account

lwa_line-typ = 'S'. " Item

  • WRITE: p_bud TO lv_bud.

lwa_line-key = text-018.

lwa_line-info = lv_hkont.

APPEND lwa_line TO it_header.

CLEAR lwa_line.

IF NOT s_blart[] IS INITIAL.

IF NOT s_blart-high IS INITIAL.

CONCATENATE s_blart-low 'to' s_blart-high INTO lv_blart SEPARATED BY space.

*--Document type

lwa_line-typ = 'S'. " Item

  • WRITE: p_bud TO lv_bud.

lwa_line-key = text-019.

lwa_line-info = lv_blart.

ELSE.

*--Document type

lwa_line-typ = 'S'. " Item

  • WRITE: p_bud TO lv_bud.

lwa_line-key = text-019.

lwa_line-info = s_blart-low.

ENDIF.

ENDIF.

APPEND lwa_line TO it_header.

CLEAR: lwa_line.

IF NOT s_budat-high IS INITIAL.

WRITE: s_budat-low TO lv_bdate1.

WRITE: s_budat-high TO lv_bdate2.

CONCATENATE lv_bdate1 'to' lv_bdate2 INTO lv_date SEPARATED BY space.

*--Posting Date

lwa_line-typ = 'S'. " Item

  • WRITE: p_bud TO lv_bud.

lwa_line-key = text-020.

lwa_line-info = lv_date.

ELSE.

*--Posting Date

lwa_line-typ = 'S'. " Item

WRITE: s_budat-low TO lv_bdate1.

lwa_line-key = text-020.

lwa_line-info = lv_bdate1.

ENDIF.

APPEND lwa_line TO it_header.

CLEAR: lwa_line.

*--This funcation module will display the top of the page

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = it_header.

*--Free

FREE : it_header.

ENDFORM. "sub_top_of_page

&----


*& Form user_command

&----


  • text

----


  • -->U_COM text

----


FORM user_command USING u_com LIKE sy-ucomm

sel_field TYPE slis_selfield.

*--Local Variables

DATA : lv_belnr TYPE belnr_d,

lv_bukrs TYPE bukrs,

lv_gjahr TYPE gjahr.

IF sel_field-fieldname EQ 'BELNR'.

READ TABLE it_bsis INTO wa_bsis WITH KEY belnr = sel_field-value.

IF sy-subrc EQ 0.

lv_belnr = wa_bsis-belnr.

lv_bukrs = wa_bsis-bukrs.

lv_gjahr = wa_bsis-gjahr.

ENDIF.

CASE u_com.

WHEN '&IC1'.

SELECT SINGLE belnr

bukrs

gjahr

FROM bsis

INTO (lv_belnr,lv_bukrs,lv_gjahr)

WHERE belnr EQ lv_belnr

AND bukrs EQ lv_bukrs

AND gjahr EQ lv_gjahr.

IF sy-subrc EQ 0.

SET PARAMETER ID : 'BLN' FIELD lv_belnr,

'BUK' FIELD lv_bukrs,

'GJR' FIELD lv_gjahr.

CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.

ENDIF.

ENDCASE.

ENDIF.

ENDFORM. "user_command

&----


*& Form sub_field_catalog

&----


  • text

----


FORM sub_field_catalog .

it_fieldcat-fieldname = 'BELNR'.

it_fieldcat-seltext_m = text-003.

it_fieldcat-col_pos = 0.

it_fieldcat-outputlen = 10.

it_fieldcat-key = 'X'.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'BLART'.

it_fieldcat-seltext_m = text-002.

it_fieldcat-col_pos = 1.

it_fieldcat-outputlen = 2.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'BLDAT'.

it_fieldcat-seltext_m = text-004.

it_fieldcat-col_pos = 2.

it_fieldcat-outputlen = 8.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'BUDAT'.

it_fieldcat-seltext_m = text-005.

it_fieldcat-col_pos = 3.

it_fieldcat-outputlen = 8.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'LIFNR'.

it_fieldcat-seltext_m = text-006.

it_fieldcat-col_pos = 4.

it_fieldcat-outputlen = 10.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'NAME1'.

it_fieldcat-seltext_m = text-007.

it_fieldcat-col_pos = 5.

it_fieldcat-outputlen = 35.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'XREF3'.

it_fieldcat-seltext_m = text-008.

it_fieldcat-col_pos = 6.

it_fieldcat-outputlen = 20.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'ZUONR'.

it_fieldcat-seltext_m = text-009.

it_fieldcat-col_pos = 7.

it_fieldcat-outputlen = 18.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'DMBTR'.

it_fieldcat-seltext_m = text-010.

it_fieldcat-col_pos = 8.

it_fieldcat-outputlen = 13.

it_fieldcat-do_sum = 'X'.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'EBELN'.

it_fieldcat-seltext_m = text-011.

it_fieldcat-col_pos = 9.

it_fieldcat-outputlen = 10.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'TXZ01'.

it_fieldcat-seltext_m = text-012.

it_fieldcat-col_pos = 10.

it_fieldcat-outputlen = 40.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'ERFMG'.

it_fieldcat-seltext_m = text-013.

it_fieldcat-col_pos = 11.

it_fieldcat-outputlen = 13.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'MENGE'.

it_fieldcat-seltext_m = text-014.

it_fieldcat-col_pos = 12.

it_fieldcat-outputlen = 13.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'MBLNR'.

it_fieldcat-seltext_m = text-015.

it_fieldcat-col_pos = 13.

it_fieldcat-outputlen = 10.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

ENDFORM. " sub_field_catalog

&----


*& Form sub_display_data

&----


  • text

----


FORM sub_display_data .

*--Local Variables

DATA : lv_repid LIKE sy-repid.

*--Pass the Report name

lv_repid = sy-repid.

wa_layout-colwidth_optimize = 'X'.

IF NOT it_final[] IS INITIAL.

*--Call the function module to display the ALV report

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = lv_repid

is_layout = wa_layout

it_fieldcat = it_fieldcat[]

i_default = 'X'

i_save = 'A'

i_callback_user_command = 'USER_COMMAND'

  • is_variant = wa_variant

it_events = it_events

  • is_print = wa_print

  • it_sort = li_sort

TABLES

t_outtab = it_final

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.

ELSE.

*--No data found for the given selection criteria.

MESSAGE text-016 TYPE 'I'.

LEAVE LIST-PROCESSING.

ENDIF.

ENDFORM. " sub_display_data.

Regards,

Prashant

3 REPLIES 3
Read only

Former Member
0 Likes
506

TYPE-POOLS: SLIS.

*type declaration for values from ekko

TYPES: BEGIN OF I_EKKO,

EBELN LIKE EKKO-EBELN,

AEDAT LIKE EKKO-AEDAT,

BUKRS LIKE EKKO-BUKRS,

BSART LIKE EKKO-BSART,

LIFNR LIKE EKKO-LIFNR,

END OF I_EKKO.

DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,

WA_EKKO TYPE I_EKKO.

*type declaration for values from ekpo

TYPES: BEGIN OF I_EKPO,

EBELN LIKE EKPO-EBELN,

EBELP LIKE EKPO-EBELP,

MATNR LIKE EKPO-MATNR,

MENGE LIKE EKPO-MENGE,

MEINS LIKE EKPO-MEINS,

NETPR LIKE EKPO-NETPR,

END OF I_EKPO.

DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,

WA_EKPO TYPE I_EKPO .

*variable for Report ID

DATA: V_REPID LIKE SY-REPID .

*declaration for fieldcatalog

DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.

  • declaration for events table where user comand or set PF status will

  • be defined

DATA: V_EVENTS TYPE SLIS_T_EVENT,

WA_EVENT TYPE SLIS_ALV_EVENT.

  • declartion for layout

DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.

  • declaration for variant(type of display we want)

DATA: I_VARIANT TYPE DISVARIANT,

I_VARIANT1 TYPE DISVARIANT,

I_SAVE(1) TYPE C.

*PARAMETERS : p_var TYPE disvariant-variant.

*Title displayed when the alv list is displayed

DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.

DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.

INITIALIZATION.

V_REPID = SY-REPID.

PERFORM BUILD_FIELDCATLOG.

PERFORM EVENT_CALL.

PERFORM POPULATE_EVENT.

START-OF-SELECTION.

PERFORM DATA_RETRIEVAL.

PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.

PERFORM DISPLAY_ALV_REPORT.

&----


*& Form BUILD_FIELDCATLOG

&----


  • Fieldcatalog has all the field details from ekko

----


FORM BUILD_FIELDCATLOG.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'EBELN'.

WA_FIELDCAT-SELTEXT_M = 'PO NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'AEDAT'.

WA_FIELDCAT-SELTEXT_M = 'DATE.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'BUKRS'.

WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'BUKRS'.

WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'LIFNR'.

WA_FIELDCAT-NO_OUT = 'X'.

WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG

&----


*& Form EVENT_CALL

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = V_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. "EVENT_CALL

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'TOP_OF_PAGE'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-FORM.

ENDIF.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'USER_COMMAND'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-NAME.

ENDIF.

ENDFORM. "POPULATE_EVENT

&----


*& Form data_retrieval

&----


  • retreiving values from the database table ekko

----


FORM DATA_RETRIEVAL.

SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.

ENDFORM. "data_retrieval

&----


*& Form bUild_listheader

&----


  • text

----


  • -->I_LISTHEADEtext

----


FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA HLINE TYPE SLIS_LISTHEADER.

HLINE-INFO = 'this is my first alv pgm'.

HLINE-TYP = 'H'.

ENDFORM. "build_listheader

&----


*& Form display_alv_report

&----


  • text

----


FORM DISPLAY_ALV_REPORT.

V_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

I_GRID_TITLE = I_TITLE_EKKO

  • I_GRID_SETTINGS =

  • IS_LAYOUT = ALV_LAYOUT

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • i_default = 'ZLAY1'

I_SAVE = 'A'

  • is_variant = i_variant

IT_EVENTS = V_EVENTS

TABLES

T_OUTTAB = IT_EKKO

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

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER

  • i_logo =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->, text

  • -->RS_SLEFIELDtext

----


FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.

PERFORM BUILD_FIELDCATLOG_EKPO.

PERFORM EVENT_CALL_EKPO.

PERFORM POPULATE_EVENT_EKPO.

PERFORM DATA_RETRIEVAL_EKPO.

PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.

PERFORM DISPLAY_ALV_EKPO.

ENDCASE.

ENDFORM. "user_command

&----


*& Form BUILD_FIELDCATLOG_EKPO

&----


  • text

----


FORM BUILD_FIELDCATLOG_EKPO.

WA_FIELDCAT-TABNAME = 'IT_EKPO'.

WA_FIELDCAT-FIELDNAME = 'EBELN'.

WA_FIELDCAT-SELTEXT_M = 'PO NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKPO'.

WA_FIELDCAT-FIELDNAME = 'EBELP'.

WA_FIELDCAT-SELTEXT_M = 'LINE NO'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MENGE'.

WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MEINS'.

WA_FIELDCAT-SELTEXT_M = 'UOM'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'NETPR'.

WA_FIELDCAT-SELTEXT_M = 'PRICE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG_EKPO

&----


*& Form event_call_ekpo

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL_EKPO.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = V_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. "event_call_ekpo

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT_EKPO.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'TOP_OF_PAGE'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-FORM.

ENDIF.

ENDFORM. "POPULATE_EVENT

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM F_TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER

  • i_logo =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->, text

  • -->RS_SLEFIELDtext

----


*retreiving values from the database table ekko

FORM DATA_RETRIEVAL_EKPO.

SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.

ENDFORM.

FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA: HLINE1 TYPE SLIS_LISTHEADER.

HLINE1-TYP = 'H'.

HLINE1-INFO = 'CHECKING PGM'.

ENDFORM.

FORM DISPLAY_ALV_EKPO.

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 = 'F_USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = '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_TITLE_EKPO

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT =

I_SAVE = 'A'

  • IS_VARIANT =

IT_EVENTS = V_EVENTS

TABLES

T_OUTTAB = IT_EKPO

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.

Ankesh Jindal

Read only

Former Member
0 Likes
506

&----


*& Report Z_ALVREPORT *

*& *

&----


*& *

*& *

&----


report z_alvreport .

tables:vbak,vbap,mara.

type-pools: slis.

*PARAMETERS:P_VBELN TYPE VBAK-VBELN.

types: begin of i_vbak,

vbeln like vbak-vbeln,

erdat like vbak-erdat,

erzet like vbak-erzet,

ernam like vbak-ernam,

  • LINE_COLOR(4) TYPE C, "ROW COLOR

end of i_vbak.

data: it_vbak type standard table of i_vbak initial size 0,

wa_vbak type i_vbak.

*DATA:wa_sort1 TYPE slis_t_sortinfo_alv.

*TYPES:BEGIN OF I_MARA,

  • MATNR LIKE MARA-MATNR,

    • MTART LIKE MARA-MTART,

  • END OF I_MARA.

*

*DATA: IT_MARA TYPE STANDARD TABLE OF I_MARA INITIAL SIZE 0,

  • WA_MARA TYPE I_MARA.

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

*DATA: WA_COLOR TYPE LVC_S_SCOL. "FOR ROW COLOR

*DATA: IT_COLOR TYPE TABLE OF LVC_S_SCOL.

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

types: begin of i_vbap,

vbeln like vbap-vbeln,

posnr like vbap-posnr,

matnr like vbap-matnr,

matwa like vbap-matwa,

end of i_vbap.

data: it_vbap type standard table of i_vbap initial size 0,

wa_vbap type i_vbap .

*variable for current report ID

data: v_repid like sy-repid .

*declaration for fieldcatalog

data: i_fieldcat type slis_t_fieldcat_alv,

wa_fieldcat type slis_fieldcat_alv.

data: it_listheader type slis_t_listheader.

  • declaration for events table where user comand or set PF status will be defined

data: v_events type slis_t_event,

wa_event type slis_alv_event.

  • declartion for layout

data: alv_layout type slis_layout_alv.

  • declaration for variant(type of display we want)

data: i_variant type disvariant,

i_variant1 type disvariant,

i_save(1) type c,

col_pos type i.

*Title displayed when the alv list is displayed

data: i_title_vbak type lvc_title value 'FIRST LIST DISPLAYED'.

data: i_title_vbap type lvc_title value 'SECONDRY LIST DISPLAYED'.

initialization.

v_repid = sy-repid.

perform build_fieldcatlog.

  • PERFORM BUILD_LAYOUT. "FOR COLOR

perform event_call.

perform populate_event.

start-of-selection.

perform data_retrieval.

perform build_listheader using it_listheader.

perform display_alv_report.

&----


*& Form BUILD_FIELDCATLOG

&----


  • Fieldcatalog has all the field details from vbak

----


form build_fieldcatlog.

wa_fieldcat-tabname = 'IT_VBAK'.

wa_fieldcat-fieldname = 'VBELN'.

wa_fieldcat-seltext_m = 'SALES DOCUMENT NUMBER.'.

wa_fieldcat-hotspot = 'X'.

  • WA_FIELDCAT-COL_POS = 1.

wa_fieldcat-emphasize = 'C110'.

wa_fieldcat-edit = 'X'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-tabname = 'IT_VBAK'.

wa_fieldcat-fieldname = 'ERDAT'.

wa_fieldcat-seltext_m = 'DATE.'.

  • WA_FIELDCAT-COL_POS = 2.

wa_fieldcat-emphasize = 'C210'.

wa_fieldcat-edit = 'X'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-tabname = 'IT_VBAK'.

wa_fieldcat-fieldname = 'ERZET'.

wa_fieldcat-seltext_m = 'ENTRY TIME'.

  • WA_FIELDCAT-COL_POS = 3.

wa_fieldcat-emphasize = 'C310'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-tabname = 'IT_VBAK'.

wa_fieldcat-fieldname = 'ERNAM'.

wa_fieldcat-seltext_m = 'NAME'.

  • WA_FIELDCAT-COL_POS = 4.

wa_fieldcat-emphasize = 'C410'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-tabname = 'IT_VBAK'.

wa_fieldcat-fieldname = 'MATNR'.

wa_fieldcat-seltext_m = 'MATERIAL NUMBER'.

  • WA_FIELDCAT-COL_POS = 4.

wa_fieldcat-emphasize = 'C510'.

wa_fieldcat-hotspot = 'X'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

endform. "BUILD_FIELDCATLOG

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

*form build_layout

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

*FORM BUILD_LAYOUT.

*

*ALV_LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.

*

*ENDFORM. "END BUILD_LAYOUT.

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

&----


*& Form EVENT_CALL

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


form event_call.

call function 'REUSE_ALV_EVENTS_GET'

exporting

i_list_type = 0

importing

et_events = v_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. "EVENT_CALL

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


form populate_event.

read table v_events into wa_event with key name = 'TOP_OF_PAGE'.

if sy-subrc eq 0.

wa_event-form = 'TOP_OF_PAGE'.

modify v_events from wa_event transporting form where name =

wa_event-form.

endif.

read table v_events into wa_event with key name = 'USER_COMMAND'.

if sy-subrc eq 0.

wa_event-form = 'USER_COMMAND'.

modify v_events from wa_event transporting form where name =

wa_event-name.

endif.

endform. "POPULATE_EVENT

&----


*& Form data_retrieval

&----


  • retreiving values from the database table vbak

----


form data_retrieval.

*DATA:ID_COLOR(1) TYPE C.

select vbeln erdat erzet ernam from vbak into table it_vbak .

  • SELECT MATNR FROM MARA INTO TABLE IT_MARA.

  • LOOP AT IT_VBAK INTO WA_VBAK.

  • WA_VBAK-LINE_COLOR = 'C410'.

  • ID_COLOR = ID_COLOR + 1.

  • IF ID_COLOR = 7.

  • ID_COLOR = 1.

  • ENDIF.

  • CONCATENATE 'C' ID_COLOR '10' INTO WA_VBAK-LINE_COLOR.

  • MODIFY IT_VBAK FROM WA_VBAK.

  • ENDLOOP.

endform. "data_retrieval

&----


*& Form bUild_listheader

&----


  • text

----


  • -->I_LISTHEADEtext

----


form build_listheader using i_listheader type slis_t_listheader.

data hline type slis_listheader.

hline-info = 'THIS IS INTERACTIVE ALV'.

hline-typ = 'H'.

endform. "build_listheader

&----


*& Form Status

&----


  • using the PF-Status enable the SAVE, UPDATE, BACK, CANCEL and EXIT

  • button and give some OKCODE has been give to each of these Button

  • and this is handled in USER_COMMAND

----


form status using p_extab type slis_t_extab.

*----PF Status -


set pf-status 'STATUS'.

endform. " status

&----


*& Form display_alv_report

&----


  • text

----


form display_alv_report.

v_repid = sy-repid.

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

i_callback_program = v_repid

i_callback_pf_status_set = 'STATUS'

i_callback_user_command = 'USER_COMMAND'

i_callback_top_of_page = 'TOP_OF_PAGE'

i_grid_title = i_title_vbak

  • I_GRID_SETTINGS =

is_layout = alv_layout

it_fieldcat = i_fieldcat[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT = wa_sort1

  • IT_FILTER =

  • IS_SEL_HIDE =

  • i_default = 'ZLAY1'

i_save = 'A'

  • is_variant = i_variant

it_events = v_events

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. "display_alv_report

&----


*& Form TOP_OF_PAGE

&----


  • text

----


form top_of_page.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = it_listheader

i_logo = 'ENJOYSAP_LOGO'

  • I_END_OF_LIST_GRID = 'TOP_OF_PAGE'.

.

endform. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


form user_command using r_ucomm like sy-ucomm

rs_selfield type slis_selfield.

case r_ucomm.

when '&IC1'.

if rs_selfield-fieldname = 'VBELN'.

read table it_vbak into wa_vbak index rs_selfield-tabindex.

refresh i_fieldcat.

perform build_fieldcatlog_vbap.

perform event_call_vbap.

perform populate_event_vbap.

perform data_retrieval_vbap.

perform build_listheader using it_listheader.

perform display_alv_vbap.

elseif rs_selfield-fieldname = 'MATNR'.

set parameter id 'MAT' field mara-matnr.

call transaction 'ZCHANG' and skip first screen.

endif.

when 'SAVE'.

loop at it_vbak into wa_vbak.

modify it_vbak from wa_vbak.

endloop.

endcase.

endform. "user_command

&----


*& Form BUILD_FIELDCATLOG_VBAP

&----


  • text

----


form build_fieldcatlog_vbap.

wa_fieldcat-tabname = 'IT_VBAP'.

wa_fieldcat-fieldname = 'VBELN'.

wa_fieldcat-seltext_m = 'SALES DNO.'.

wa_fieldcat-emphasize = 'C110'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-tabname = 'IT_VBAP'.

wa_fieldcat-fieldname = 'POSNR'.

wa_fieldcat-seltext_m = 'ITEM'.

wa_fieldcat-emphasize = 'C210'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-tabname = 'IT_VBAP'.

wa_fieldcat-fieldname = 'MATNR'.

wa_fieldcat-seltext_m = 'MATERIAL NO.'.

wa_fieldcat-emphasize = 'C310'.

wa_fieldcat-edit = 'X'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

wa_fieldcat-tabname = 'IT_VBAP'.

wa_fieldcat-fieldname = 'MATWA'.

wa_fieldcat-seltext_m = 'MATERIAL'.

wa_fieldcat-emphasize = 'C410'.

wa_fieldcat-edit = 'X'.

append wa_fieldcat to i_fieldcat.

clear wa_fieldcat.

endform. "BUILD_FIELDCATLOG_VBAP

&----


*& Form event_call_vbap

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


form event_call_vbap.

call function 'REUSE_ALV_EVENTS_GET'

exporting

i_list_type = 0

importing

et_events = v_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. "event_call_VBAP

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


form populate_event_vbap.

read table v_events into wa_event with key name = 'TOP_OF_PAGE'.

if sy-subrc eq 0.

wa_event-form = 'TOP_OF_PAGE'.

modify v_events from wa_event transporting form where name = wa_event-form.

endif.

endform. "POPULATE_EVENT

&----


*& Form TOP_OF_PAGE

&----


  • text

----


form f_top_of_page.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = it_listheader

  • i_logo =

  • I_END_OF_LIST_GRID =

.

endform. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


*retreiving values from the database table VBAP

form data_retrieval_vbap.

select vbeln posnr matnr matwa from vbap into table it_vbap. " WHERE VBELN = P_VBELN.

endform.

form build_listheader_vbap using i_listheader type slis_t_listheader.

data: hline1 type slis_listheader.

hline1-typ = 'H'.

hline1-info = 'CHECKING PGM'.

endform.

form display_alv_vbap.

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 = 'GUI_STAT'

  • I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'

i_callback_top_of_page = '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_title_vbap

  • I_GRID_SETTINGS =

  • IS_LAYOUT = ALV_LAYOUT

it_fieldcat = i_fieldcat[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT =

i_save = 'A'

  • IS_VARIANT =

it_events = v_events

tables

t_outtab = it_vbap

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.

.

Read only

former_member386202
Active Contributor
0 Likes
507

Hi,

Refer below code

&----


*& Report ZGRIR

*&

&----


*&

*&

&----


REPORT zgrir

NO STANDARD PAGE HEADING.

----


  • TABLES *

----


TABLES : bsis. "Accounting: Secondary Index for G/L Accounts

----


  • TYPE-POOL *

----


TYPE-POOLS : slis. "Global types for generic cunning building blocks

----


  • CONSTANTS *

----


CONSTANTS : c_top_of_page(15) TYPE c VALUE 'SUB_TOP_OF_PAGE'.

----


  • TYPES *

----


TYPES : BEGIN OF t_bsis,

bukrs TYPE bukrs,

zuonr TYPE dzuonr,

gjahr TYPE gjahr,

belnr TYPE belnr_d,

budat TYPE budat,

bldat TYPE bldat,

blart TYPE blart,

shkzg TYPE shkzg,

dmbtr TYPE dmbtr,

xref3 TYPE xref3,

mblnr TYPE mblnr,

ebeln TYPE ebeln,

ebelp TYPE ebelp,

txz01 TYPE txz01,

menge TYPE menge_d,

mblnr1 TYPE mblnr,

mjahr TYPE mjahr,

lfpos TYPE lfpos,

lifnr TYPE lifnr,

name1 TYPE name1_gp,

END OF t_bsis,

BEGIN OF t_bkpf,

belnr TYPE belnr_d,

gjahr TYPE gjahr,

awkey TYPE awkey,

END OF t_bkpf,

BEGIN OF t_mseg,

mblnr TYPE mblnr,

mjahr TYPE mjahr,

lifnr TYPE elifn,

erfmg TYPE erfmg,

ebeln TYPE bstnr,

ebelp TYPE ebelp,

lfpos TYPE lfpos,

txz01 TYPE txz01,

END OF t_mseg,

BEGIN OF t_mkpf,

mblnr TYPE mblnr,

mjahr TYPE mjahr,

usnam TYPE usnam,

END OF t_mkpf,

BEGIN OF t_lfa1,

lifnr TYPE lifnr,

name1 TYPE name1_gp,

END OF t_lfa1,

BEGIN OF t_ekpo,

ebeln TYPE ebeln,

ebelp TYPE ebelp,

txz01 TYPE txz01,

END OF t_ekpo,

BEGIN OF t_ekbe,

ebeln TYPE ebeln,

ebelp TYPE ebelp,

belnr TYPE mblnr,

menge TYPE menge_d,

END OF t_ekbe,

BEGIN OF t_bsik,

bukrs TYPE bukrs,

lifnr TYPE lifnr,

gjahr TYPE gjahr,

belnr TYPE belnr_d,

END OF t_bsik,

BEGIN OF t_final,

blart TYPE blart,

belnr TYPE belnr_d,

bldat TYPE bldat,

budat TYPE budat,

lifnr TYPE lifnr,

name1 TYPE name1,

xref3 TYPE xref3,

zuonr TYPE dzuonr,

dmbtr TYPE dmbtr,

ebeln TYPE ebeln,

txz01 TYPE txz01,

erfmg TYPE erfmg,

menge TYPE menge_d,

mblnr TYPE mblnr,

END OF t_final.

----


  • Work Areas *

----


DATA : wa_bsis TYPE t_bsis,

wa_bkpf TYPE t_bkpf,

wa_mseg TYPE t_mseg,

wa_mkpf TYPE t_mkpf,

wa_lfa1 TYPE t_lfa1,

wa_dtlfa1 TYPE t_lfa1,

wa_ekpo TYPE t_ekpo,

wa_ekbe TYPE t_ekbe,

wa_bsik TYPE t_bsik,

wa_final TYPE t_final,

wa_layout TYPE slis_layout_alv.

----


  • Internal tables *

----


DATA : it_bsis TYPE STANDARD TABLE OF t_bsis,

it_bkpf TYPE STANDARD TABLE OF t_bkpf,

it_mseg TYPE STANDARD TABLE OF t_mseg,

it_mkpf TYPE STANDARD TABLE OF t_mkpf,

it_lfa1 TYPE STANDARD TABLE OF t_lfa1,

it_dtlfa1 TYPE STANDARD TABLE OF t_lfa1,

it_ekpo TYPE STANDARD TABLE OF t_ekpo,

it_ekbe TYPE STANDARD TABLE OF t_ekbe,

it_bsik TYPE STANDARD TABLE OF t_bsik,

it_final TYPE STANDARD TABLE OF t_final,

it_events TYPE slis_t_event,

it_header TYPE slis_t_listheader,

it_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.

----


  • PARAMETERS & SELECT-OPTIONS *

----


SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.

PARAMETERS : p_bukrs LIKE bsis-bukrs OBLIGATORY DEFAULT '1000',

p_hkont LIKE bsis-hkont OBLIGATORY.

SELECT-OPTIONS : s_blart FOR bsis-blart,

s_budat FOR bsis-budat OBLIGATORY.

SELECTION-SCREEN END OF BLOCK blk1.

----


  • START-OF-SELECTION *

----


START-OF-SELECTION.

PERFORM sub_read_bsis.

PERFORM sub_read_bkpf.

PERFORM sub_read_mseg.

PERFORM sub_read_mkpf.

PERFORM sub_read_lfa1.

PERFORM sub_read_ekpo.

PERFORM sub_read_ekbe.

PERFORM sub_read_bsik.

PERFORM sub_read_dtlfa1.

PERFORM sub_collect_data.

----


  • END-OF-SELECTION *

----


END-OF-SELECTION.

*--This perform creates the ALV events

PERFORM sub_create_events.

PERFORM sub_field_catalog.

PERFORM sub_display_data.

&----


*& Form sub_read_bsis

&----


  • text

----


FORM sub_read_bsis .

*--Local Variables

DATA : lv_index LIKE sy-tabix.

SELECT bukrs

zuonr

gjahr

belnr

budat

bldat

blart

shkzg

dmbtr

xref3

FROM bsis

INTO CORRESPONDING FIELDS OF TABLE it_bsis

WHERE bukrs EQ p_bukrs

AND hkont EQ p_hkont

AND blart IN s_blart

AND budat IN s_budat.

IF sy-subrc EQ 0.

SORT it_bsis BY zuonr belnr.

ENDIF.

LOOP AT it_bsis INTO wa_bsis.

lv_index = sy-tabix.

wa_bsis-mblnr = wa_bsis-xref3+4(10).

wa_bsis-lfpos = wa_bsis-xref3+14(4).

wa_bsis-ebeln = wa_bsis-zuonr+0(10).

wa_bsis-ebelp = wa_bsis-zuonr+10(5).

MODIFY it_bsis FROM wa_bsis INDEX lv_index

TRANSPORTING mblnr lfpos ebeln ebelp.

CLEAR : wa_bsis.

ENDLOOP.

ENDFORM. " sub_read_bsis

&----


*& Form SUB_READ_BKPF

&----


  • text

----


FORM sub_read_bkpf .

*--Local Variables

DATA : lv_index LIKE sy-tabix.

IF NOT it_bsis[] IS INITIAL.

SELECT belnr

gjahr

awkey

FROM bkpf

INTO TABLE it_bkpf

FOR ALL ENTRIES IN it_bsis

WHERE bukrs EQ it_bsis-bukrs

AND belnr EQ it_bsis-belnr

AND gjahr EQ it_bsis-gjahr.

IF sy-subrc EQ 0.

SORT it_bkpf BY belnr gjahr.

ENDIF.

ENDIF.

SORT it_bsis BY belnr gjahr.

IF NOT it_bsis[] IS INITIAL.

LOOP AT it_bsis INTO wa_bsis.

lv_index = sy-tabix.

CLEAR : wa_bkpf.

READ TABLE it_bkpf INTO wa_bkpf WITH KEY belnr = wa_bsis-belnr

gjahr = wa_bsis-gjahr

BINARY SEARCH.

IF sy-subrc EQ 0.

wa_bsis-mblnr1 = wa_bkpf-awkey+0(10).

ENDIF.

MODIFY it_bsis FROM wa_bsis INDEX lv_index

TRANSPORTING mblnr1.

CLEAR : wa_bkpf,

wa_bsis.

ENDLOOP.

ENDIF.

ENDFORM. " SUB_READ_BKPF

&----


*& Form sub_read_mseg

&----


  • text

----


FORM sub_read_mseg .

*--Local Variables

DATA : lv_index LIKE sy-tabix.

IF NOT it_bsis[] IS INITIAL.

LOOP AT it_bsis INTO wa_bsis.

lv_index = sy-tabix.

wa_bsis-mjahr = wa_bsis-budat+0(4).

MODIFY it_bsis FROM wa_bsis INDEX lv_index

TRANSPORTING mjahr.

CLEAR : wa_bsis.

ENDLOOP.

SELECT mblnr

mjahr

lifnr

erfmg

ebeln

ebelp

lfpos

FROM mseg

INTO CORRESPONDING FIELDS OF TABLE it_mseg

FOR ALL ENTRIES IN it_bsis

WHERE mblnr EQ it_bsis-mblnr

AND mjahr EQ it_bsis-mjahr.

IF sy-subrc EQ 0.

SORT it_mseg BY mblnr mjahr lfpos.

ENDIF.

ENDIF.

SORT it_bsis BY mblnr mjahr lfpos.

IF NOT it_mseg[] IS INITIAL.

LOOP AT it_bsis INTO wa_bsis.

lv_index = sy-tabix.

CLEAR : wa_mseg.

READ TABLE it_mseg INTO wa_mseg WITH KEY mblnr = wa_bsis-mblnr

mjahr = wa_bsis-mjahr

lfpos = wa_bsis-lfpos

BINARY SEARCH.

IF sy-subrc EQ 0.

wa_bsis-ebeln = wa_mseg-ebeln.

wa_bsis-ebelp = wa_mseg-ebelp.

ENDIF.

MODIFY it_bsis FROM wa_bsis INDEX lv_index

TRANSPORTING ebeln ebelp.

CLEAR : wa_bsis,

wa_mseg.

ENDLOOP.

ENDIF.

ENDFORM. " sub_read_mseg

&----


*& Form sub_read_mkpf

&----


  • text

----


FORM sub_read_mkpf .

IF NOT it_bsis[] IS INITIAL.

SELECT mblnr

mjahr

usnam

FROM mkpf

INTO TABLE it_mkpf

FOR ALL ENTRIES IN it_bsis

WHERE mblnr EQ it_bsis-mblnr

AND mjahr EQ it_bsis-mjahr.

IF sy-subrc EQ 0.

SORT it_mkpf BY mblnr mjahr.

ENDIF.

ENDIF.

ENDFORM. " sub_read_mkpf

&----


*& Form sub_read_lfa1

&----


  • text

----


FORM sub_read_lfa1 .

IF NOT it_mseg[] IS INITIAL.

SELECT lifnr

name1

FROM lfa1

INTO TABLE it_lfa1

FOR ALL ENTRIES IN it_mseg

WHERE lifnr EQ it_mseg-lifnr.

IF sy-subrc EQ 0.

SORT it_lfa1 BY lifnr.

ENDIF.

ENDIF.

ENDFORM. " sub_readǝlfa1

&----


*& Form sub_read_ekpo

&----


  • text

----


FORM sub_read_ekpo .

*--Local Variables

DATA : lv_index LIKE sy-tabix.

IF NOT it_mseg[] IS INITIAL.

SELECT ebeln

ebelp

txz01

FROM ekpo

INTO TABLE it_ekpo

FOR ALL ENTRIES IN it_mseg

WHERE ebeln EQ it_mseg-ebeln

AND ebelp EQ it_mseg-ebelp.

IF sy-subrc EQ 0.

SORT it_ekpo BY ebeln ebelp.

ENDIF.

SORT it_mseg BY ebeln ebelp.

LOOP AT it_mseg INTO wa_mseg.

lv_index = sy-tabix.

CLEAR : wa_ekpo.

READ TABLE it_ekpo INTO wa_ekpo WITH KEY ebeln = wa_mseg-ebeln

ebelp = wa_mseg-ebelp

BINARY SEARCH.

IF sy-subrc EQ 0.

wa_mseg-txz01 = wa_ekpo-txz01.

ENDIF.

MODIFY it_mseg FROM wa_mseg INDEX lv_index

TRANSPORTING txz01.

CLEAR : wa_mseg,

wa_ekpo.

ENDLOOP.

ENDIF.

ENDFORM. " sub_read_ekpo

&----


*& Form SUB_READ_EKBE

&----


  • text

----


FORM sub_read_ekbe .

*--Local Variables

DATA : lv_index LIKE sy-tabix.

IF NOT it_bsis[] IS INITIAL.

SELECT ebeln

ebelp

belnr

menge

FROM ekbe

INTO TABLE it_ekbe

FOR ALL ENTRIES IN it_bsis

WHERE ebeln EQ it_bsis-ebeln

AND ebelp EQ it_bsis-ebelp

AND belnr EQ it_bsis-mblnr1

AND vgabe EQ '2'.

IF sy-subrc EQ 0.

SORT it_ekbe BY ebeln ebelp belnr.

ENDIF.

SORT it_bsis BY ebeln ebelp mblnr1.

LOOP AT it_bsis INTO wa_bsis.

lv_index = sy-tabix.

CLEAR : wa_ekpo.

READ TABLE it_ekpo INTO wa_ekpo WITH KEY ebeln = wa_bsis-ebeln

ebelp = wa_bsis-ebelp

BINARY SEARCH.

IF sy-subrc EQ 0.

wa_bsis-txz01 = wa_ekpo-txz01.

ENDIF.

CLEAR : wa_ekbe.

READ TABLE it_ekbe INTO wa_ekbe WITH KEY ebeln = wa_bsis-ebeln

ebelp = wa_bsis-ebelp

belnr = wa_bsis-mblnr1

BINARY SEARCH.

IF sy-subrc EQ 0.

wa_bsis-menge = wa_ekbe-menge.

ENDIF.

MODIFY it_bsis FROM wa_bsis INDEX lv_index

TRANSPORTING txz01 menge.

CLEAR : wa_bsis,

wa_ekpo.

ENDLOOP.

ENDIF.

ENDFORM. " SUB_READ_EKBE

&----


*& Form sub_read_bsik

&----


  • text

----


FORM sub_read_bsik .

*--Local Variables

DATA : lv_index LIKE sy-tabix.

IF NOT it_bsis[] IS INITIAL.

SELECT bukrs

lifnr

gjahr

belnr

FROM bsik

INTO TABLE it_bsik

FOR ALL ENTRIES IN it_bsis

WHERE bukrs EQ it_bsis-bukrs

AND gjahr EQ it_bsis-gjahr

AND belnr EQ it_bsis-belnr.

IF sy-subrc EQ 0.

SORT it_bsik BY belnr gjahr.

ENDIF.

SORT it_bsis BY belnr gjahr.

LOOP AT it_bsis INTO wa_bsis.

lv_index = sy-tabix.

CLEAR : wa_bsik.

READ TABLE it_bsik INTO wa_bsik WITH KEY belnr = wa_bsis-belnr

gjahr = wa_bsis-gjahr

BINARY SEARCH.

IF sy-subrc EQ 0.

wa_bsis-lifnr = wa_bsik-lifnr.

ENDIF.

MODIFY it_bsis FROM wa_bsis INDEX lv_index

TRANSPORTING lifnr.

CLEAR : wa_bsis,

wa_bsik.

ENDLOOP.

ENDIF.

ENDFORM. " sub_read_bsik

&----


*& Form sub_read_dtlfa1

&----


  • text

----


FORM sub_read_dtlfa1 .

*--Local Variables

DATA : lv_index LIKE sy-tabix.

IF NOT it_bsis[] IS INITIAL.

SELECT lifnr

name1

FROM lfa1

INTO TABLE it_dtlfa1

FOR ALL ENTRIES IN it_bsis

WHERE lifnr EQ it_bsis-lifnr.

IF sy-subrc EQ 0.

SORT it_dtlfa1 BY lifnr.

ENDIF.

SORT it_bsis BY lifnr.

LOOP AT it_bsis INTO wa_bsis.

lv_index = sy-tabix.

CLEAR : wa_dtlfa1.

READ TABLE it_dtlfa1 INTO wa_dtlfa1 WITH KEY lifnr = wa_bsis-lifnr

BINARY SEARCH.

IF sy-subrc EQ 0.

wa_bsis-name1 = wa_dtlfa1-name1.

ENDIF.

MODIFY it_bsis FROM wa_bsis INDEX lv_index

TRANSPORTING name1.

CLEAR : wa_bsis,

wa_dtlfa1.

ENDLOOP.

ENDIF.

ENDFORM. " sub_read_dtlfa1

&----


*& Form sub_collect_data

&----


  • text

----


FORM sub_collect_data .

*--Local Variables

DATA : lv_index LIKE sy-tabix.

SORT it_bsis BY mblnr gjahr ebeln ebelp.

SORT it_mseg BY mblnr mjahr ebeln ebelp.

IF NOT it_bsis[] IS INITIAL.

LOOP AT it_bsis INTO wa_bsis.

wa_final-blart = wa_bsis-blart.

wa_final-belnr = wa_bsis-belnr.

wa_final-bldat = wa_bsis-bldat.

wa_final-budat = wa_bsis-budat.

wa_final-xref3 = wa_bsis-xref3.

wa_final-zuonr = wa_bsis-zuonr.

wa_final-ebeln = wa_bsis-ebeln.

wa_final-txz01 = wa_bsis-txz01.

wa_final-lifnr = wa_bsis-lifnr.

IF wa_bsis-shkzg EQ 'H'.

wa_final-dmbtr = wa_bsis-dmbtr * ( -1 ).

ELSE.

wa_final-dmbtr = wa_bsis-dmbtr.

ENDIF.

IF wa_bsis-blart EQ 'RE'.

wa_final-menge = wa_bsis-menge.

ENDIF.

CLEAR : wa_mseg.

READ TABLE it_mseg INTO wa_mseg WITH KEY mblnr = wa_bsis-mblnr

mjahr = wa_bsis-mjahr

ebeln = wa_bsis-ebeln

ebelp = wa_bsis-ebelp

BINARY SEARCH.

IF sy-subrc EQ 0.

wa_final-lifnr = wa_mseg-lifnr.

wa_final-txz01 = wa_mseg-txz01.

IF wa_bsis-blart EQ 'WE'.

wa_final-erfmg = wa_mseg-erfmg.

ENDIF.

IF wa_bsis-ebeln IS INITIAL.

wa_final-ebeln = wa_mseg-ebeln.

ENDIF.

ENDIF.

IF wa_bsis-blart EQ 'WE'.

wa_final-mblnr = wa_bsis-mblnr.

ENDIF.

APPEND wa_final TO it_final.

CLEAR : wa_bsis,

wa_final,

wa_mseg,

wa_mkpf.

ENDLOOP.

ENDIF.

SORT it_final BY lifnr .

IF NOT it_final[] IS INITIAL.

LOOP AT it_final INTO wa_final.

lv_index = sy-tabix.

CLEAR : wa_lfa1.

READ TABLE it_lfa1 INTO wa_lfa1 WITH KEY lifnr = wa_final-lifnr

BINARY SEARCH.

IF sy-subrc EQ 0.

wa_final-name1 = wa_lfa1-name1.

ELSE.

CLEAR : wa_dtlfa1.

READ TABLE it_dtlfa1 INTO wa_dtlfa1 WITH KEY lifnr = wa_final-lifnr

BINARY SEARCH.

IF sy-subrc EQ 0.

wa_final-name1 = wa_dtlfa1-name1.

ENDIF.

ENDIF.

MODIFY it_final FROM wa_final INDEX lv_index

TRANSPORTING name1.

CLEAR : wa_final,

wa_lfa1.

ENDLOOP.

ENDIF.

ENDFORM. " sub_collect_data

&----


*& Form sub_create_events *

&----


  • This form will display the ALV Events *

----


FORM sub_create_events .

*--Local Work Area

DATA: lwa_event TYPE slis_alv_event. "Work area for Events

*--Call Function to display the events for the ALV

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 1

IMPORTING

et_events = it_events.

*--Sort by Name

SORT it_events BY name.

*--Clear

CLEAR lwa_event.

READ TABLE it_events INTO lwa_event WITH KEY name = slis_ev_top_of_page

BINARY SEARCH.

IF sy-subrc = 0.

MOVE c_top_of_page TO lwa_event-form.

MODIFY it_events FROM lwa_event TRANSPORTING form WHERE

name = slis_ev_top_of_page.

ENDIF.

*--Clear

CLEAR : lwa_event.

ENDFORM. "sub_create_events

&----


*& Form sub_top_of_page *

&----


  • This form is to build the Page Header *

----


FORM sub_top_of_page .

*--Local Variable

DATA : lv_title(120) TYPE c, " Title

lv_blart(30) TYPE c,

lv_date(30) TYPE c,

lv_bdate1(10) TYPE c,

lv_bdate2(10) TYPE c,

lv_hkont(10) TYPE c.

*--Local Work Area

DATA : lwa_line TYPE slis_listheader. " Hold list header

WRITE : p_hkont TO lv_hkont.

SHIFT lv_hkont LEFT DELETING LEADING '0'.

*--Title Display

lwa_line-typ = 'H'. " header

lv_title = sy-title.

lwa_line-info = lv_title.

APPEND lwa_line TO it_header.

CLEAR lwa_line.

*--Compnay code

lwa_line-typ = 'S'. " Item

  • WRITE: p_bukrs TO lv_month.

lwa_line-key = text-017.

lwa_line-info = p_bukrs.

APPEND lwa_line TO it_header.

CLEAR lwa_line.

*--GL account

lwa_line-typ = 'S'. " Item

  • WRITE: p_bud TO lv_bud.

lwa_line-key = text-018.

lwa_line-info = lv_hkont.

APPEND lwa_line TO it_header.

CLEAR lwa_line.

IF NOT s_blart[] IS INITIAL.

IF NOT s_blart-high IS INITIAL.

CONCATENATE s_blart-low 'to' s_blart-high INTO lv_blart SEPARATED BY space.

*--Document type

lwa_line-typ = 'S'. " Item

  • WRITE: p_bud TO lv_bud.

lwa_line-key = text-019.

lwa_line-info = lv_blart.

ELSE.

*--Document type

lwa_line-typ = 'S'. " Item

  • WRITE: p_bud TO lv_bud.

lwa_line-key = text-019.

lwa_line-info = s_blart-low.

ENDIF.

ENDIF.

APPEND lwa_line TO it_header.

CLEAR: lwa_line.

IF NOT s_budat-high IS INITIAL.

WRITE: s_budat-low TO lv_bdate1.

WRITE: s_budat-high TO lv_bdate2.

CONCATENATE lv_bdate1 'to' lv_bdate2 INTO lv_date SEPARATED BY space.

*--Posting Date

lwa_line-typ = 'S'. " Item

  • WRITE: p_bud TO lv_bud.

lwa_line-key = text-020.

lwa_line-info = lv_date.

ELSE.

*--Posting Date

lwa_line-typ = 'S'. " Item

WRITE: s_budat-low TO lv_bdate1.

lwa_line-key = text-020.

lwa_line-info = lv_bdate1.

ENDIF.

APPEND lwa_line TO it_header.

CLEAR: lwa_line.

*--This funcation module will display the top of the page

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = it_header.

*--Free

FREE : it_header.

ENDFORM. "sub_top_of_page

&----


*& Form user_command

&----


  • text

----


  • -->U_COM text

----


FORM user_command USING u_com LIKE sy-ucomm

sel_field TYPE slis_selfield.

*--Local Variables

DATA : lv_belnr TYPE belnr_d,

lv_bukrs TYPE bukrs,

lv_gjahr TYPE gjahr.

IF sel_field-fieldname EQ 'BELNR'.

READ TABLE it_bsis INTO wa_bsis WITH KEY belnr = sel_field-value.

IF sy-subrc EQ 0.

lv_belnr = wa_bsis-belnr.

lv_bukrs = wa_bsis-bukrs.

lv_gjahr = wa_bsis-gjahr.

ENDIF.

CASE u_com.

WHEN '&IC1'.

SELECT SINGLE belnr

bukrs

gjahr

FROM bsis

INTO (lv_belnr,lv_bukrs,lv_gjahr)

WHERE belnr EQ lv_belnr

AND bukrs EQ lv_bukrs

AND gjahr EQ lv_gjahr.

IF sy-subrc EQ 0.

SET PARAMETER ID : 'BLN' FIELD lv_belnr,

'BUK' FIELD lv_bukrs,

'GJR' FIELD lv_gjahr.

CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.

ENDIF.

ENDCASE.

ENDIF.

ENDFORM. "user_command

&----


*& Form sub_field_catalog

&----


  • text

----


FORM sub_field_catalog .

it_fieldcat-fieldname = 'BELNR'.

it_fieldcat-seltext_m = text-003.

it_fieldcat-col_pos = 0.

it_fieldcat-outputlen = 10.

it_fieldcat-key = 'X'.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'BLART'.

it_fieldcat-seltext_m = text-002.

it_fieldcat-col_pos = 1.

it_fieldcat-outputlen = 2.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'BLDAT'.

it_fieldcat-seltext_m = text-004.

it_fieldcat-col_pos = 2.

it_fieldcat-outputlen = 8.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'BUDAT'.

it_fieldcat-seltext_m = text-005.

it_fieldcat-col_pos = 3.

it_fieldcat-outputlen = 8.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'LIFNR'.

it_fieldcat-seltext_m = text-006.

it_fieldcat-col_pos = 4.

it_fieldcat-outputlen = 10.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'NAME1'.

it_fieldcat-seltext_m = text-007.

it_fieldcat-col_pos = 5.

it_fieldcat-outputlen = 35.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'XREF3'.

it_fieldcat-seltext_m = text-008.

it_fieldcat-col_pos = 6.

it_fieldcat-outputlen = 20.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'ZUONR'.

it_fieldcat-seltext_m = text-009.

it_fieldcat-col_pos = 7.

it_fieldcat-outputlen = 18.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'DMBTR'.

it_fieldcat-seltext_m = text-010.

it_fieldcat-col_pos = 8.

it_fieldcat-outputlen = 13.

it_fieldcat-do_sum = 'X'.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'EBELN'.

it_fieldcat-seltext_m = text-011.

it_fieldcat-col_pos = 9.

it_fieldcat-outputlen = 10.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'TXZ01'.

it_fieldcat-seltext_m = text-012.

it_fieldcat-col_pos = 10.

it_fieldcat-outputlen = 40.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'ERFMG'.

it_fieldcat-seltext_m = text-013.

it_fieldcat-col_pos = 11.

it_fieldcat-outputlen = 13.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'MENGE'.

it_fieldcat-seltext_m = text-014.

it_fieldcat-col_pos = 12.

it_fieldcat-outputlen = 13.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

it_fieldcat-fieldname = 'MBLNR'.

it_fieldcat-seltext_m = text-015.

it_fieldcat-col_pos = 13.

it_fieldcat-outputlen = 10.

APPEND it_fieldcat TO it_fieldcat.

CLEAR it_fieldcat.

ENDFORM. " sub_field_catalog

&----


*& Form sub_display_data

&----


  • text

----


FORM sub_display_data .

*--Local Variables

DATA : lv_repid LIKE sy-repid.

*--Pass the Report name

lv_repid = sy-repid.

wa_layout-colwidth_optimize = 'X'.

IF NOT it_final[] IS INITIAL.

*--Call the function module to display the ALV report

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = lv_repid

is_layout = wa_layout

it_fieldcat = it_fieldcat[]

i_default = 'X'

i_save = 'A'

i_callback_user_command = 'USER_COMMAND'

  • is_variant = wa_variant

it_events = it_events

  • is_print = wa_print

  • it_sort = li_sort

TABLES

t_outtab = it_final

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.

ELSE.

*--No data found for the given selection criteria.

MESSAGE text-016 TYPE 'I'.

LEAVE LIST-PROCESSING.

ENDIF.

ENDFORM. " sub_display_data.

Regards,

Prashant