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: 

Alv report please help

Former Member
0 Kudos

Hi,

Please help me in this.

1) Create the selection screen with the following fields on it.

S_REQUESTOR for ZSWAPHISTORY- REQUESTOR

S_APPROVER for ZSWAPHISTORY- APPROVER providing range

S_to_customer for ZSWAPHISTORY- to_customer providing range

S_from_customer for ZSWAPHISTORY- from_customer providing range

S_MRPC for MARC-DISPO providing range

S_MATNR for MARA-MATNR providing range

S_APPR_DATE for ZSWAPHISTORY- APPR_DATE Default to yesterdays date

S_QUAN for ZSWAPHISTORY-quan

2) Validate the fields entered in the selection screen.

3) Check the user authorizations for this report.

4) Select the entries from the table ZSWAPHISTORY into an internal table based on the input from the selection screen and the value of the field ZSWAPHISTORY -STATUS is APPROVED.

5) Then select the MRP Controller ID (DISPO) from the Table MARC for all entries in the internal table where MARC-MATNR equals to the internal table -material number.

6) Move the field value of MRP Controller ID (DISPO) into the final internal table for the corresponding entries.

7) Declare the Filed Catalogue with the fields that are to be displayed in the ALV

Please help to create this , iam new to this area.

Thanks

Ali

2 REPLIES 2

Former Member
0 Kudos

data:it_zswaphistory type table of zswaphistory with header line.

data:begin of it_final occurs 0,

*-----declare all the filds of zswaphisory,marc,mara.

end of it_final.

data:it_fcat type slis_t_fieldcat_alv,

wa_fcat type slis_fieldcat_alv.

tables:ZSWAPHISTORY,MARC,MARA.

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

select-options:S_REQUESTOR for ZSWAPHISTORY- REQUESTOR,

S_APPROVER for ZSWAPHISTORY- APPROVER ,

S_to_customer for ZSWAPHISTORY- to_customer ,

S_from_customer for ZSWAPHISTORY- from_customer,

S_MRPC for MARC-DISPO,

S_MATNR for MARA-MATNR,

S_APPR_DATE for ZSWAPHISTORY- APPR_DATE ,

S_QUAN for ZSWAPHISTORY-quan.

*-----defalut values

initialization.

s_appr_date-low = sy-datum - 1.

s_appr_date-high = sy-datum.

append s_appr_date.

*----validation

at selectin-screen.

perform validate_s_requestor.

form validate_s_requestor.

if not s_requestor[] is initial.

select single requestor

from (enter hear check table)

into zswaphistory-requestor

where requestor in s_requestor.

if sy-subrc <> 0.

message e000 with 'Invalalid requestor'.

endif.

endif.

***This is the way to do the validation for sel fields

start-of-selection.

select * from zswaphistory

into table it_zswaphistory

where requestor in s_requestor

and approver in s_approver

and to_customer in s_to_customer

and from_customer in s_from_customer

and APPR_DATE in s_APPR_DATE

and s_quan in s_quan

and satus = 'Approved'. (i think it is constat).

*----check wheterh matnr is there in zswaphistoy

*---if yes write the fallowing code

select dispo

from marc

into table it_marc

for all entries in it_zswaphistory

where matnr = it_zswaphistory-matnr.

*-------populate the data into final table

loop it_marc

read table it_zswaphisoty with key matnr = it_marc-matnr

binary search.

if sy-subrc = 0.

it_final-REQUESTOR = zswaphisoty-REQUESTOR.

it_final-APPROVER = zswaphisoty-APPROVER.

it_final-to_customer = zswaphisoty-to_customer.

it_final-from_customer = zswaphisoty-from_customer.

it_final-APPR_DATE = zswaphisoty-APPR_DATE.

it_final-QUAN= zswaphisoty-QUAN.

it_final-DISPO=marc-DISPO

endif.

*-------FILL THE FIELDCATALOG LIKE THE FALLOWING WAY

clear wa_fcat.

*CLEAR IT_FCAT.

wa_fcat-tabname = 'IT_FINAL.

wa_fcat-fieldname = 'REQUESTOR.

wa_fcat-row_pos = '1'.

append wa_fcat to it_fcat.

clear wa_fcat.

like this we need to fill the fieldscatalog for all fields

use fallowing fm for display the data in alv

REUSE_ALV_GRID_DISPLAY or REUSE_ALV_LIST_DISPLAY'

Former Member
0 Kudos

Hi

See the sample code of ALV and do accordingly

Since you are using a Z table it is not clear to create

report ZRGRIRNA no standard page heading

line-count 65

line-size 255

message-id mm.

----


  • GR IR Detail Report *

