Skip to Content
author's profile photo Former Member
Former Member

ALV Doubt...

Hi,

I want to club two field values in ALV based upon the condition,I have selected the records from two database table based upon the condition and output is displayed using ALV Grid.I am getting the output as below.

eg:

AUFNR WEMNG MENGE

10001 15 11

10001 15 4

I want output as below:

AUFNR WEMNG MENGE

10001 15 11

10001 4

Both the cells of WEMNG should be clubbed based upon the AUFNR value..Please help me..

Thanks in advance,

Thasneem.

null

Title was edited by:

Alvaro Tejada Galindo

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

2 Answers

  • author's profile photo Former Member
    Former Member
    Posted on Oct 22, 2007 at 11:13 AM

    Hi

    sort the ITAB by AUFNR and build a sort internal table I_SORT with the fields of AUFNR and pass it to the Fun module

    see the sample code

    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

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Oct 22, 2007 at 11:14 AM

    HI,

    Good,

    Before calling the ALV function module,

    sort that fianl table BY AUFNR, WEMNG adn MENGE

    Thanks,

    Sunil

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.