Application Development 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: 

Migo & Miro Accounting Documents Report

Former Member
0 Kudos

Hello Abapers,

I have made the new ALV report as shown below :-

Report zaccounting no standard page heading line-size 300 line-count 40.

tables : mkpf, "Header: Material Document

mseg, "Document Segment: Material

bkpf, "Accounting Document Header

ekbe. "PO History Table

type-pools slis.

*DATA DECLARATION

data : pos type i,

l_layout type slis_layout_alv.

data gt_fieldcat type slis_t_fieldcat_alv.

data gt_sort type slis_t_sortinfo_alv.

data ls_fieldcat type slis_fieldcat_alv.

data is_print type slis_print_alv.

data it_events type slis_alv_event occurs 5.

data gs_variant type disvariant.

data t_list_top_of_page type slis_t_listheader.

data title like sy-title.

data : l_title(105) type c,

l_list(105) type c, "Store the Top-of-page headings

l_date(10) type c, "Store date in top-of-page

l_time(8) type c, "Store time in top-of-page

title1 like sy-title,

title2 like sy-title,

title3 like sy-title.

*-- Data Declaration

data : repid like sy-repid.

constants: x type c value 'X'.

data zawkey like bkpf-awkey.

types : begin of x_mkpf,

mblnr like mkpf-mblnr,

mjahr like mkpf-mjahr,

budat like mkpf-budat,

ebeln like mseg-ebeln,

ebelp like mseg-ebelp,

bwart like mseg-bwart,

matnr like mseg-matnr,

gsber like mseg-gsber,

werks like mseg-werks,

bukrs like bkpf-bukrs,

belnr like bkpf-belnr,

gjahr like bkpf-gjahr,

bukrs1 like bkpf-bukrs,

belnr1 like bkpf-belnr,

gjahr1 like bkpf-gjahr,

belnr2 like bkpf-belnr,

gjahr2 like bkpf-gjahr,

end of x_mkpf.

data : t_mkpf type standard table of x_mkpf with header line.

----


  • S E L E C T I O N - S C R E E N *

----


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

select-options: s_budat for mkpf-budat obligatory.

select-options: s_bwart for mseg-bwart.

select-options: s_matnr for mseg-matnr.

select-options: s_gsber for mseg-gsber.

select-options: s_werks for mseg-werks.

selection-screen end of block b1.

start-of-selection.

break abapdev1.

select msegmblnr msegmjahr mkpf~budat

msegebeln msegebelp msegbwart msegmatnr mseggsber msegwerks

into table t_mkpf

from mkpf inner join mseg

on mkpfmblnr = msegmblnr

where budat in s_budat

and bwart in s_bwart

and matnr in s_matnr

and gsber in s_gsber

and werks in s_werks.

loop at t_mkpf.

select single belnr gjahr into (t_mkpf-belnr, t_mkpf-gjahr) from ekbe where ebeln = t_mkpf-ebeln

and ebelp = t_mkpf-ebelp

and lfbnr = t_mkpf-mblnr

and lfgja = t_mkpf-mjahr

and bewtp = 'Q'.

modify t_mkpf transporting belnr gjahr.

endloop.

loop at t_mkpf.

clear : zawkey.

concatenate t_mkpf-mblnr t_mkpf-mjahr into zawkey.

select single belnr gjahr into (t_mkpf-belnr1,t_mkpf-gjahr1) from bkpf

where awtyp = 'MKPF'

and awkey = zawkey.

break abapdev1.

clear : zawkey.

concatenate t_mkpf-belnr t_mkpf-gjahr into zawkey.

select single belnr gjahr into (t_mkpf-belnr2,t_mkpf-gjahr2) from bkpf

where awtyp = 'RMRP'

and awkey = zawkey.

modify t_mkpf transporting belnr1 gjahr1 belnr2 gjahr2.

endloop.

ls_fieldcat-col_pos = '1'.

ls_fieldcat-fieldname = 'BUDAT'.

ls_fieldcat-tabname = 'T_MSEG'.

ls_fieldcat-ref_fieldname = 'BUDAT'.

ls_fieldcat-ref_tabname = 'MKPF'.

ls_fieldcat-seltext_l = 'PSG DATE'.

append ls_fieldcat to gt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-col_pos = '2'.

ls_fieldcat-fieldname = 'MBLNR'.

ls_fieldcat-tabname = 'X_MSEG'.

ls_fieldcat-ref_fieldname = 'MBLNR'.

ls_fieldcat-ref_tabname = 'MSEG'.

ls_fieldcat-seltext_l = 'MIGO MAT DOCNO.'.

append ls_fieldcat to gt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-col_pos = '3'.

ls_fieldcat-fieldname = 'BELNR1'.

ls_fieldcat-tabname = 'T_MSEG'.

ls_fieldcat-ref_fieldname = 'BELNR1'.

ls_fieldcat-ref_tabname = 'MSEG'.

ls_fieldcat-seltext_l = 'FI DocNo.'.

append ls_fieldcat to gt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-col_pos = '4'.

ls_fieldcat-fieldname = 'GJAHR1'.