----


  • Description : The output has to be displayed

  • in the ALV Grid format with the Selection *

  • screen appearing on the output. In The Output *

  • Subtotals for Vendor, Plant, Period, Material,*

  • Valuation Class, Purchase Order,Cost Center, *

  • Cost Element and Receipt Date are displayed *

  • after sorting the data by same fields. *

----


  • Declaration for Tables

----


tables: t001, " Company Codes

t001w, " Plants/Branches

lfa1, " Vendor Master

ska1, " GL Account Master

mara, " Material Master

mbew, " Material Valuation

ekko, " PO Header Data

cska, " Cost Elements

csks, " Cost Centers

bsis, " GL Accounts: Open Items Data

bkpf. " Accounting Doc: Header Data

----


  • Type-pools

----


  • Type pools for ALV display

type-pools : slis.

----


  • Global variables

----


data: g_repid like sy-repid,

g_exit type c,

g_events type slis_t_event,

g_list_top_of_page type slis_t_listheader,

g_exit_caused_by_caller,

g_exit_caused_by_user type slis_exit_by_user,

g_top_of_page type slis_formname value 'TOP_OF_PAGE',

g_variant like disvariant,

g_save.

----


  • Declaration for Constants

----


constants : c_x type c value 'X', " Flag

c_c type c value 'C', " Flag

c_l type c value 'L', " Flag

c_a type c value 'A', " Line Type

c_h type c value 'H', " Dr/Cr

c_s type c value 'S', " Line Type

c_mkpf(4) type c value 'MKPF'. " Table

----


  • Declaration of Internal Tables

----


  • Internal Table for BSIS Table data

data: begin of i_bsis occurs 0,

bukrs like bsis-bukrs, " Company Code

hkont like bsis-hkont, " GR IR Account

gjahr like bsis-gjahr, " Fiscal Year

belnr like bsis-belnr, " Acc Document

buzei like bsis-buzei, " Item No

budat like bsis-budat, " Receipt Date(Posting)

monat like bsis-monat, " Period

end of i_bsis.

  • Internal Table for BSEG Table data

data: begin of i_bseg occurs 0,

bukrs like bsis-bukrs, " Company Code

belnr like bsis-belnr, " Acc Document

buzei like bsis-buzei, " Item No

gjahr like bsis-gjahr, " Fiscal Year

shkzg like bseg-shkzg, " Dr/Cr Indicator

lifnr like bseg-lifnr, " Vendor Code

matnr like bseg-matnr, " Material No

ebeln like bseg-ebeln, " Purchase Order

ebelp like bseg-ebelp, " PO Item

werks like bseg-werks, " Plant

menge like bseg-menge, " PO Quantity

meins like bseg-meins, " UOM

dmbtr like bseg-dmbtr, " Amount in Local Currency

wrbtr like bseg-wrbtr, " Amount in Trans.Currency

end of i_bseg.

  • Internal Table for BKPF Table data

data: begin of i_bkpf occurs 0,

bukrs like bkpf-bukrs, " Company Code

belnr like bkpf-belnr, " Acc Document

gjahr like bkpf-gjahr, " Fiscal Year

waers like bkpf-waers, " Trans. Currency

awkey like bkpf-awkey, " Object Key

awtyp like bkpf-awtyp, " Reference Procedure

end of i_bkpf.

  • Internal Table for MSEG Table data

data: begin of i_mseg occurs 0,

mblnr like mseg-mblnr, " Material Document

mjahr like mseg-mjahr, " Fiscal Year

bwart like mseg-bwart, " Movement Type

matnr like mseg-matnr, " Material No

menge like mseg-menge, " PO Quantity

meins like mseg-meins, " UOM

end of i_mseg.

  • Internal Table for MBEW Table data

data: begin of i_mbew occurs 0,

matnr like mbew-matnr, " Material No

werks like mbew-bwkey, " Plant

bklas like mbew-bklas, " Valuation Class

end of i_mbew.

  • Internal Table for EKPO Table data

data: begin of i_ekpo occurs 0,

ebeln like ekpo-ebeln, " Purchase Order

ebelp like ekpo-ebelp, " PO Item

matnr like ekpo-matnr, " Material No

txz01 like ekpo-txz01, " Material Text

end of i_ekpo.

  • Internal Table for EKKN Table data

data: begin of i_ekkn occurs 0,

ebeln like ekkn-ebeln, " Purchase Order

ebelp like ekkn-ebelp, " PO Item

kostl like ekkn-kostl, " Cost Center

sakto like ekkn-sakto, " Cost Element

end of i_ekkn.

  • Internal Table for LFA1 Table data

data: begin of i_lfa1 occurs 0,

lifnr like lfa1-lifnr, " Vendor

name1 like lfa1-name1, " Name

end of i_lfa1.

  • Declaration of Output Internal Table

data: begin of i_final occurs 0,

lifnr like lfa1-lifnr, " Vendor

