<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Problem with alv in background in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-alv-in-background/m-p/2832623#M663113</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      i have an alv list with 17 columns .when i execute it in foreground the alv o/p appears perfect,but when executed in background the alv o/p appears distorted in the spool.&lt;/P&gt;&lt;P&gt; in the code i have used line-size 1023.&lt;/P&gt;&lt;P&gt;any comments friends.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 06 Oct 2007 05:23:34 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-10-06T05:23:34Z</dc:date>
    <item>
      <title>Problem with alv in background</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-alv-in-background/m-p/2832623#M663113</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      i have an alv list with 17 columns .when i execute it in foreground the alv o/p appears perfect,but when executed in background the alv o/p appears distorted in the spool.&lt;/P&gt;&lt;P&gt; in the code i have used line-size 1023.&lt;/P&gt;&lt;P&gt;any comments friends.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 06 Oct 2007 05:23:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-alv-in-background/m-p/2832623#M663113</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-06T05:23:34Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with alv in background</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-alv-in-background/m-p/2832624#M663114</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How u have declared the fields in alv??? where u have executed this alv in background???&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check this sample report &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt; ******************************
* tables
******************************

TABLES: ekko,ekbe,ekpo,ekkn,konh,konv,esll,ekbz,rseg,lfa1,j_1ipart1,
j_1igrxref.
TYPE-POOLS: slis.

******************
*data definituon
*******************

DATA:
      wa_ekko LIKE ekko,
      wa_ekbe LIKE ekbe,
      wa_ekkn LIKE ekkn,
      wa_konp LIKE konp,
      wa_ekpo LIKE ekpo,
      wa_rbkp LIKE rbkp,
      wa_j_1ipart1 LIKE j_1ipart1,
      wa_j_1igrxref LIKE j_1igrxref,
      wa_rseg LIKE rseg OCCURS 0 WITH HEADER LINE.

DATA: ws_vakey LIKE konh-vakey,
      ws_kbetr LIKE konp-kbetr,
      ws_kbetr1 LIKE konp-kbetr,
      ws_kbetr2 LIKE konp-kbetr,
      ws_ecs LIKE j_1igrxref-ecs,
      ws_ebelp LIKE ekbz-ebelp,
      ws_ebeln LIKE ekko-ebeln,
      ws_belnr LIKE ekbe-belnr,
      ws_beznk LIKE  rbkp-beznk,
      ws_wrbtr_f LIKE ekbz-wrbtr,
      ws_rmwwr LIKE rbkp-rmwwr,
      ws_rbkp_benz.

**********************************
*internal tables
*********************************

DATA: BEGIN OF int_outtab OCCURS 0,
      lifnr      LIKE ekko-lifnr,               " vend no
      name1      LIKE lfa1-name1,               " vend name
      werks      LIKE ekpo-werks,               "  plant
      ebeln      LIKE ekko-ebeln,               " po no
      knumv      LIKE ekko-knumv,
      ebelp      LIKE ekbe-ebelp,
      matnr      LIKE ekpo-matnr,               " mat no
      txz01      LIKE ekpo-txz01,               " mat desceiption
      kostl      LIKE ekkn-kostl,               " cost center
      ps_psp_pnr LIKE ekkn-ps_psp_pnr,          " WBS element
      netwr      LIKE ekpo-netwr,
      " basic value           (po)
      kbetr      LIKE konp-kbetr,
      " excise value          (po)
      kwert_i    LIKE konv-kwert,
      " insurance value       (po)
      kwert_f    LIKE konv-kwert,
      " frieght value         (po)
      kwert_t    LIKE konv-kwert,
      " vat/tax value         (po)
      kwert_o    LIKE konv-kwert,
      " others                (po)
      kwert_total LIKE konv-kwert,
      " total                 (po)
      ecs        LIKE j_1igrxref-ecs,
      " excise                (ap)
      wmwst1     LIKE   rbkp-wmwst1,
      " tax amount            (ap)
      wrbtr_f       TYPE ekbz-wrbtr,
      " freight               (ap)
      wrbtr       TYPE ekbz-wrbtr,
      beznk      LIKE    rbkp-beznk,
      " Unplanned cost        (ap)
      refwr_g    TYPE  ekbe-refwr,
      " gross                 (ap)
      rmwwr   LIKE  rbkp-rmwwr,
      "  Actual Invoice Total (ap)
      buzei      LIKE ekbz-buzei,               "item for material doc
      gjahr      LIKE ekbe-gjahr,
      tax        LIKE ekbe-wrbtr,                " tax (ap)
      actual_total LIKE ekbe-wrbtr,