ls_fieldcat-tabname = 'T_MSEG'.

ls_fieldcat-ref_fieldname = 'GJAHR1'.

ls_fieldcat-ref_tabname = 'MSEG'.

ls_fieldcat-seltext_l = 'FI FiscalYr'.

append ls_fieldcat to gt_fieldcat.

clear ls_fieldcat.

    • ls_fieldcat-col_pos = '2'.

    • ls_fieldcat-fieldname = 'MJAHR'.

    • ls_fieldcat-tabname = 'X_MKPF'.

    • ls_fieldcat-ref_fieldname = 'MJAHR'.

    • ls_fieldcat-ref_tabname = 'MSEG'.

    • ls_fieldcat-seltext_l = 'MIGO MATERIAL DOC. YEAR'.

**

    • append ls_fieldcat to gt_fieldcat.

    • clear ls_fieldcat.

ls_fieldcat-col_pos = '5'.

ls_fieldcat-fieldname = 'EBELN'.

ls_fieldcat-tabname = 'T_MSEG'.

ls_fieldcat-ref_fieldname = 'EBELN'.

ls_fieldcat-ref_tabname = 'MSEG'.

ls_fieldcat-seltext_l = 'PO No.'.

append ls_fieldcat to gt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-col_pos = '6'.

ls_fieldcat-fieldname = 'EBELP'.

ls_fieldcat-tabname = 'T_MSEG'.

ls_fieldcat-ref_fieldname = 'EBELP'.

ls_fieldcat-ref_tabname = 'MSEG'.

ls_fieldcat-seltext_l = 'PO ItemNo.'.

append ls_fieldcat to gt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-col_pos = '7'.

ls_fieldcat-fieldname = 'BWART'.

ls_fieldcat-tabname = 'T_MSEG'.

ls_fieldcat-ref_fieldname = 'BWART'.

ls_fieldcat-ref_tabname = 'MSEG'.

ls_fieldcat-seltext_l = 'Mvt.Type'.

append ls_fieldcat to gt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-col_pos = '8'.

ls_fieldcat-fieldname = 'BELNR'.

ls_fieldcat-tabname = 'T_MSEG'.

ls_fieldcat-ref_fieldname = 'BELNR'.

ls_fieldcat-ref_tabname = 'MSEG'.

ls_fieldcat-seltext_l = 'MIRO DocNo.'.

append ls_fieldcat to gt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-col_pos = '9'.

ls_fieldcat-fieldname = 'GJAHR'.

ls_fieldcat-tabname = 'T_MSEG'.

ls_fieldcat-ref_fieldname = 'GJAHR'.

ls_fieldcat-ref_tabname = 'MSEG'.

ls_fieldcat-seltext_l = 'MIRO FiscalYr'.

append ls_fieldcat to gt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-col_pos = '10'.

ls_fieldcat-fieldname = 'GSBER'.

ls_fieldcat-tabname = 'T_MSEG'.

ls_fieldcat-ref_fieldname = 'GSBER'.

ls_fieldcat-ref_tabname = 'MSEG'.

ls_fieldcat-seltext_l = 'BUS.AREA'.

append ls_fieldcat to gt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-col_pos = '11'.

ls_fieldcat-fieldname = 'WERKS'.

ls_fieldcat-tabname = 'T_MSEG'.

ls_fieldcat-ref_fieldname = 'WERKS'.

ls_fieldcat-ref_tabname = 'MSEG'.

ls_fieldcat-seltext_l = 'PLANT'.

append ls_fieldcat to gt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-col_pos = '12'.

ls_fieldcat-fieldname = 'MATNR'.

ls_fieldcat-tabname = 'T_MSEG'.

ls_fieldcat-ref_fieldname = 'MATNR'.

ls_fieldcat-ref_tabname = 'MSEG'.

ls_fieldcat-seltext_l = 'MAT.NO'.

append ls_fieldcat to gt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-col_pos = '13'.

ls_fieldcat-fieldname = 'BELNR2'.

ls_fieldcat-tabname = 'T_MSEG'.

ls_fieldcat-ref_fieldname = 'BELNR2'.

ls_fieldcat-ref_tabname = 'MSEG'.

ls_fieldcat-seltext_l = 'MIRO FI Doc.No'.

append ls_fieldcat to gt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-col_pos = '14'.

ls_fieldcat-fieldname = 'GJAHR2'.

ls_fieldcat-tabname = 'T_MSEG'.

ls_fieldcat-ref_fieldname = 'GJAHR2'.

ls_fieldcat-ref_tabname = 'MSEG'.

ls_fieldcat-seltext_l = 'MIRO FI FiscalYr'.

append ls_fieldcat to gt_fieldcat.

clear ls_fieldcat.

&----


*& Form ALV_GRID_DISPLAY

&----


form alv_grid_display .

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

i_callback_program = sy-repid " 'ZRD_DD'

it_fieldcat = gt_fieldcat "catalogue field

i_callback_top_of_page = 'TOP_PAGE'

is_layout = l_layout

  • it_sort = gt_sort