werks like bseg-werks, " Plant

monat like bsis-monat, " Period

matnr like mara-matnr, " Material Number

bklas like mbew-bklas, " Val Class

ebeln like bseg-ebeln, " PO

kostl like ekkn-kostl, " Cost Center

sakto like ekkn-sakto, " Cost Element

budat like bsis-budat, " Rec. Date

name1 like lfa1-name1, " Vendor Name

belnr like bsis-belnr, " FI Document

bwart like mseg-bwart, " Movement Type

txz01 like ekpo-txz01, " Material Text

menge like bseg-menge, " Quantity

meins like bseg-meins, " UOM

dmbtr like bseg-dmbtr, " Local Amount

wrbtr like bseg-wrbtr, " Tran.Amount

waers like bkpf-waers, " Tran.Currency

status type c, " Material Status

end of i_final.

  • Internal table to hold field catgory data

data: i_fldcat type slis_t_fieldcat_alv. " Table - field catgory

  • Internal table to hold Sort/Subtotals criteria data

data: i_sort type slis_t_sortinfo_alv. " Table - sort/Subtotals

----


  • Structure

----


data: x_layout type slis_layout_alv, " Structure-layout

x_fldcat like line of i_fldcat, " Structure-field catagory

x_sort like line of i_sort. " Structure-Sort/Subtotals

----


  • Selection screen

----


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

parameters:

p_bukrs like t001-bukrs obligatory, " Company Code

p_grira like ska1-saknr default '0241101000' obligatory. " Account

select-options:

s_budat for bkpf-budat, " Posting Date

s_werks for t001w-werks, " Plant

s_lifnr for lfa1-lifnr, " Vendor

s_matnr for mara-matnr, " Material Number

s_kostl for csks-kostl, " Cost Center

s_kstar for cska-kstar, " Cost Element

s_ebeln for ekko-ebeln, " Purchase Order

s_monat for bsis-monat. " Period

selection-screen skip.

parameters:

p_incmt as checkbox default 'X',

p_incnm as checkbox default 'X'.

selection-screen end of block b1.

----


  • Initialization

----


initialization.

g_repid = sy-repid.

perform layout_init using x_layout.

perform eventtab_build using g_events[].

g_variant-report = g_repid.

g_save = 'A'.

----


  • At selection screen

----


at selection-screen.

  • Validation of Selection Screen Fields

perform validate_screen.

----


  • Start of selection

----


start-of-selection.

  • Read Data from Database Tables

perform read_data.

----


  • End of selection

----


end-of-selection.

  • Build layout report layout.

perform populate_layout_stucture.

  • Perform build_field_catalog and Sort Table

perform build_field_catalog.

perform build_sort_totals.

  • List Header for Top-Of-Page

perform comment_build using g_list_top_of_page[].

  • Call list viewer function module

perform call_list_viewer .

****************Form - Routines**************************************

----


  • Form : layout_init

  • Description : Form to Build layout for list display

----


form layout_init using rs_layout type slis_layout_alv.

rs_layout-detail_popup = c_x.

endform.

----


  • Form : Eventtab_build

  • Description : Registration of events to happen during list display

----


form eventtab_build using rt_events type slis_t_event.

  • Registration of events to happen during list display

data: ls_event type slis_alv_event.

call function 'REUSE_ALV_EVENTS_GET'

exporting

i_list_type = 0

importing

et_events = rt_events.

read table rt_events with key name = slis_ev_top_of_page

into ls_event.

if sy-subrc = 0.

move g_top_of_page to ls_event-form.

append ls_event to rt_events.

endif.

endform. "eventtab_build

----


  • Form : top_of_page

----


*

form top_of_page.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

  • I_LOGO = 'ENJOYSAP_LOGO'

it_list_commentary = g_list_top_of_page.

endform.

----


  • Form validate_screen

----


  • Validation of Selection Screen fields

----


form validate_screen.

  • Validation of Company Code

clear t001.

if not p_bukrs is initial.

select single bukrs

into t001-bukrs

from t001

where bukrs eq p_bukrs.

if sy-subrc <> 0.

message e899 with 'Enter Valid Company Code'(012).

endif.

endif.

  • Validation of GL Account (GR/IR)

clear ska1.

if not p_grira is initial.

select saknr

into ska1-saknr

from ska1

up to 1 rows

where saknr eq p_grira.

endselect.

if sy-subrc <> 0.

message e899 with 'Enter Valid GR/IR Account'(013).

endif.

endif.

  • Validation of Vendor Code

clear lfa1.

if not s_lifnr[] is initial.

select single lifnr

into lfa1-lifnr

from lfa1

where lifnr in s_lifnr.

if sy-subrc <> 0.

message e899 with 'Enter Valid Vendor'(001).