*      belnr      LIKE rseg-belnr,
       belnr     LIKE ekbe-belnr,
      vakey      LIKE konh-vakey,
      cpudt      LIKE ekbe-cpudt,
      budat      LIKE ekbz-budat,
      belnr_ekbz LIKE ekbz-belnr,              "to get excise value
*      aedat     LIKE ekpo-aedat,
      bedat   LIKE ekko-bedat,
      waers     LIKE lfm1-waers,               " currency
      END OF int_outtab.

DATA:   int_konv LIKE konv OCCURS 0 WITH HEADER LINE,
*        int_ekbe LIKE ekbe OCCURS 0 WITH HEADER LINE,
        int_ekbz LIKE ekbz OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF int_konh OCCURS 0,
      knumh LIKE konh-knumh,
      kschl LIKE konh-kschl,
      vakey LIKE konh-vakey,
      END OF int_konh.

DATA: BEGIN OF int_konp OCCURS 0,
      knumh LIKE konp-knumh,
      kschl LIKE konp-kschl,
      kbetr LIKE konp-kbetr,
      END OF int_konp.
DATA: BEGIN OF int_ekkn OCCURS 0,
      ebeln      LIKE ekkn-ebeln,
      ebelp      LIKE ekkn-ebelp,
      kostl      LIKE ekkn-kostl,
      ps_psp_pnr LIKE ekkn-ps_psp_pnr,
      END OF int_ekkn.
DATA: BEGIN OF int_outtab1 OCCURS 0,
      exbed      LIKE j_1igrxref-exbed,
      ecs        LIKE j_1igrxref-ecs,

      END OF int_outtab1.
DATA: BEGIN OF int_ekbe OCCURS 0,
      ebelp LIKE ekbe-ebelp,
      refwr LIKE ekbe-refwr,
      wrbtr LIKE ekbe-wrbtr,
      shkzg LIKE ekbe-shkzg,
      END OF int_ekbe.
DATA: BEGIN OF int_total OCCURS 0,
      ebeln LIKE ekko-ebeln,
      ebelp LIKE ekbe-ebelp,
      actual_total LIKE ekbe-wrbtr,
      END OF int_total.
DATA: BEGIN OF int_excise OCCURS 0,
      ebeln      LIKE ekko-ebeln,
      kbetr      LIKE konp-kbetr,
      END OF int_excise.
DATA: BEGIN OF int_rseg OCCURS 0,
      ebeln LIKE rseg-ebeln,
      ebelp LIKE rseg-ebelp,
      lfbnr LIKE rseg-lfbnr,
      matnr LIKE rseg-matnr,
      lfgja LIKE rseg-lfgja,
      belnr LIKE rseg-belnr,
      ecs LIKE j_1igrxref-ecs,
      beznk      LIKE    rbkp-beznk,
      wrbtr_f    LIKE  ekbz-wrbtr,
      rmwwr LIKE rbkp-rmwwr,
      END OF int_rseg.
DATA: BEGIN OF int_rbkp OCCURS 0,
      belnr LIKE  rbkp-belnr,
      beznk      LIKE    rbkp-beznk,
      rmwwr      LIKE    rbkp-rmwwr,
      tcode  LIKE rbkp-tcode,
      END OF int_rbkp.

**************************
****ALV list definintion
*************************
DATA: ws_cat TYPE slis_t_fieldcat_alv ,
      int_cat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
DATA: g_container TYPE scrfname VALUE 'BCALV_GRID_DEMO_0100_CONT1',
      g_custom_container TYPE REF TO cl_gui_custom_container.