i_default = 'X'

  • i_save = 'A'

  • is_variant = gs_variant

  • it_events = it_events

  • is_print = is_print

tables

t_outtab = t_mkpf

exceptions

program_error = 1

others = 2

.

if sy-subrc <> 0.

message id sy-msgid type 'I' number sy-msgno

with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

endif.

endform. " ALV_GRID_DISPLAY

*&----


**& Form ALV_LAYOUT

*&----


*FORM alv_layout USING ps_layout TYPE slis_layout_alv.

  • ps_layout-get_selinfos = x.

  • ps_layout-colwidth_optimize = x.

  • ps_layout-detail_popup = x.

  • ps_layout-no_keyfix = x.

    • ps_layout-coltab_fieldname = 'CLR'.

*

  • ps_layout-key_hotspot = x.

  • ps_layout-group_change_edit = x.

  • ps_layout-zebra = 'X'.

*

*ENDFORM. " ALV_LAYOUT

*&----


**& Form ALV_PRINT

*&----


*FORM alv_print .

  • is_print-no_print_selinfos = x. " display no selection infos

  • is_print-no_coverpage = x.

  • is_print-no_new_page = x.

  • is_print-no_print_listinfos = x. " display no listinfos

*

*ENDFORM. " ALV_PRINT

*&----


**& Form TOP_OF_PAGE

*&----


form top_page.

data: ls_line type slis_listheader,

i_top_of_page type slis_t_listheader.

title = sy-title.

ls_line-typ = 'H'.

ls_line-info = title.

append ls_line to i_top_of_page.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = i_top_of_page.

endform. "TOP_OF_PAGE

In this report , i have faced some problems :-

1. In MIGO numbers some cases MIRO doc. numbers are not shown against some migo doc. numbers whereas actually MIRO is already done.

2. The Problem in downloading the report, its not accurate download & the MIGO Document Number not shown when we download the report.

Thanks,

Sumit.

10 REPLIES 10

Former Member
0 Kudos

Hi Sumit,

For your second problem, you declare another field of type c and move the MIGO document number to that field, now u can download and check.

in some cases 2or more MIGO's are combined and one MIRO is done , then for some MIGO's u will not find the data.

Regards

kumar M

Former Member
0 Kudos

Hi,

I have created report for MIRO & MIGO a/c docs a couple of months ago..

if u want i can paste the code here.

Regards,

Amit

0 Kudos

Hello Amit,

YA sure sir, u can paste.

Thanks,

Sumit

0 Kudos

Amit Sir,

I need it urgently if u paste the code here i will be very thankful to u...

Thanks,

Sumit.

0 Kudos

Hi Sumit,

Im not sure if it will completely support ur needs but check it out

This is for MIRO.Note here business area is hardcoded.

REPORT zmm_miro_track.

TABLES : rseg, bkpf, bseg, lfa1, ekbe, skat, bsis .

*----


  • AlV related data declarations

*----


  • Type Pools

TYPE-POOLS: slis.

CONSTANTS:

gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.

----


  • Data Declaration file *

----


DATA : BEGIN OF it_rseg OCCURS 0,

belnr TYPE rseg-belnr,

gjahr TYPE rseg-gjahr,

ebeln TYPE rseg-ebeln,

ebelp TYPE rseg-ebelp,

bukrs TYPE rseg-bukrs,

awkey TYPE bkpf-awkey,

END OF it_rseg.

DATA : BEGIN OF it_bkpf OCCURS 0,

belnr TYPE bkpf-belnr,

gjahr TYPE bkpf-gjahr,

xblnr TYPE bkpf-xblnr,

budat TYPE bkpf-budat,

awkey TYPE bkpf-awkey,

bukrs TYPE bkpf-bukrs,

belnr1 TYPE bkpf-belnr,

blart TYPE bkpf-blart,

END OF it_bkpf.

DATA : BEGIN OF it_bseg OCCURS 0,

belnr TYPE bseg-belnr,

gjahr TYPE bseg-gjahr,

bupla TYPE bseg-bupla,

lifnr TYPE bseg-lifnr,

hkont TYPE bseg-hkont,

koart TYPE bseg-koart,

mwskz TYPE bseg-mwskz,

pswbt TYPE bseg-pswbt,

ebeln TYPE bseg-ebeln,

ebelp TYPE bseg-ebelp,

xref3 TYPE bseg-xref3,

bschl TYPE bseg-bschl,

shkzg TYPE bseg-shkzg,

miro_accnt TYPE bseg-hkont,

xblnr TYPE bkpf-xblnr,

budat TYPE bkpf-budat,

belnr1 TYPE bseg-belnr,

acdes(50),

belnr2 TYPE bseg-belnr,

belnr3 TYPE bseg-belnr,

gjahr1 TYPE bseg-gjahr,

hkont1 TYPE bseg-hkont,

pswbt1 TYPE bseg-pswbt,

budat1 TYPE ekbe-budat,

acdes1(50),

END OF it_bseg.

DATA : it_bseg1 LIKE it_bseg OCCURS 0 WITH HEADER LINE.

DATA : BEGIN OF it_bsis OCCURS 0,