endif.

endif.

  • Validation of Plant Code

clear t001w.

if not s_werks[] is initial.

select single werks

into t001w-werks

from t001w

where werks in s_werks.

if sy-subrc <> 0.

message e899 with 'Enter Valid Plant'(014).

endif.

endif.

  • Validation of Material Code

clear mara.

if not s_matnr[] is initial.

select single matnr

into mara-matnr

from mara

where matnr in s_matnr.

if sy-subrc <> 0.

message e899 with 'Enter Valid Material'(015).

endif.

endif.

  • Validation of Purchase Order

clear ekko.

if not s_ebeln[] is initial.

select single ebeln

into ekko-ebeln

from ekko

where ebeln in s_ebeln.

if sy-subrc <> 0.

message e899 with 'Enter Valid Purchase Order'(016).

endif.

endif.

  • Validation of Cost Center

clear csks.

if not s_kostl[] is initial.

select kostl

into csks-kostl

from csks

up to 1 rows

where kostl in s_kostl.

endselect.

if sy-subrc <> 0.

message e899 with 'Enter Valid Cost Center'(017).

endif.

endif.

  • Validation of Cost Element

clear cska.

if not s_kstar[] is initial.

select kstar

into cska-kstar

from cska

up to 1 rows

where kstar in s_kstar.

endselect.

if sy-subrc <> 0.

message e899 with 'Enter Valid Cost Element'(018).

endif.

endif.

endform. "validate_screen

&----


*& Form read_data

&----


  • Read the Data from the database Tables

----


form read_data.

  • Get the Accounting Documents for the GR/IR Account Entered on

  • Selection Screen

clear i_bsis.

refresh i_bsis.

select bukrs " Company Code

hkont " GR IR Account

gjahr " Fiscal Year

belnr " Acc Document

buzei " Item No

budat " Receipt Date(Posting)

monat " Period

into table i_bsis

from bsis

where bukrs = p_bukrs

and hkont = p_grira

and budat in s_budat

and monat in s_monat .

if sy-subrc <> 0.

message i899 with 'No data found'(043).

g_exit = c_x.

stop.

endif.

sort i_bsis by bukrs hkont gjahr belnr buzei.

  • Get the Vendor,PO,Material,Qty details from BSEG Table

if not i_bsis[] is initial.

clear i_bseg.

refresh i_bseg.

select bukrs " Company Code

belnr " Acc Document

buzei " Item No

gjahr " Fiscal Year

shkzg " Dr/Cr Indicator

lifnr " Vendor Code

matnr " Material No

ebeln " Purchase Order

ebelp " PO Item

werks " Plant

menge " PO Quantity

meins " UOM

dmbtr " Amount in Local Currency

wrbtr " Amount in Trans.Currency

into table i_bseg

from bseg

for all entries in i_bsis

where bukrs = p_bukrs

and belnr = i_bsis-belnr

and gjahr = i_bsis-gjahr

and buzei = i_bsis-buzei

and lifnr in s_lifnr

and werks in s_werks

and matnr in s_matnr

and ebeln in s_ebeln.

sort i_bseg by bukrs belnr buzei gjahr.

  • Select the Trans.Currency from BKPF Table

clear i_bkpf.

refresh i_bkpf.

select bukrs " Company Code

belnr " Acc Document

gjahr " Fiscal Year

waers " Trans. Currency

awkey " Object Key

awtyp " Reference Procedure

into table i_bkpf

from bkpf

for all entries in i_bsis

where bukrs = p_bukrs

and belnr = i_bsis-belnr

and gjahr = i_bsis-gjahr.

endif.

sort i_bkpf by bukrs belnr gjahr.

  • Get the Quantity and UOM of Material from MSEG Table

if not i_bkpf[] is initial.

clear i_mseg.

refresh i_mseg.

select mblnr " Material Document

mjahr " Fiscal Year

bwart " Movement Type

matnr " Material No

menge " PO Quantity

meins " UOM

into table i_mseg

from mseg

for all entries in i_bkpf

where mblnr = i_bkpf-awkey(10).

endif.

sort i_mseg by mblnr mjahr.

  • Get the Material And Description from EKPO Table

if not i_bseg[] is initial.

clear i_ekpo.

refresh i_ekpo.

select ebeln " Purchase Order

ebelp " PO Item

matnr " Material No

txz01 " Material Text

into table i_ekpo

from ekpo

for all entries in i_bseg

where ebeln = i_bseg-ebeln

and ebelp = i_bseg-ebelp.

sort i_ekpo by ebeln ebelp.

  • Get the Valuation Class from MBEW Table

clear i_mbew.

refresh i_mbew.

select matnr " Material No

bwkey " Plant

bklas " Valuation Class

into table i_mbew

from mbew

for all entries in i_bseg