*****************
*selection-screen
******************
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECTION-SCREEN SKIP 2.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 19(23) text-002.
SELECT-OPTIONS: s_lifnr FOR ekko-lifnr obligatory.
*PARAMETERS:p_lifnr LIKE ekko-lifnr  .
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 25(17) text-006.
*PARAMETERS:p_ebeln LIKE ekko-ebeln obligatory.
SELECT-OPTIONS:s_ebeln FOR ekko-ebeln .
SELECTION-SCREEN END OF LINE.

*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT 25(23) text-003.
*PARAMETERS:p_ekorg LIKE ekko-ekorg.
*SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT 25(20) text-004.
*PARAMETERS:p_werks LIKE ekpo-werks obligatory.
*SELECT-OPTIONS: S_werks FOR ekpo-werks obligatory.
SELECTION-SCREEN END OF LINE.


*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT 25(23) text-005.
*SELECT-OPTIONS:s_bedat FOR ekko-bedat.
*SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK b1.

START-OF-SELECTION.
  PERFORM get_data.
  PERFORM field_catalog.
  PERFORM display_data.

END-OF-SELECTION.


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  get_data
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM get_data.
*************************
* start of Vender details
*************************


***vender no, vender name, po no,service/mat no, service/mat description

  SELECT  ekko~lifnr ekko~ebeln ekko~knumv ekko~bedat
          ekpo~werks ekpo~matnr ekpo~txz01 ekpo~werks
          ekpo~netwr
*          ekpo~aedat
          ekbe~ebelp  ekbe~belnr
          lfa1~name1
  INTO    CORRESPONDING   FIELDS OF  TABLE int_outtab

  FROM ( ( ( ekko

           JOIN ekbe ON  ekbe~ebeln = ekko~ebeln AND
                         ekbe~vgabe = '2'       )
           JOIN ekpo ON ekpo~ebeln = ekko~ebeln   AND
                        ekpo~ebelp = ekbe~ebelp )
           JOIN lfa1 ON lfa1~lifnr = ekko~lifnr )
  WHERE
*  ekko~lifnr  =  P_lifnr  AND
*         ekko~ebeln IN  S_ebeln  AND
**         ekpo~werks IN  S_werks AND
         ekbe~vgabe = '2'.

***WBS/Cost center
  SELECT  ebeln ebelp kostl ps_psp_pnr  FROM ekkn INTO int_ekkn
  FOR ALL ENTRIES IN int_outtab
  WHERE ebeln = int_outtab-ebeln AND
        ebelp = int_outtab-ebelp.
    APPEND int_ekkn.
  ENDSELECT.

  LOOP AT int_outtab.
    ON CHANGE OF int_outtab-ebeln OR int_outtab-ebelp.
      LOOP AT int_ekkn WHERE ebeln = int_outtab-ebeln AND
                             ebelp = int_outtab-ebelp.
        IF  int_ekkn-kostl &amp;lt;&amp;gt; ' '.
          MOVE int_ekkn-kostl TO int_outtab-kostl.
        ELSE.
          MOVE int_ekkn-ps_psp_pnr TO int_outtab-kostl.
          " int_outtab-ps_psp_pnr.
        ENDIF.
      ENDLOOP.
      MODIFY int_outtab.
    ENDON.
  ENDLOOP.


***************************
*end of Vender details*****
***************************


*********************************
*******Start of calculation of PO
*********************************


*****Excise calculation of po
  LOOP AT int_outtab.
    CONCATENATE int_outtab-werks int_outtab-lifnr int_outtab-matnr INTO
    ws_vakey.
    MOVE ws_vakey TO int_outtab-vakey.
    MODIFY int_outtab.
  ENDLOOP.
  LOOP AT int_outtab.
*    ON CHANGE OF int_outtab-ebeln OR int_outtab-vakey.
    ON CHANGE OF int_outtab-ebelp.
      SELECT knumh kschl vakey FROM konh INTO int_konh