belnr TYPE bsis-belnr,

gjahr TYPE bsis-gjahr,

bschl TYPE bsis-bschl,

xref3 TYPE bsis-xref3,

END OF it_bsis.

DATA : BEGIN OF it_lfa1 OCCURS 0,

lifnr TYPE lfa1-lifnr,

name1 TYPE lfa1-name1,

spras TYPE lfa1-spras,

END OF it_lfa1.

DATA : BEGIN OF it_skat OCCURS 0,

saknr TYPE skat-saknr,

txt20 TYPE skat-txt20,

txt50 TYPE skat-txt50,

spras TYPE skat-spras,

ktopl TYPE skat-ktopl,

END OF it_skat.

DATA : BEGIN OF it_ekbe OCCURS 0,

ebeln TYPE ekbe-ebeln,

ebelp TYPE ekbe-ebelp,

budat TYPE ekbe-budat,

bewtp TYPE ekbe-bewtp,

END OF it_ekbe.

DATA : fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,

gd_repid LIKE sy-repid.

DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,

gs_layout TYPE slis_layout_alv ,

gs_print TYPE slis_print_alv,

gt_sort TYPE slis_t_sortinfo_alv ,

gt_filter TYPE slis_t_filter_alv,

gt_sp_group TYPE slis_t_sp_group_alv,

gt_alv_graphics TYPE dtc_t_tc,

gt_excluding TYPE slis_t_extab ,

gt_events TYPE slis_t_event .

DATA: g_repid LIKE sy-repid.

DATA: gt_list_top_of_page TYPE slis_t_listheader.

DATA: g_boxnam TYPE slis_fieldname VALUE 'BOX',

p_f2code LIKE sy-ucomm VALUE '&ETA',

p_lignam TYPE slis_fieldname VALUE 'LIGHTS',

g_save(1) TYPE c,

g_default(1) TYPE c,

g_exit(1) TYPE c,

gx_variant LIKE disvariant,

g_variant LIKE disvariant.

----


  • USER ENTRY PARAMETERS *

----


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

SELECT-OPTIONS : s_belnr FOR rseg-belnr OBLIGATORY,

s_gjahr FOR rseg-gjahr OBLIGATORY,

s_budat FOR bkpf-budat.

SELECTION-SCREEN END OF BLOCK blk1.

----


  • START-OF-SELECTION *

----


START-OF-SELECTION.

PERFORM data_retrive.

PERFORM data_call_alv.

PERFORM build_layout.

END-OF-SELECTION.

&----


*& Form DATA_CALL_ALV

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM data_call_alv .

g_repid = sy-repid.

PERFORM e01_fieldcat_init USING gt_fieldcat[].

PERFORM eventtab_build CHANGING gt_events.

PERFORM e04_comment_build USING gt_list_top_of_page[].

PERFORM display_report.

ENDFORM. " DATA_CALL_ALV

&----


*& Form E01_FIELDCAT_INIT

&----


  • text

----


  • -->P_GT_FIELDCAT[] text

----


FORM e01_fieldcat_init USING e01_lt_fieldcat TYPE slis_t_fieldcat_alv.

DATA: ls_fieldcat TYPE slis_fieldcat_alv.

DATA: gs_sort TYPE slis_sortinfo_alv.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'BELNR'.

ls_fieldcat-key = 'X'. "SUBTOTAL KEY

ls_fieldcat-col_pos = '1'.

ls_fieldcat-seltext_l = 'Accounting Doc'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'BELNR1'.

ls_fieldcat-col_pos = '2'.

ls_fieldcat-seltext_l = 'IR Doc'.

ls_fieldcat-outputlen = 10.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'XBLNR'.

ls_fieldcat-col_pos = '3'.

ls_fieldcat-seltext_l = 'IR Reference'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'BUDAT'.

ls_fieldcat-col_pos = '4'.

ls_fieldcat-seltext_l = 'IR Posting Date'.

ls_fieldcat-outputlen = 10.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'BUPLA'.

ls_fieldcat-col_pos = '5'.

ls_fieldcat-seltext_l = 'Business Place'.

ls_fieldcat-outputlen = 10.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'HKONT'.

ls_fieldcat-col_pos = '6'.

ls_fieldcat-seltext_l = 'G/L accounts Posted'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'ACDES'.

ls_fieldcat-col_pos = '7'.

ls_fieldcat-seltext_l = 'G/L description'.

ls_fieldcat-outputlen = 20.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'MWSKZ'.

ls_fieldcat-col_pos = '8'.

ls_fieldcat-seltext_l = 'Tax Code'.

ls_fieldcat-outputlen = 8.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'PSWBT'.

ls_fieldcat-col_pos = '9'.

ls_fieldcat-seltext_l = 'G/L Amount'.

ls_fieldcat-outputlen = 20.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'EBELN'.

ls_fieldcat-col_pos = '10'.

ls_fieldcat-seltext_l = 'Purchase Order'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'EBELP'.

ls_fieldcat-col_pos = '11'.

ls_fieldcat-seltext_l = 'P.O.Line Item'.

ls_fieldcat-outputlen = 10.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'BELNR2'.