where matnr = i_bseg-matnr

and bwkey = i_bseg-werks.

sort i_mbew by matnr werks.

  • Get the Cost Center and Cost Element of the PO from EKKN Table

clear i_ekkn.

refresh i_ekkn.

select ebeln " Purchase Order

ebelp " PO Item

kostl " Cost Center

sakto " Cost Element

into table i_ekkn

from ekkn

for all entries in i_bseg

where ebeln = i_bseg-ebeln

and ebelp = i_bseg-ebelp

and kostl in s_kostl

and sakto in s_kstar.

sort i_ekkn by ebeln ebelp.

  • Get the Vendor Name

clear i_lfa1.

refresh i_lfa1.

select lifnr " Vendor

name1 " Name

into table i_lfa1

from lfa1

for all entries in i_bseg

where lifnr = i_bseg-lifnr.

endif.

sort i_lfa1 by lifnr.

  • Move the data to Final Output Internal Table

loop at i_bsis.

i_final-belnr = i_bsis-belnr. " FI Document

i_final-monat = i_bsis-monat. " Period

i_final-budat = i_bsis-budat. " Rec. Date

  • Read the Transaction Currency from BKPF Internal Table

read table i_bkpf with key bukrs = i_bsis-bukrs

belnr = i_bsis-belnr

gjahr = i_bsis-gjahr

binary search.

if sy-subrc = 0.

i_final-waers = i_bkpf-waers. " Tran.Currency

  • Read the Movement Type for all Material Related

  • Documents from MSEG Internal Table

if i_bkpf-awtyp = c_mkpf.

read table i_mseg with key mblnr = i_bkpf-awkey(10)

mjahr = i_bkpf-awkey+10(4).

if sy-subrc = 0.

i_final-bwart = i_mseg-bwart. " Movement Type

endif.

endif.

endif.

  • Read Vendor, Plant, PO Document, Local And Trans.Amounts

  • from BSEG Internal Table

read table i_bseg with key bukrs = i_bsis-bukrs

belnr = i_bsis-belnr

gjahr = i_bsis-gjahr

buzei = i_bsis-buzei

binary search.

if sy-subrc = 0.

i_final-lifnr = i_bseg-lifnr. " Vendor

i_final-werks = i_bseg-werks. " Plant

i_final-ebeln = i_bseg-ebeln. " PO

i_final-dmbtr = i_bseg-dmbtr. " Local Amount

i_final-wrbtr = i_bseg-wrbtr. " Tran.Amount

i_final-menge = i_bseg-menge. " Quantity

i_final-meins = i_bseg-meins. " UOM

  • For Credit Indicator(SHKZG = H) amounts should be (-)ve

if i_bseg-shkzg = c_h.

i_final-dmbtr = i_final-dmbtr * -1.

i_final-wrbtr = i_final-wrbtr * -1.

i_final-menge = i_final-menge * -1.

endif.

  • Read the Material and its Description from EKPO Internal Table

read table i_ekpo with key ebeln = i_bseg-ebeln

ebelp = i_bseg-ebelp

matnr = i_bseg-matnr

binary search.

if sy-subrc = 0.

i_final-matnr = i_ekpo-matnr. " Material Number

i_final-txz01 = i_ekpo-txz01. " Material Text

  • Populate the Material Status depending on the Input Checkbox

  • On Selection Screen

if not i_ekpo-matnr is initial.

i_final-status = c_x.

endif.

endif.

  • Read the PO related Cost Element and Cost Centers

  • from EKKN Internal Table

read table i_ekkn with key ebeln = i_bseg-ebeln

ebelp = i_bseg-ebelp

binary search.

if sy-subrc = 0.

i_final-kostl = i_ekkn-kostl. " Cost Center

i_final-sakto = i_ekkn-sakto. " Cost Element

endif.

  • Read the Valuation Class from MBEW Internal Table

read table i_mbew with key matnr = i_bseg-matnr

werks = i_bseg-werks

binary search.

if sy-subrc = 0.

i_final-bklas = i_mbew-bklas. " Val Class

endif.

  • Read the Vendor Name from LFA1 Internal Table

read table i_lfa1 with key lifnr = i_bseg-lifnr

binary search.

if sy-subrc = 0.

i_final-name1 = i_lfa1-name1. " Vendor Name

endif.

endif.

append i_final.

clear i_final.

endloop.

sort i_final by lifnr werks monat matnr.

  • Depending on the check Box Selected display the data

if p_incmt = c_x and p_incnm ne c_x.

delete i_final where matnr eq space.

elseif p_incnm = c_x and p_incmt ne c_x.

delete i_final where matnr ne space.

endif.

endform. "Read Data

----


  • Form : populate_layout_stucture

  • Description : Populating the layout structure

----


form populate_layout_stucture.