*        FOR ALL ENTRIES IN int_outtab
        WHERE vakey = int_outtab-vakey AND
              datab &amp;lt;= int_outtab-bedat AND
              datbi &amp;gt; int_outtab-bedat AND
             ( kschl = 'JMOP' OR kschl = 'JEC1' ).
        SELECT knumh kschl kbetr FROM konp INTO int_konp
        WHERE  knumh = int_konh-knumh .
          IF  int_konp-kschl = 'JMOP'.
            ws_kbetr = int_konp-kbetr / 1000 * int_outtab-netwr.
            ws_kbetr1 = ws_kbetr.
          ENDIF.
          IF int_konp-kschl = 'JEC1'.
            ws_kbetr2 = int_konp-kbetr / 1000 * ws_kbetr1.
          ENDIF.
          ws_kbetr = ws_kbetr + ws_kbetr2.
        ENDSELECT.
      ENDSELECT.
    ENDON.
*    ENDON.
    MOVE ws_kbetr TO int_outtab-kbetr.
    MODIFY int_outtab.
    CLEAR: ws_kbetr, ws_kbetr1, ws_kbetr2.
  ENDLOOP.
  LOOP AT int_outtab.
*    ON CHANGE OF int_outtab-ebeln OR int_outtab-vakey.
    int_excise-kbetr =  int_outtab-kbetr.
    int_excise-ebeln =  int_outtab-ebeln.
    APPEND int_excise.
*    ENDON.
  ENDLOOP.
  LOOP AT int_outtab.
    ON CHANGE OF int_outtab-ebeln.
      LOOP AT int_excise WHERE ebeln = int_outtab-ebeln.
        ws_kbetr = ws_kbetr + int_excise-kbetr.
      ENDLOOP.
    ENDON.
    int_outtab-kbetr = ws_kbetr.
    MODIFY int_outtab.
    CLEAR ws_kbetr.
  ENDLOOP.

***** Insurance, Freight,Vat/ST, Other, Total***********
  LOOP AT int_outtab.
    ON CHANGE OF int_outtab-ebelp OR int_outtab-ebeln.
      CLEAR int_konv.
      SELECT * FROM konv INTO CORRESPONDING FIELDS OF int_konv
      WHERE knumv = int_outtab-knumv AND
            kposn = int_outtab-ebelp AND
          ( ( kschl &amp;lt;&amp;gt; 'RA00' )
             AND ( kschl &amp;lt;&amp;gt; 'RA01' ) AND ( kschl &amp;lt;&amp;gt;  'RB00' )
             AND ( kschl &amp;lt;&amp;gt; 'PBXX' ) AND ( kschl &amp;lt;&amp;gt;  'PB00' )
             AND ( kschl &amp;lt;&amp;gt; 'RC00' ) AND ( kschl &amp;lt;&amp;gt;  'RL01' )
             AND ( kschl &amp;lt;&amp;gt; 'ZC00' ) AND ( kschl &amp;lt;&amp;gt;  'ZA00' )
             AND ( kschl &amp;lt;&amp;gt; 'ZA01' ) AND ( kschl &amp;lt;&amp;gt;  'HB01' )
             AND ( kschl &amp;lt;&amp;gt; 'ZBED' ) AND ( kschl &amp;lt;&amp;gt;  'ZAED' )
             AND ( kschl &amp;lt;&amp;gt; 'ZSED' ) AND ( kschl &amp;lt;&amp;gt;  'ZAE1' )
             AND ( kschl &amp;lt;&amp;gt; 'ZSE1' ) AND ( kschl &amp;lt;&amp;gt;  'ZCEX' )
             AND ( kschl &amp;lt;&amp;gt; 'ZPRO' ) AND ( kschl &amp;lt;&amp;gt;  'ZTRD' )
             AND ( kschl &amp;lt;&amp;gt; 'ZPK4' ) AND ( kschl &amp;lt;&amp;gt;  'ZSTX' )
             AND ( kschl &amp;lt;&amp;gt; 'ZASS' ) AND ( kschl &amp;lt;&amp;gt;  'ZJCD' )
             AND ( kschl &amp;lt;&amp;gt;  'HB00') ).

        APPEND int_konv.
      ENDSELECT.
    ENDON.
  ENDLOOP.

  LOOP AT int_outtab.
    ON CHANGE OF int_outtab-ebelp OR int_outtab-knumv.
      LOOP AT int_konv WHERE kposn = int_outtab-ebelp AND
                             knumv = int_outtab-knumv.