ls_fieldcat-col_pos = '12'.

ls_fieldcat-seltext_l = 'GRN Doc '.

ls_fieldcat-outputlen = 10.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'BELNR3'.

ls_fieldcat-col_pos = '13'.

ls_fieldcat-seltext_l = 'GRN FI Doc No.'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'BUDAT1'.

ls_fieldcat-col_pos = '14'.

ls_fieldcat-seltext_l = 'GR Posting Date '.

ls_fieldcat-outputlen = 10.

APPEND ls_fieldcat TO e01_lt_fieldcat.

ENDFORM. "e01_fieldcat_init

&----


*& Form EVENTTAB_BUILD

&----


  • text

----


  • <--P_GT_EVENTS text

----


FORM eventtab_build CHANGING lt_events TYPE slis_t_event.

CONSTANTS:

gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.

DATA: ls_event TYPE slis_alv_event.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = lt_events.

READ TABLE lt_events WITH KEY name = slis_ev_top_of_page

INTO ls_event.

IF sy-subrc = 0.

MOVE gc_formname_top_of_page TO ls_event-form.

APPEND ls_event TO lt_events.

ENDIF.

ENDFORM. " EVENTTAB_BUILD

&----


*& Form E04_COMMENT_BUILD

&----


  • text

----


  • -->P_GT_LIST_TOP_OF_PAGE[] text

----


FORM e04_comment_build USING e04_lt_top_of_page TYPE slis_t_listheader.

DATA : v_time(5) TYPE c.

DATA: ls_line TYPE slis_listheader.

DATA: ls_colr TYPE slis_specialcol_alv.

DATA : v_text(90) TYPE c.

CONCATENATE ' Report for MIRO track ':' ' INTO v_text SEPARATED BY space.

CLEAR ls_line.

ls_line-typ = 'H'.

ls_line-info = v_text.

APPEND ls_line TO e04_lt_top_of_page.

ENDFORM. " E04_COMMENT_BUILD

----


  • FORM TOP_OF_PAGE *

----


  • ........ *

----


FORM top_of_page.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = gt_list_top_of_page.

ENDFORM. "TOP_OF_PAGE

*&----


**& Form DATA_RETRIVE

*&----


    • text

*----


FORM data_retrive.

  • fetching Accounting Document Number and Fiscal year from Incoming Invoice table

SELECT belnr gjahr ebeln ebelp bukrs

INTO CORRESPONDING FIELDS OF TABLE it_rseg

FROM rseg

WHERE belnr IN s_belnr

AND gjahr IN s_gjahr

AND bukrs = '1000'.

LOOP AT it_rseg.

CONCATENATE it_rseg-belnr it_rseg-gjahr INTO it_rseg-awkey.

MODIFY it_rseg.

CLEAR it_rseg.

ENDLOOP.

IF it_rseg[] IS NOT INITIAL.

SELECT belnr gjahr xblnr budat awkey

INTO CORRESPONDING FIELDS OF TABLE it_bkpf

FROM bkpf

FOR ALL ENTRIES IN it_rseg

WHERE awkey = it_rseg-awkey

AND budat IN s_budat

AND bukrs = '1000'

AND blart <> 'ML'.

ENDIF.

IF it_bkpf[] IS NOT INITIAL.

SELECT belnr gjahr bupla lifnr hkont koart mwskz pswbt ebeln ebelp xref3 bschl shkzg

INTO CORRESPONDING FIELDS OF TABLE it_bseg

FROM bseg

FOR ALL ENTRIES IN it_bkpf

WHERE belnr = it_bkpf-belnr

AND gjahr = it_bkpf-gjahr.

ENDIF.

  • fetching G/L account description

IF it_bseg[] IS NOT INITIAL.

SELECT lifnr name1

INTO CORRESPONDING FIELDS OF TABLE it_lfa1

FROM lfa1

FOR ALL ENTRIES IN it_bseg

WHERE lifnr = it_bseg-lifnr

AND spras = 'EN'.

SELECT saknr txt20 txt50

INTO CORRESPONDING FIELDS OF TABLE it_skat

FROM skat

FOR ALL ENTRIES IN it_bseg

WHERE saknr = it_bseg-hkont

AND spras = 'EN'

AND ktopl = 'HRJL'.

SELECT ebeln ebelp budat

INTO CORRESPONDING FIELDS OF TABLE it_ekbe

FROM ekbe

FOR ALL ENTRIES IN it_bseg

WHERE ebeln = it_bseg-ebeln

AND ebelp = it_bseg-ebelp

AND bewtp = 'E'.

ENDIF.

LOOP AT it_bseg.

IF it_bseg-koart = 'K'.

it_bseg-miro_accnt = it_bseg-lifnr.

ELSE.

it_bseg-miro_accnt = it_bseg-hkont.

ENDIF.

IF it_bseg-shkzg = 'H'.

it_bseg-pswbt = it_bseg-pswbt * -1.

ENDIF.

it_bseg-belnr2 = it_bseg-xref3+4(10).

MODIFY it_bseg.