clear x_layout .

  • Layout properties

x_layout-zebra = c_x.

x_layout-detail_popup = c_x.

x_layout-detail_initial_lines = c_x.

x_layout-colwidth_optimize = c_x.

endform. " populate_layout_stucture

----


  • Form : build_field_catalog

  • Description : Building the field catalog data

----


form build_field_catalog.

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = g_repid

i_internal_tabname = 'I_FINAL'

i_inclname = g_repid

changing

ct_fieldcat = i_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.

  • Getting the Header text for the coloums

loop at i_fldcat into x_fldcat where fieldname = 'LIFNR' or

fieldname = 'NAME1' or

fieldname = 'WERKS' or

fieldname = 'MONAT' or

fieldname = 'MATNR' or

fieldname = 'BKLAS' or

fieldname = 'EBELN' or

fieldname = 'KOSTL' or

fieldname = 'SAKTO' or

fieldname = 'BUDAT' or

fieldname = 'BELNR' or

fieldname = 'BWART' or

fieldname = 'TXZ01' or

fieldname = 'MENGE' or

fieldname = 'MEINS' or

fieldname = 'DMBTR' or

fieldname = 'WRBTR' or

fieldname = 'WAERS' or

fieldname = 'STATUS'.

if x_fldcat-fieldname = 'LIFNR'.

x_fldcat-seltext_l = 'Vendor'(003).

x_fldcat-seltext_m = 'Vendor'(003).

x_fldcat-seltext_s = 'Vendor'(003).

x_fldcat-reptext_ddic = 'Vendor'(003).

x_fldcat-inttype = c_c.

endif.

if x_fldcat-fieldname = 'NAME1'.

x_fldcat-seltext_l = 'Vendor Name'(002).

x_fldcat-seltext_m = 'Vendor Name'(002).

x_fldcat-seltext_s = 'Vendor Name'(002).

x_fldcat-reptext_ddic = 'Vendor Name'(002).

x_fldcat-inttype = c_c.

endif.

if x_fldcat-fieldname = 'WERKS'.

x_fldcat-seltext_l = 'Plant'(010).

x_fldcat-seltext_m = 'Plant'(010).

x_fldcat-seltext_s = 'Plant'(010).

x_fldcat-reptext_ddic = 'Plant'(010).

x_fldcat-ddictxt = c_l.

endif.

if x_fldcat-fieldname = 'MONAT'.

x_fldcat-seltext_l = 'Period'(011).

x_fldcat-seltext_m = 'Period'(011).

x_fldcat-seltext_s = 'Period'(011).

x_fldcat-reptext_ddic = 'Period'(011).

x_fldcat-ddictxt = c_l.

endif.

if x_fldcat-fieldname = 'MATNR'.

x_fldcat-seltext_l = 'Material'(004).

x_fldcat-seltext_m = 'Material'(004).

x_fldcat-seltext_s = 'Material'(004).

x_fldcat-reptext_ddic = 'Material'(004).

x_fldcat-ddictxt = c_l.

endif.

if x_fldcat-fieldname = 'BKLAS'.

x_fldcat-seltext_l = 'Valuation Class'(009).

x_fldcat-seltext_m = 'Valuation Class'(009).

x_fldcat-seltext_s = 'Valuation Class'(009).

x_fldcat-reptext_ddic = 'Valuation Class'(009).

x_fldcat-ddictxt = c_l.

endif.

if x_fldcat-fieldname = 'EBELN'.

x_fldcat-seltext_l = 'Purchase Order'(005).

x_fldcat-seltext_m = 'Purchase Order'(005).

x_fldcat-seltext_s = 'Purchase Order'(005).

x_fldcat-reptext_ddic = 'Purchase Order'(005).

x_fldcat-ddictxt = c_l.

endif.

if x_fldcat-fieldname = 'KOSTL'.

x_fldcat-seltext_l = 'Cost Center'(006).

x_fldcat-seltext_m = 'Cost Center'(006).

x_fldcat-seltext_s = 'Cost Center'(006).

x_fldcat-reptext_ddic = 'Cost Center'(006).

x_fldcat-ddictxt = c_l.

endif.

if x_fldcat-fieldname = 'SAKTO'.

x_fldcat-seltext_l = 'Cost Element'(007).

x_fldcat-seltext_m = 'Cost Element'(007).

x_fldcat-seltext_s = 'Cost Element'(007).

x_fldcat-reptext_ddic = 'Cost Element'(007).

x_fldcat-ddictxt = c_l.

endif.

if x_fldcat-fieldname = 'BUDAT'.

x_fldcat-seltext_l = 'Receipt Date'(008).

x_fldcat-seltext_m = 'Receipt Date'(008).

x_fldcat-seltext_s = 'Receipt Date'(008).