*                             lifnr = int_outtab-lifnr.
***** tax
        IF  ( ( int_konv-kschl = 'NAVS' ) OR ( int_konv-kschl = 'NAVM' )
        ).
          int_outtab-kwert_t = int_outtab-kwert_t + int_konv-kwert.
        ELSE.
*****freight
          IF ( ( int_konv-kschl = 'FRA1' ) OR ( int_konv-kschl = 'FRB1'
          )
                                          OR  ( int_konv-kschl = 'FRC1'
                                          ) ).
            int_outtab-kwert_f = int_outtab-kwert_f + int_konv-kwert.
          ELSE.
*****insurance
            IF ( ( int_konv-kschl = 'ZGIN' )  OR ( int_konv-kschl =
            'ZIN2' ) ).
              int_outtab-kwert_i =  int_outtab-kwert_i + int_konv-kwert.
            ELSE.
****others
              IF NOT (    ( int_konv-kschl = 'NAVS' ) OR (
              int_konv-kschl = 'NAVM' )
                       OR ( int_konv-kschl = 'FRA1' ) OR (
                       int_konv-kschl = 'FRB1' )
                       OR ( int_konv-kschl = 'FRC1' ) OR (
                       int_konv-kschl = 'ZGIN' )
                       OR ( int_konv-kschl = 'ZIN2' ) OR (
                       int_konv-kschl = 'RA00' )
                       OR ( int_konv-kschl = 'RA01' ) OR (
                       int_konv-kschl = 'RB00' )
                       OR ( int_konv-kschl = 'PBXX' ) OR (
                       int_konv-kschl = 'PB00' )
                       OR ( int_konv-kschl = 'RC00' ) OR (
                       int_konv-kschl = 'RL01' ) ).
                int_outtab-kwert_o =   int_outtab-kwert_o  +
                int_konv-kwert.
              ENDIF.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDLOOP.
****total
      int_outtab-kwert_total =  int_outtab-kwert_t
                                + int_outtab-kwert_f
                                + int_outtab-kwert_i
                                + int_outtab-kwert_o
                              + int_outtab-netwr.
    ENDON.
    MODIFY int_outtab.
  ENDLOOP.
*********************************
******End of calculation of PO
*********************************




*********************************************
*start of calculation for actual payment
*********************************************

*****Excise
 sort int_outtab by ebelp ebeln.
  LOOP AT int_outtab.
    ON CHANGE OF int_outtab-ebelp OR int_outtab-ebeln.
      SELECT * FROM rseg INTO CORRESPONDING FIELDS OF int_rseg
*          FOR ALL ENTRIES IN int_outtab
             WHERE ebeln = int_outtab-ebeln AND
                   ebelp = int_outtab-ebelp.
        APPEND int_rseg.
      ENDSELECT.
    ENDON.
  ENDLOOP.
  sort int_rseg by ebelp lfbnr matnr.
  LOOP AT int_rseg.
    ON CHANGE OF int_outtab-ebelp OR int_rseg-lfbnr OR int_rseg-matnr OR
    int_rseg-lfgja.
      SELECT * FROM j_1ipart1 INTO wa_j_1ipart1
      WHERE mblnr = int_rseg-lfbnr AND
            mjahr = int_rseg-lfgja AND
            matnr = int_rseg-matnr.

        ON CHANGE OF wa_j_1ipart1-mblnr OR wa_j_1ipart1-zeile.
          SELECT * FROM j_1igrxref INTO wa_j_1igrxref
           WHERE mblnr = wa_j_1ipart1-mblnr AND
                 zeile = wa_j_1ipart1-zeile.
            IF sy-subrc EQ 0.
              ws_ecs = ws_ecs + wa_j_1igrxref-exbed + wa_j_1igrxref-ecs.
            ENDIF.
          ENDSELECT.
        ENDON.
      ENDSELECT.
    ENDON.

    MOVE ws_ecs TO int_rseg-ecs.
    MODIFY int_rseg TRANSPORTING ecs.
    CLEAR: ws_ecs.
  ENDLOOP.

  LOOP AT int_outtab.
    ON CHANGE OF int_outtab-ebeln.
      LOOP AT int_rseg WHERE ebeln = int_outtab-ebeln.
        ws_ecs = ws_ecs + int_rseg-ecs.
      ENDLOOP.
    ENDON.
    MOVE ws_ecs TO int_outtab-ecs.
    MODIFY int_outtab TRANSPORTING ecs.
    CLEAR ws_ecs.
  ENDLOOP.