READ TABLE it_ekbe WITH KEY ebeln = it_bseg-ebeln

ebelp = it_bseg-ebelp.

IF sy-subrc = 0.

it_bseg-budat1 = it_ekbe-budat.

ENDIF.

READ TABLE it_bkpf WITH KEY belnr = it_bseg-belnr

gjahr = it_bseg-gjahr.

IF sy-subrc = 0.

it_bseg-belnr = it_bkpf-belnr.

it_bseg-gjahr = it_bkpf-gjahr.

it_bseg-xblnr = it_bkpf-xblnr.

it_bseg-budat = it_bkpf-budat.

it_bseg-belnr1 = it_bkpf-awkey+0(10).

ENDIF.

IF it_bseg-koart = 'K'.

READ TABLE it_lfa1 WITH KEY lifnr = it_bseg-miro_accnt.

IF sy-subrc = 0.

it_bseg-acdes = it_lfa1-name1.

ENDIF.

ELSE.

READ TABLE it_skat WITH KEY saknr = it_bseg-miro_accnt.

IF sy-subrc = 0.

IF it_skat-txt20 IS NOT INITIAL.

it_bseg-acdes = it_skat-txt20.

ELSE.

it_bseg-acdes = it_skat-txt50.

ENDIF.

ENDIF.

ENDIF.

MODIFY it_bseg.

CLEAR it_bseg.

ENDLOOP.

it_bseg1[] = it_bseg[].

LOOP AT it_bseg1.

IF it_bseg1-xref3 = ''.

DELETE it_bseg1.

CLEAR it_bseg1.

ENDIF.

ENDLOOP.

IF it_bseg1[] IS NOT INITIAL.

SELECT belnr gjahr bschl xref3

FROM bsis

INTO CORRESPONDING FIELDS OF TABLE it_bsis

FOR ALL ENTRIES IN it_bseg1

WHERE xref3 = it_bseg1-xref3

AND gjahr = it_bseg1-gjahr

AND bschl = '96'.

ENDIF.

LOOP AT it_bseg.

READ TABLE it_bsis WITH KEY xref3 = it_bseg-xref3.

IF sy-subrc = 0.

it_bseg-belnr3 = it_bsis-belnr.

it_bseg-gjahr1 = it_bsis-gjahr.

ENDIF.

MODIFY it_bseg.

CLEAR it_bseg.

ENDLOOP.

ENDFORM. "data_retrive

&----


*& Form DISPLAY_REPORT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display_report .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_background_id = ''

i_callback_program = g_repid

  • i_callback_user_command = 'USER_COMMAND'

is_layout = gs_layout

it_fieldcat = gt_fieldcat[]

it_special_groups = gt_sp_group[]

it_sort = gt_sort[]

it_filter = gt_filter[]

i_save = g_save

is_variant = g_variant

it_events = gt_events[]

is_print = gs_print

it_alv_graphics = gt_alv_graphics[]

it_excluding = gt_excluding

TABLES

t_outtab = it_bseg.

ENDFORM. " DISPLAY_REPORT

&----


*& Form build_layout

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build_layout.

gs_layout-no_input = 'X'.

gs_layout-colwidth_optimize = 'X'.

gs_layout-totals_text = 'Totals'(201).

gs_layout-info_fieldname = 'LINE_COLOR'.

ENDFORM. " BUILD_LAYOUT

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

This is for MIGO.

REPORT zmm_migo_track.

TABLES : bseg, ekbe, skat, bsis.

*----


  • AlV related data declarations

*----


  • Type Pools

TYPE-POOLS: slis.

CONSTANTS:

gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.

----


  • Data Declaration file *

----


DATA : BEGIN OF it_bseg OCCURS 0,

belnr TYPE bseg-belnr,

gjahr TYPE bseg-gjahr,

bukrs TYPE bseg-bukrs,

hkont TYPE bseg-hkont,

pswbt TYPE bseg-pswbt,

ebeln TYPE bseg-ebeln,

ebelp TYPE bseg-ebelp,

xref3 TYPE bseg-xref3,

shkzg TYPE bseg-shkzg,

budat TYPE ekbe-budat,

acdes(50),

belnr1 TYPE bseg-belnr,

END OF it_bseg.

DATA : it_bseg1 LIKE it_bseg OCCURS 0 WITH HEADER LINE.

DATA : BEGIN OF it_bsis OCCURS 0,

belnr TYPE bsis-belnr,

gjahr TYPE bsis-gjahr,

bschl TYPE bsis-bschl,

xref3 TYPE bsis-xref3,

END OF it_bsis.

DATA : BEGIN OF it_skat OCCURS 0,

saknr TYPE skat-saknr,

txt20 TYPE skat-txt20,

txt50 TYPE skat-txt50,

spras TYPE skat-spras,

ktopl TYPE skat-ktopl,

END OF it_skat.

DATA : BEGIN OF it_ekbe OCCURS 0,

ebeln TYPE ekbe-ebeln,

ebelp TYPE ekbe-ebelp,

budat TYPE ekbe-budat,

bewtp TYPE ekbe-bewtp,

END OF it_ekbe.