x_fldcat-reptext_ddic = 'Receipt Date'(008).

x_fldcat-ddictxt = c_l.

endif.

if x_fldcat-fieldname = 'BELNR'.

x_fldcat-seltext_l = 'Acc.Document'(100).

x_fldcat-seltext_m = 'Acc.Document'(100).

x_fldcat-seltext_s = 'Acc.Document'(100).

x_fldcat-reptext_ddic = 'Acc.Document'(100).

x_fldcat-ddictxt = c_l.

endif.

if x_fldcat-fieldname = 'BWART'.

x_fldcat-seltext_l = 'Movement Type'(101).

x_fldcat-seltext_m = 'Movement Type'(101).

x_fldcat-seltext_s = 'Movement Type'(101).

x_fldcat-reptext_ddic = 'Movement Type'(101).

x_fldcat-ddictxt = c_l.

endif.

if x_fldcat-fieldname = 'TXZ01'.

x_fldcat-seltext_l = 'Material Text'(102).

x_fldcat-seltext_m = 'Material Text'(102).

x_fldcat-seltext_s = 'Material Text'(102).

x_fldcat-reptext_ddic = 'Material Text'(102).

x_fldcat-ddictxt = c_l.

endif.

if x_fldcat-fieldname = 'MENGE'.

x_fldcat-seltext_l = 'Quantity'(103).

x_fldcat-seltext_m = 'Quantity'(103).

x_fldcat-seltext_s = 'Quantity'(103).

x_fldcat-reptext_ddic = 'Quantity'(103).

x_fldcat-ddictxt = c_l.

x_fldcat-do_sum = c_x.

endif.

if x_fldcat-fieldname = 'MEINS'.

x_fldcat-seltext_l = 'UOM'(104).

x_fldcat-seltext_m = 'UOM'(104).

x_fldcat-seltext_s = 'UOM'(104).

x_fldcat-reptext_ddic = 'UOM'(104).

x_fldcat-ddictxt = c_l.

endif.

if x_fldcat-fieldname = 'DMBTR'.

x_fldcat-seltext_l = 'Amount in Local Curr'(105).

x_fldcat-seltext_m = 'Amount in Local Curr'(105).

x_fldcat-seltext_s = 'Amount in Local Curr'(105).

x_fldcat-reptext_ddic = 'Amount in Local Curr'(105).

x_fldcat-ddictxt = c_l.

x_fldcat-do_sum = c_x.

endif.

if x_fldcat-fieldname = 'WRBTR'.

x_fldcat-seltext_l = 'Amount in Trans.Curr'(106).

x_fldcat-seltext_m = 'Amount in Trans.Curr'(106).

x_fldcat-seltext_s = 'Amount in Trans.Curr'(106).

x_fldcat-reptext_ddic = 'Amount in Trans.Curr'(106).

x_fldcat-ddictxt = c_l.

x_fldcat-do_sum = c_x.

endif.

if x_fldcat-fieldname = 'WAERS'.

x_fldcat-seltext_l = 'Trans.Currency'(107).

x_fldcat-seltext_m = 'Trans.Currency'(107).

x_fldcat-seltext_s = 'Trans.Currency'(107).

x_fldcat-reptext_ddic = 'Trans.Currency'(107).

x_fldcat-ddictxt = c_l.

endif.

if x_fldcat-fieldname = 'STATUS'.

x_fldcat-seltext_l = 'Material Status'(019).

x_fldcat-seltext_m = 'Material Status'(019).

x_fldcat-seltext_s = 'Material Status'(019).

x_fldcat-reptext_ddic = 'Material Status'(019).

x_fldcat-ddictxt = c_l.

endif.

modify i_fldcat from x_fldcat index sy-tabix.

endloop.

endform. " build_field_catalog

----


  • Form : build_sort_totals

  • Description : Building the Criteria for Sort/Subtotals

----


form build_sort_totals.

x_sort-fieldname = 'LIFNR'.

x_sort-tabname = 'I_FINAL'.

x_sort-spos = 1.

x_sort-up = c_x.

x_sort-subtot = c_x.

append x_sort to i_sort.

clear x_sort.

x_sort-fieldname = 'WERKS'.

x_sort-tabname = 'I_FINAL'.

x_sort-spos = 2.

x_sort-up = c_x.

x_sort-subtot = c_x.

append x_sort to i_sort.

clear x_sort.

x_sort-fieldname = 'MONAT'.

x_sort-tabname = 'I_FINAL'.

x_sort-spos = 3.

x_sort-up = c_x.

x_sort-subtot = c_x.

append x_sort to i_sort.

clear x_sort.

x_sort-fieldname = 'MATNR'.

x_sort-tabname = 'I_FINAL'.

x_sort-spos = 4.

x_sort-up = c_x.