******unplanned costs and actual_invoice_total
  SORT int_rseg BY belnr.
  LOOP AT int_rseg .
    ON CHANGE OF int_rseg-belnr.
      SELECT  belnr beznk rmwwr tcode FROM rbkp INTO int_rbkp
      WHERE   belnr  = int_rseg-belnr .
        APPEND int_rbkp.
      ENDSELECT.
    ENDON.
  ENDLOOP.

  SORT int_rseg BY belnr.
  SORT int_rbkp BY belnr.

  LOOP AT int_rseg.
    ON CHANGE OF int_rseg-ebeln OR int_rseg-belnr.
      LOOP AT int_rbkp WHERE belnr = int_rseg-belnr.
        IF int_rbkp-tcode = 'MR8M'.
          int_rbkp-rmwwr = int_rbkp-rmwwr * ( - 1 ).
          int_rbkp-beznk = int_rbkp-beznk * ( - 1 ).
        ENDIF.
        ws_beznk =  ws_beznk + int_rbkp-beznk.
        ws_rmwwr =  ws_rmwwr + int_rbkp-rmwwr.
      ENDLOOP.
    ENDON.
    MOVE ws_beznk TO int_rseg-beznk.
    MOVE ws_rmwwr TO int_rseg-rmwwr.
    MODIFY int_rseg.
    CLEAR: ws_rmwwr, ws_beznk.
  ENDLOOP.

  LOOP AT int_outtab.
    ON CHANGE OF int_outtab-ebeln.
      LOOP AT int_rseg WHERE ebeln = int_rseg-ebeln.
        ws_beznk =  ws_beznk + int_rseg-beznk.
        ws_rmwwr =  ws_rmwwr + int_rseg-rmwwr.
      ENDLOOP.
    ENDON.
    MOVE ws_beznk TO int_outtab-beznk.
    MOVE ws_rmwwr TO int_outtab-rmwwr.

    MODIFY int_outtab.
    CLEAR: ws_rmwwr, ws_beznk.
  ENDLOOP.


*freight of actual payment
  sort int_rseg by belnr ebelp.
  LOOP AT int_rseg.
    ON CHANGE OF  int_rseg-belnr or int_rseg-ebelp..
      SELECT * FROM ekbz INTO CORRESPONDING FIELDS OF int_ekbz
      WHERE ebeln = int_rseg-ebeln AND
            belnr = int_rseg-belnr AND
            ebelp = int_rseg-ebelp AND
            vgabe = '2' .
        IF int_ekbz-shkzg = 'H'.
          int_ekbz-wrbtr = int_ekbz-wrbtr  * ( - 1 ).
        ENDIF.
        int_rseg-wrbtr_f = int_rseg-wrbtr_f + int_ekbz-wrbtr.
      ENDSELECT.
    ENDON.
    MODIFY int_rseg.
    CLEAR int_rseg-wrbtr_f.
  ENDLOOP.
  sort int_rseg by ebelp.
  LOOP AT int_outtab.
    ON CHANGE OF int_outtab-ebeln OR int_outtab-ebelp.
      LOOP AT int_rseg WHERE ebeln = int_outtab-ebeln AND
                             ebelp = int_outtab-ebelp.
        ws_wrbtr_f = ws_wrbtr_f + int_rseg-wrbtr_f.
      ENDLOOP.
    ENDON.
    MOVE ws_wrbtr_f TO int_outtab-wrbtr_f.
    MODIFY int_outtab TRANSPORTING wrbtr_f.
    CLEAR ws_wrbtr_f.
  ENDLOOP.