DATA : fiscal_year_low(4),

fiscal_year_high(4).

DATA : fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,

gd_repid LIKE sy-repid.

DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,

gs_layout TYPE slis_layout_alv ,

gs_print TYPE slis_print_alv,

gt_sort TYPE slis_t_sortinfo_alv ,

gt_filter TYPE slis_t_filter_alv,

gt_sp_group TYPE slis_t_sp_group_alv,

gt_alv_graphics TYPE dtc_t_tc,

gt_excluding TYPE slis_t_extab ,

gt_events TYPE slis_t_event .

DATA: g_repid LIKE sy-repid.

DATA: gt_list_top_of_page TYPE slis_t_listheader.

DATA: g_boxnam TYPE slis_fieldname VALUE 'BOX',

p_f2code LIKE sy-ucomm VALUE '&ETA',

p_lignam TYPE slis_fieldname VALUE 'LIGHTS',

g_save(1) TYPE c,

g_default(1) TYPE c,

g_exit(1) TYPE c,

gx_variant LIKE disvariant,

g_variant LIKE disvariant.

----


  • USER ENTRY PARAMETERS *

----


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

SELECT-OPTIONS : s_belnr FOR bseg-belnr OBLIGATORY,

s_budat FOR ekbe-budat OBLIGATORY.

SELECTION-SCREEN END OF BLOCK blk1.

AT SELECTION-SCREEN.

IF s_budat-low IS NOT INITIAL.

CALL FUNCTION 'GM_GET_FISCAL_YEAR'

EXPORTING

i_date = s_budat-low

i_fyv = 'V3'

IMPORTING

e_fy = fiscal_year_low

  • EXCEPTIONS

  • FISCAL_YEAR_DOES_NOT_EXIST = 1

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

ENDIF.

IF s_budat-high IS NOT INITIAL.

CALL FUNCTION 'GM_GET_FISCAL_YEAR'

EXPORTING

i_date = s_budat-high

i_fyv = 'V3'

IMPORTING

e_fy = fiscal_year_high

  • EXCEPTIONS

  • FISCAL_YEAR_DOES_NOT_EXIST = 1

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

ENDIF.

----


  • START-OF-SELECTION *

----


START-OF-SELECTION.

PERFORM data_retrive.

PERFORM data_call_alv.

PERFORM build_layout.

END-OF-SELECTION.

&----


*& Form DATA_CALL_ALV

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM data_call_alv .

g_repid = sy-repid.

PERFORM e01_fieldcat_init USING gt_fieldcat[].

PERFORM eventtab_build CHANGING gt_events.

PERFORM e04_comment_build USING gt_list_top_of_page[].

PERFORM display_report.

ENDFORM. " DATA_CALL_ALV

&----


*& Form E01_FIELDCAT_INIT

&----


  • text

----


  • -->P_GT_FIELDCAT[] text

----


FORM e01_fieldcat_init USING e01_lt_fieldcat TYPE slis_t_fieldcat_alv.

DATA: ls_fieldcat TYPE slis_fieldcat_alv.

DATA: gs_sort TYPE slis_sortinfo_alv.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'BELNR1'.

ls_fieldcat-col_pos = '1'.

ls_fieldcat-seltext_l = 'GRN Doc '.

ls_fieldcat-outputlen = 10.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'BELNR'.

ls_fieldcat-col_pos = '2'.

ls_fieldcat-seltext_l = 'GRN FI Doc No.'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'BUDAT'.

ls_fieldcat-col_pos = '3'.

ls_fieldcat-seltext_l = 'GR Posting Date '.

ls_fieldcat-outputlen = 10.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'HKONT'.

ls_fieldcat-col_pos = '4'.

ls_fieldcat-seltext_l = 'Account Assignment'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'ACDES'.

ls_fieldcat-col_pos = '5'.

ls_fieldcat-seltext_l = 'Description'.

ls_fieldcat-outputlen = 20.

APPEND ls_fieldcat TO e01_lt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'PSWBT'.

ls_fieldcat-col_pos = '6'.

ls_fieldcat-seltext_l = 'G/L Amount'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO e01_lt_fieldcat.

ENDFORM. "e01_fieldcat_init

&----


*& Form EVENTTAB_BUILD

&----


  • text

----


  • <--P_GT_EVENTS text

----


FORM eventtab_build CHANGING lt_events TYPE slis_t_event.

CONSTANTS:

gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.

DATA: ls_event TYPE slis_alv_event.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = lt_events.

READ TABLE lt_events WITH KEY name = slis_ev_top_of_page

INTO ls_event.

IF sy-subrc = 0.

MOVE gc_formname_top_of_page TO ls_event-form.

APPEND ls_event TO lt_events.

ENDIF.

ENDFORM. " EVENTTAB_BUILD

&----


*& Form E04_COMMENT_BUILD

&----


  • text

----


  • -->P_GT_LIST_TOP_OF_PAGE[] text

----


FORM e04_comment_build USING e04_lt_top_of_page TYPE slis_t_listheader.

DATA : v_time(5) TYPE c.

DATA: ls_line TYPE slis_listheader.