x_sort-subtot = c_x.

append x_sort to i_sort.

clear x_sort.

x_sort-fieldname = 'BKLAS'.

x_sort-tabname = 'I_FINAL'.

x_sort-spos = 5.

x_sort-up = c_x.

x_sort-subtot = c_x.

append x_sort to i_sort.

clear x_sort.

x_sort-fieldname = 'EBELN'.

x_sort-tabname = 'I_FINAL'.

x_sort-spos = 6.

x_sort-up = c_x.

x_sort-subtot = c_x.

append x_sort to i_sort.

clear x_sort.

x_sort-fieldname = 'KOSTL'.

x_sort-tabname = 'I_FINAL'.

x_sort-spos = 7.

x_sort-up = c_x.

x_sort-subtot = c_x.

append x_sort to i_sort.

clear x_sort.

x_sort-fieldname = 'SAKTO'.

x_sort-tabname = 'I_FINAL'.

x_sort-spos = 8.

x_sort-up = c_x.

x_sort-subtot = c_x.

append x_sort to i_sort.

clear x_sort.

x_sort-fieldname = 'BUDAT'.

x_sort-tabname = 'I_FINAL'.

x_sort-spos = 9.

x_sort-up = c_x.

x_sort-subtot = c_x.

append x_sort to i_sort.

clear x_sort.

endform. " build_sort_totals

----


  • Form : comment_build

  • Description : This form is used to display the Report Header(ALV)

----


*

form comment_build using lt_top_of_page type

slis_t_listheader.

data: l_line type slis_listheader,

l_heading1 like rs38m-repti,

l_date(10), l_time(8).

clear l_line.

l_heading1 = 'GR/IR DETAIL REPORT'(021).

g_repid = sy-repid.

write sy-uzeit to l_time.

write sy-datum to l_date.

l_line-typ = c_h.

move l_heading1 to l_line-info.

append l_line to lt_top_of_page.

clear l_line.

l_line-typ = c_s.

concatenate 'System:'(023) sy-sysid

'Date:'(024) l_date

' Time:'(025)

l_time into l_line-info.

append l_line to lt_top_of_page.

concatenate 'Report:'(026) g_repid

' User:'(027) sy-uname into

l_line-info.

append l_line to lt_top_of_page.

l_line-typ = c_a.

move 'SELECTION CRITERIA:'(028) to l_line-info.

append l_line to lt_top_of_page.

concatenate ' Company Code : '(029)

p_bukrs into l_line-info.

append l_line to lt_top_of_page.

concatenate ' GR/IR Account: '(030)

p_grira into l_line-info.

append l_line to lt_top_of_page.

concatenate ' Posting Date : '(032) s_budat-low

' To: '(031) s_budat-high into l_line-info.

append l_line to lt_top_of_page.

concatenate ' Plant : '(033) s_werks-low

' To: '(031) s_werks-high into l_line-info.

append l_line to lt_top_of_page.

concatenate ' Vendor: '(034) s_lifnr-low

' To: '(031) s_lifnr-high into l_line-info.

append l_line to lt_top_of_page.

concatenate ' Material: '(035) s_matnr-low

' To: '(031) s_matnr-high into l_line-info.

append l_line to lt_top_of_page.

concatenate ' Cost Center : '(036) s_kostl-low

' To: '(031) s_kostl-high into l_line-info.

append l_line to lt_top_of_page.

concatenate ' Cost Element: '(037) s_kstar-low

' To: '(031) s_kstar-high into l_line-info.

append l_line to lt_top_of_page.

concatenate ' Purchase Order: '(038) s_ebeln-low

' To: '(031) s_ebeln-high into l_line-info.

append l_line to lt_top_of_page.

concatenate ' Period : '(039) s_monat-low

' To: '(031) s_monat-high into l_line-info.

append l_line to lt_top_of_page.

concatenate ' Include Material Items: '(040)

p_incmt into l_line-info.

append l_line to lt_top_of_page.

concatenate ' Include Non-Material Items: '(041)

p_incnm into l_line-info.

append l_line to lt_top_of_page.

endform.

----


  • Form : call_list_viewer

  • Description : This form is used to display the grid through ALV

----


form call_list_viewer.

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

i_callback_program = g_repid

is_layout = x_layout

it_fieldcat = i_fldcat[]

i_default = c_x

it_sort = i_sort[]

i_save = g_save

is_variant = g_variant

it_events = g_events[]

importing

e_exit_caused_by_caller = g_exit_caused_by_caller

es_exit_caused_by_user = g_exit_caused_by_user

tables

t_outtab = i_final

exceptions

program_error = 1

others = 2.

if sy-subrc <> 0.

write: / 'Problem in calling the ALV report'(042).

endif.

endform. " call_list_viewer

Regards

Anji