**tax and gross amt of actual payment
  LOOP AT int_outtab.
    ON CHANGE OF int_outtab-ebelp OR int_outtab-ebeln.
    " or int_outtab-belnr.
      SELECT ebelp refwr wrbtr shkzg FROM ekbe INTO int_ekbe
      WHERE ebelp = int_outtab-ebelp AND
            ebeln = int_outtab-ebeln AND
            vgabe = '2' .
        IF int_ekbe-shkzg = 'H'.
          int_ekbe-refwr  = int_ekbe-refwr * ( - 1 ).
          int_ekbe-wrbtr  = int_ekbe-wrbtr * ( - 1 ).
        ENDIF.
        int_outtab-refwr_g = int_outtab-refwr_g +  int_ekbe-refwr.
        int_outtab-tax =  int_outtab-tax + ( int_ekbe-wrbtr -
        int_ekbe-refwr ).
      ENDSELECT.
    ENDON.
    MODIFY int_outtab.
    CLEAR int_outtab-refwr_g.
    CLEAR int_outtab-tax.
  ENDLOOP.

****total
  LOOP AT int_outtab.
    ON CHANGE OF int_outtab-ebelp  OR int_outtab-ebeln.
      int_outtab-actual_total =  int_outtab-actual_total
                                 + int_outtab-ecs
                                 + int_outtab-wrbtr_f
                                 + int_outtab-tax
                                 + int_outtab-beznk
                                 + int_outtab-refwr_g.
      int_total-actual_total =  int_outtab-actual_total.
      int_total-ebelp        = int_outtab-ebelp.
      int_total-ebeln        = int_outtab-ebeln.
      APPEND int_total.
    ENDON.
  ENDLOOP.




***************************************
*end of calculation for actaul payment
****************************************


*************Modification in internal table*****

  LOOP AT int_outtab.
    IF int_outtab-ebelp = ws_ebelp AND
       int_outtab-ebeln = ws_ebeln.
      int_outtab-netwr = 0.
      MODIFY int_outtab.
    ENDIF.
    ws_ebelp = int_outtab-ebelp.
    ws_ebeln = int_outtab-ebeln.
  ENDLOOP.
  LOOP AT int_outtab.
    IF int_outtab-netwr IS INITIAL.
      DELETE int_outtab INDEX sy-tabix.
    ENDIF.
  ENDLOOP.
  LOOP AT int_outtab.
    ON CHANGE OF int_outtab-ebeln.
      LOOP AT int_total WHERE ebeln = int_outtab-ebeln.
        int_outtab-actual_total =  int_outtab-actual_total
                                   + int_total-actual_total.
      ENDLOOP.
    ENDON.
    MODIFY int_outtab.
  ENDLOOP.
  LOOP AT int_outtab.
    SELECT SINGLE * FROM lfm1 INTO CORRESPONDING FIELDS OF int_outtab
    WHERE lifnr = int_outtab-lifnr.
    MODIFY int_outtab.
  ENDLOOP.


********** end of modification*********





ENDFORM.                    "get_data

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  field_catalog
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM field_catalog.

***vender no
  int_cat-tabname       = 'INT_OUTTAB'.
  int_cat-fieldname     = 'LIFNR'.
  int_cat-reptext_ddic  = 'Vender No'.
  APPEND int_cat TO ws_cat.

*vender name
  int_cat-tabname       = 'INT_OUTTAB'.
  int_cat-fieldname     = 'NAME1'.
  int_cat-reptext_ddic  = 'Vender Name'.
  APPEND int_cat TO ws_cat.

** PO No
  int_cat-tabname       = 'INT_OUTTAB'.
  int_cat-fieldname     = 'EBELN'.
  int_cat-reptext_ddic  = 'PO No'.
  APPEND int_cat TO ws_cat.

** Mat No
  int_cat-tabname       = 'INT_OUTTAB'.
  int_cat-fieldname     = 'MATNR'.
  int_cat-reptext_ddic  = 'Mat No'.
  APPEND int_cat TO ws_cat.

** Matdescription
  int_cat-tabname       = 'INT_OUTTAB'.
  int_cat-fieldname     = 'TXZ01'.
  int_cat-reptext_ddic  = 'Mat description'.
  APPEND int_cat TO ws_cat.

**WBS/Cost center
  int_cat-tabname       = 'INT_OUTTAB'.
  int_cat-fieldname     = 'KOSTL'.
  int_cat-reptext_ddic  = 'WBS/Cost center'.
  APPEND int_cat TO ws_cat.