DATA: ls_colr TYPE slis_specialcol_alv.

DATA : v_text(90) TYPE c.

CONCATENATE ' Report for MIGO track ':' ' INTO v_text SEPARATED BY space.

CLEAR ls_line.

ls_line-typ = 'H'.

ls_line-info = v_text.

APPEND ls_line TO e04_lt_top_of_page.

ENDFORM. " E04_COMMENT_BUILD

----


  • FORM TOP_OF_PAGE *

----


  • ........ *

----


FORM top_of_page.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = gt_list_top_of_page.

ENDFORM. "TOP_OF_PAGE

*&----


**& Form DATA_RETRIVE

*&----


    • text

*----


FORM data_retrive.

  • fetching migo G/L account

IF fiscal_year_high IS NOT INITIAL.

SELECT belnr gjahr hkont pswbt ebeln ebelp xref3 shkzg

FROM bseg

INTO CORRESPONDING FIELDS OF TABLE it_bseg

WHERE belnr IN s_belnr

AND gjahr BETWEEN fiscal_year_low AND fiscal_year_high

AND bukrs = '1000'.

ELSE.

SELECT belnr gjahr hkont pswbt ebeln ebelp xref3 shkzg

FROM bseg

INTO CORRESPONDING FIELDS OF TABLE it_bseg

WHERE belnr IN s_belnr

AND gjahr = fiscal_year_low

AND bukrs = '1000'.

ENDIF.

  • fetching G/L account description

IF it_bseg[] IS NOT INITIAL.

SELECT saknr txt20 txt50

INTO CORRESPONDING FIELDS OF TABLE it_skat

FROM skat

FOR ALL ENTRIES IN it_bseg

WHERE saknr = it_bseg-hkont

AND spras = 'EN'

AND ktopl = 'HRJL'.

SELECT ebeln ebelp budat

INTO CORRESPONDING FIELDS OF TABLE it_ekbe

FROM ekbe

FOR ALL ENTRIES IN it_bseg

WHERE ebeln = it_bseg-ebeln

AND ebelp = it_bseg-ebelp

AND bewtp = 'E'.

ENDIF.

LOOP AT it_bseg.

IF it_bseg-shkzg = 'H'.

it_bseg-pswbt = it_bseg-pswbt * -1.

ENDIF.

MODIFY it_bseg.

READ TABLE it_ekbe WITH KEY ebeln = it_bseg-ebeln

ebelp = it_bseg-ebelp.

IF sy-subrc = 0.

it_bseg-budat = it_ekbe-budat.

ENDIF.

READ TABLE it_skat WITH KEY saknr = it_bseg-hkont.

IF sy-subrc = 0.

IF it_skat-txt20 IS NOT INITIAL.

it_bseg-acdes = it_skat-txt20.

ELSE.

it_bseg-acdes = it_skat-txt50.

ENDIF.

ENDIF.

MODIFY it_bseg.

CLEAR it_bseg.

ENDLOOP.

it_bseg1[] = it_bseg[].

LOOP AT it_bseg1.

IF it_bseg1-xref3 = ''.

DELETE it_bseg1.

CLEAR it_bseg1.

ENDIF.

ENDLOOP.

LOOP AT it_bseg.

READ TABLE it_bseg1 WITH KEY belnr = it_bseg-belnr.

IF sy-subrc = 0.

it_bseg-belnr1 = it_bseg1-xref3+4(10).

it_bseg-xref3 = it_bseg1-xref3.

ENDIF.

MODIFY it_bseg.

CLEAR it_bseg.

ENDLOOP.

ENDFORM. "data_retrive

&----


*& Form DISPLAY_REPORT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display_report .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_background_id = ''

i_callback_program = g_repid

  • i_callback_user_command = 'USER_COMMAND'

is_layout = gs_layout

it_fieldcat = gt_fieldcat[]

it_special_groups = gt_sp_group[]

it_sort = gt_sort[]

it_filter = gt_filter[]

i_save = g_save

is_variant = g_variant

it_events = gt_events[]

is_print = gs_print

it_alv_graphics = gt_alv_graphics[]

it_excluding = gt_excluding

TABLES

t_outtab = it_bseg.

ENDFORM. " DISPLAY_REPORT

&----


*& Form build_layout

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build_layout.

gs_layout-no_input = 'X'.

gs_layout-colwidth_optimize = 'X'.

gs_layout-totals_text = 'Totals'(201).

gs_layout-info_fieldname = 'LINE_COLOR'.

ENDFORM. " BUILD_LAYOUT

0 Kudos

ITS NOT WORKING MAN.

0 Kudos

Hi sumit,

its working with my client..

check out the stuff which is hardcoded like Chart of Accounts, company code, business area, etc.

Regards,

Amit

0 Kudos

I have solved my query. Actually the reference document number is not picked in the MIGO Documents & i have use the reference documents in my report.

Now,another problem arises that how the MIGO documents are built in which there is no reference documents.??

Thanks,

Sumit.

Former Member
0 Kudos

Thanks Buddy anyways....

0 Kudos

>

> Thanks Buddy anyways....

To whom?