**Currency
  int_cat-tabname       = 'INT_OUTTAB'.
  int_cat-fieldname     = 'WAERS'.
  int_cat-reptext_ddic  = 'Currency'.
  APPEND int_cat TO ws_cat.


**Basic
  int_cat-tabname       = 'INT_OUTTAB'.
  int_cat-fieldname     = 'NETWR'.
  int_cat-reptext_ddic  = 'Basic'.
  APPEND int_cat TO ws_cat.
**Excise
  int_cat-tabname       = 'INT_OUTTAB'.
  int_cat-fieldname     = 'KBETR'.
  int_cat-reptext_ddic  = 'Excise'.
  APPEND int_cat TO ws_cat.
**Insurance
  int_cat-tabname       = 'INT_OUTTAB'.
  int_cat-fieldname     = 'KWERT_I'.
  int_cat-reptext_ddic  = 'Insurance'.
  APPEND int_cat TO ws_cat.
**Frieght
  int_cat-tabname       = 'INT_OUTTAB'.
  int_cat-fieldname     = 'KWERT_F'.
  int_cat-reptext_ddic  = 'Frieght'.
  APPEND int_cat TO ws_cat.
**VAT/ST
  int_cat-tabname       = 'INT_OUTTAB'.
  int_cat-fieldname     = 'KWERT_T'.
  int_cat-reptext_ddic  = 'VAT/ST'.
  APPEND int_cat TO ws_cat.
**Other
  int_cat-tabname       = 'INT_OUTTAB'.
  int_cat-fieldname     = 'KWERT_O'.
  int_cat-reptext_ddic  = 'Others'.
  APPEND int_cat TO ws_cat.
**Total
  int_cat-tabname       = 'INT_OUTTAB'.
  int_cat-fieldname     = 'KWERT_TOTAL'.
  int_cat-reptext_ddic  = 'Total'.
  APPEND int_cat TO ws_cat.
***Excise
  int_cat-tabname       = 'INT_OUTTAB'.
  int_cat-fieldname     = 'ECS'.
  int_cat-reptext_ddic  = 'Excise'.
  APPEND int_cat TO ws_cat.
*****Freight
  int_cat-tabname       = 'INT_OUTTAB'.
  int_cat-fieldname     = 'WRBTR_F'.
  int_cat-reptext_ddic  = 'Freight'.
  APPEND int_cat TO ws_cat.
*****Tax
  int_cat-tabname       = 'INT_OUTTAB'.
  int_cat-fieldname     =  'TAX'.
  int_cat-reptext_ddic  =  'Tax'.
  APPEND int_cat TO ws_cat.
***Unplanned Del Cost
  int_cat-tabname       = 'INT_OUTTAB'.
  int_cat-fieldname     = 'BEZNK'.
  int_cat-reptext_ddic  = 'Unplanned Del Cost'.
  APPEND int_cat TO ws_cat.
****Gross
  int_cat-tabname       = 'INT_OUTTAB'.
  int_cat-fieldname     = 'REFWR_G'.
  int_cat-reptext_ddic  = 'Gross'.
  APPEND int_cat TO ws_cat.

**Total
  int_cat-tabname       = 'INT_OUTTAB'.
  int_cat-fieldname     = 'ACTUAL_TOTAL'.
  int_cat-reptext_ddic  = 'Total'.
  APPEND int_cat TO ws_cat.

**Actual Invoice Total
  int_cat-tabname       = 'INT_OUTTAB'.
  int_cat-fieldname     = 'RMWWR'.
  int_cat-reptext_ddic  = 'Actual Invoice Total'.
  APPEND int_cat TO ws_cat.




ENDFORM.                    "field_catalog

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  display_data
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM display_data.

  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
      i_callback_program = 'ZPAVAN1'
      it_fieldcat        = ws_cat[]
    TABLES
      t_outtab           = int_outtab
    EXCEPTIONS
      program_error      = 1
      OTHERS             = 2.
ENDFORM.                    "display_data&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Pavan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 06 Oct 2007 05:35:25 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-alv-in-background/m-p/2832624#M663114</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-06T05:35:25Z</dc:date>
    </item>
  </channel>
</rss>

