Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

performance analysis using st05

0 Likes
1,323

I did the performance analysis using st05 and a particular query which taking access time for the execution is below.

Table vbrk is taking excess time for execution.

SELECT sfakn
    INTO CORRESPONDING FIELDS OF TABLE canc_doc
    FROM vbrk
    WHERE kunrg IN p_cust AND
          fkdat IN p_date AND
          spart IN p_dev AND
          vkorg IN p_vkorg AND
          vtweg IN p_vtweg AND
          rfbsk IN p_rfbsk AND
          regio IN p_regio AND
          fkart IN ('S1','S2','S3').
*------------*
   SELECT b~vbeln
          b~posnr
          a~fkdat
          a~spart
          a~kunag
          a~vkorg
          a~rfbsk
          a~fkart
          a~vtweg
          a~bzirk
          a~kurrf
          a~waerk
          a~knumv  
*------ VBRP ------------*
          b~fkimg     " Actual Billed Qty
          b~netwr  "Net Value
          b~mwsbp  "Tax Value
          b~matnr  "Material
          b~arktx  "Description
          b~prodh  "Product Hierarchy
          b~vkgrp  "Sales Group
          b~ktgrm  " Acc. Ass. Group
          b~aubel  " Sales document no
          b~aupos  " Added Sales item
          b~vgbel
          b~vgpos
          b~vgtyp
          b~matnr  " material code
          b~posnr  " material position
          b~pstyv  " Item categ
          b~fklmg
          b~vrkme
*--------------------------*
   INTO CORRESPONDING FIELDS OF TABLE itab
   FROM vbrk AS a INNER JOIN  vbrp AS b
   ON a~vbeln = b~vbeln
   WHERE a~kunrg IN p_cust AND
         a~fkdat IN p_date AND
         a~spart IN p_dev AND
         a~vkorg IN p_vkorg AND
         a~vtweg IN p_vtweg AND
         a~rfbsk IN p_rfbsk AND
         a~regio IN p_regio AND
         a~fkart IN p_type AND
         b~werks IN s_werks AND
         b~matnr IN matnr.

   SORT itab BY vbeln.

Kindly provide a solution.

7 REPLIES 7
Read only

ThomasZloch
Active Contributor
0 Likes
1,206

Not possible, the ranges used for your many IN-conditions might contain any number of restrictions, from a single value (good) to nothing at all (bad). This is stabbing in the dark.

You will probably see responses like "avoid INTO CORRESPONDING", you can safely ignore these.

Thomas

Read only

HermannGahm
Product and Topic Expert
Product and Topic Expert
0 Likes
1,206


Hi,

Darshit maheshwari wrote:

Kindly provide a solution.

Kindly provide more details:

  • execution plan
  • statement as it was sent to the db
  • index defininitions
  • statistics

Kind regards,

Hermann

Read only

yuri_ziryukin
Product and Topic Expert
Product and Topic Expert
0 Likes
1,206

Both above replies are relevant. If it's too difficult for you to provide requested information, you may also consider using in your selects tables VRPMA (field KUNNR in this table should be equal to VBRK-KUNRG) and VRKPA.

More information about these tables you can certainly find in Google or SAP notes

Read only

0 Likes
1,206

here is the report having perforance issues ..
table vbrk and vbrp taking excess  time..

Kindly Guide .

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

REPORT zdispatch_materialwise NO STANDARD PAGE HEADING

                    LINE-SIZE 680.

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

*  Tables, Data Declarations

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

DATA : pcust(10) TYPE c,

       x(1) TYPE n,

       ln(2) TYPE n,

       chq_flg(1) TYPE c,

       lr_flg(1) TYPE c ,

       idx LIKE sy-tabix.

TABLES : vbrk,    "Billing: Header Data

         vbrp,    "Billing: Item Data

         likp,    "SD Document: Delivery Header Data

         kna1,    "General Data in Customer Master

         knvv,    "Customer Master Sales Data

        zsd_inv_detail, "LR Number and Transporter Detail

        zsd_mat_vtyp_dtl, "Material Valuation Type wise Desc & Import Details

         vbkd.    "Sales Document: Business Data

TYPE-POOLS: slis.

DATA:  gt_fieldcat TYPE slis_t_fieldcat_alv,

       ls_fieldcat LIKE gt_fieldcat,

       wa_fieldcat TYPE slis_fieldcat_alv.

** Internal Table [ITAB]

DATA: BEGIN OF itab OCCURS 0,

      matnr LIKE vbrp-matnr , "Material

      vbeln   LIKE vbrp-vbeln,   "Invoice No

      posnr   LIKE vbrp-posnr,   "Item No.

      fkdat   LIKE vbrk-fkdat,   "Invoice Date

      kunag   LIKE vbrk-kunag,   "Cust_Code

      vkorg   LIKE vbrk-vkorg,   "Sales Organisation

      vtweg   LIKE vbrk-vtweg ,  "Distribution Channel

      fkart   LIKE vbrk-fkart,   "Billing Type

      name1   LIKE kna1-name1,   "Cust_Name

      spart   LIKE vbrk-spart,   "Division

      vgbel   LIKE vbrp-vgbel,   "Delivery No

      quotation LIKE vbrp-vgbel,   "quotation

      vgpos   LIKE vbrp-vgpos,   "Delivery item "

      wadat   LIKE likp-wadat,   "Delivery Date

      bwtar   LIKE vbrp-bwtar ,  " valuation type

      wadat_ist LIKE likp-wadat_ist , " Actual Goods Mov. Date

      kvgr4   LIKE vbrp-kvgr4,   "No of Packages

      rfbsk  LIKE vbrk-rfbsk , " Posting Status

      kvgr5 LIKE knvv-kvgr5 ,    "State For Co

      chqdtl(40) TYPE c,

      lrdtl(40) TYPE c ,

      werks LIKE vbrp-werks ,    "Plant

      bzirk LIKE vbrk-bzirk ,    "Sales District

      vkbur LIKE likp-vkbur ,    "Sales Office

      sfakn LIKE vbrk-sfakn ,    "Cancelled Bill. doc

      agent LIKE kna1-name1 ,    "for payment collectin agent name

      pcode LIKE kna1-kunnr ,    "P.C. Code

      mcod3 LIKE kna1-mcod3 , "Matcode search

* ------

      trcode LIKE knvp-lifnr,

      trname LIKE lfa1-name1,

      lrnum LIKE zsd_inv_detail-lrnum, "LR Number

      lrdat LIKE zsd_inv_detail-lrdat, "Date on Which Record Was Created

      vehno LIKE zsd_inv_detail-vehno, "Vehicle Number

      cart  LIKE zsd_inv_detail-cart,  "No.of.Box.

      remark LIKE zsd_inv_detail-remark, "Text Field

      arktx LIKE vbrp-arktx , "Description

      prodh LIKE vbrp-prodh , "Product Hierarchy

      vkgrp LIKE vbrp-vkgrp , "Sales Group

      ktgrm LIKE vbrp-ktgrm , "Acct. Ass. Group

      fkimg LIKE vbrp-fkimg ,    " Actual Billed Qty

      netwr LIKE vbrp-netwr , "Net Value

      mwsbp LIKE vbrp-mwsbp , "Tax Value

      netvalue LIKE vbrp-netwr ,  "Net + Tax

*

      knumv LIKE vbrk-knumv ,   " mat. doc no

      kbetr LIKE konv-kbetr ,   " cond rate for ZPR0

      kbetr8 LIKE konv-kbetr ,  " cond rate for ZPR1

      kbetr1 LIKE konv-kbetr ,  " cond rate for ZDIR

      kwert LIKE konv-kwert ,   " cond value for ZPR0

      kwert1 LIKE konv-kwert ,  " cond value for ZDIR

      kbetr6 LIKE konv-kbetr ,  " cond rate for ZDIA

      kwert6 LIKE konv-kwert ,  " cond value for ZDIA

      kbetr7 LIKE konv-kbetr ,  " cond rate for ZDIN

      kwert7 LIKE konv-kwert ,  " cond value for ZDIN

      kwert2 LIKE konv-kwert ,   " cond value for UTXJ

      kbetr3 LIKE konv-kwert ,   " cond rate for JMOD

      kwert3 LIKE konv-kwert ,   " cond value for JMOD

      kbetr4 LIKE konv-kwert ,   " cond rate for JECS

      kwert4 LIKE konv-kwert ,   " cond value for JECS

      kbetr5 LIKE konv-kwert ,   " cond rate for JA1X

      kwert5 LIKE konv-kwert ,   " cond value for JA1X

      c_fkimg LIKE vbrp-fkimg ,    " Actual Billed Qty for sum

      c_netvalue LIKE vbrp-netwr ,  "Net + Tax for sum

      aubel LIKE vbrp-aubel,

      aupos LIKE vbrp-aupos,   " Sales item Added by  on

      vgtyp LIKE vbrp-vgtyp,   " Document categ Added by

      valflag TYPE c,   " VALUATION FLAG

      erdat LIKE vbak-erdat,    " Date on Which Sales order  Was Created

       erzet   LIKE vbak-erzet,  " Entry time of Sales order

      erdat_i LIKE vbrk-erdat,  " Date on Which Invoice Was Created

      erzet_i LIKE vbrk-erzet,  " Entry time of Invoice

      kwmeng  LIKE vbap-kwmeng,    " Sales Order Qty

      c_kwmeng  LIKE vbap-kwmeng,

*------

      waerk LIKE vbrk-waerk,

      kurrf LIKE vbrk-kurrf,

      vstel LIKE likp-vstel,

      prsdt LIKE vbrp-prsdt,

      prsdt1 LIKE vbkd-prsdt,  "Date for pricing and exchange rate

      pstyv LIKE vbrp-pstyv,  " item catg added by

      fklmg LIKE vbrp-fklmg,

      vrkme LIKE vbrp-vrkme,

      importdtl LIKE zsd_mat_vtyp_dtl-importdtl,

      pvbeln LIKE vbfa-vbeln,

      pbelnr LIKE bkpf-belnr,

      mjahr  LIKE vbfa-mjahr,

      pgi_year LIKE bkpf-awkey,

      bstkd LIKE vbkd-bstkd,    "Purchase Order No

      extwg LIKE mara-extwg,

      kdmat LIKE vbap-kdmat,   "Cust.mat.no

      END OF itab.

DATA : BEGIN OF icoll OCCURS 0,

      kunag LIKE vbrk-kunag,

      matnr LIKE vbrp-matnr,

END OF icoll.

DATA: jtab LIKE itab OCCURS 0 WITH HEADER LINE.

*   variable

DATA :dfkimg LIKE vbrp-fkimg ,    " Actual Billed Qty

      dnetvalue LIKE vbrp-netwr , "Net Value + tax

      dkwmeng LIKE vbap-kwmeng . "Added by  on

DATA : html TYPE TABLE OF w3html WITH HEADER LINE.

DATA : fpath(100),

       sorg(10),

       div(11),

       reg(5).

DATA itab_lr LIKE tline OCCURS 0 WITH HEADER LINE.

DATA itab_chq LIKE tline OCCURS 0 WITH HEADER LINE.

DATA :  tot_records TYPE i .

DATA : int1 TYPE i.

DATA : BEGIN OF  canc_doc OCCURS 0 ,

          sfakn LIKE vbrk-sfakn ,

        END OF canc_doc.

DATA: selfield1 TYPE slis_selfield,

      ucomm LIKE sy-ucomm.

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

*** Selection Screens

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

SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-003.

SELECT-OPTIONS : p_vkorg FOR vbrk-vkorg OBLIGATORY.

SELECT-OPTIONS : p_vtweg FOR vbrk-vtweg.

SELECT-OPTIONS : p_dev  FOR vbrk-spart OBLIGATORY.

SELECT-OPTIONS : p_cust FOR kna1-kunnr .

SELECT-OPTIONS : p_regio FOR vbrk-regio.

SELECT-OPTIONS : matnr FOR vbrp-matnr.

SELECT-OPTIONS : bwtar FOR vbrp-bwtar.

*---------------------------------------

SELECT-OPTIONS : p_date FOR vbrk-fkdat.

SELECT-OPTIONS : p_type FOR vbrk-fkart.

SELECT-OPTIONS : p_rfbsk FOR vbrk-rfbsk.

SELECT-OPTIONS: s_werks FOR vbrp-werks,

                s_vstel FOR likp-vstel.

SELECTION-SCREEN : END OF BLOCK b1.

SELECTION-SCREEN : BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.

PARAMETER : all_dtl RADIOBUTTON GROUP rad2 ,

            cust_mat RADIOBUTTON GROUP rad2,

            stat_mat RADIOBUTTON GROUP rad2,

            cumt_t5  RADIOBUTTON GROUP rad2,

            shp_mtnr RADIOBUTTON GROUP rad2,

            alv_var TYPE  slis_vari  MEMORY ID it_alv_ap,

            ch_cond AS CHECKBOX,

            choracle AS CHECKBOX .

SELECTION-SCREEN : END OF BLOCK b3.

SELECTION-SCREEN : BEGIN OF BLOCK b2 WITH FRAME TITLE text-004.

PARAMETER : n_html RADIOBUTTON GROUP rad1,

            w_html   RADIOBUTTON GROUP rad1,

            ip_add(15) TYPE c DEFAULT '192.168.0.2',

            share(15)  TYPE c DEFAULT 'TEMP\ZDISPM'.

SELECTION-SCREEN : END OF BLOCK b2.

SELECTION-SCREEN : SKIP 1.

SELECTION-SCREEN : BEGIN OF LINE,

                 : COMMENT 15(83) text-005.

SELECTION-SCREEN : END OF LINE.

SELECTION-SCREEN : BEGIN OF LINE,

                 : COMMENT 15(83) text-006.

SELECTION-SCREEN : END OF LINE.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR alv_var.

  PERFORM alv_variant_f4 CHANGING alv_var.

*  ----

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

*** Start of Selection

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

START-OF-SELECTION.

  PERFORM select_data.

  IF cumt_t5 = 'X'.

    SORT itab BY kunag matnr ASCENDING fkdat DESCENDING.

    APPEND LINES OF itab TO jtab.

    REFRESH itab.

    PERFORM cumt_t5.

  ENDIF.

  IF all_dtl = 'X' AND choracle = 'X'.

    PERFORM  transf_2_oracle .

  ELSE.

    PERFORM print_data.

  ENDIF .

  IF w_html = 'X'.

    PERFORM download_file .

  ENDIF.

END-OF-SELECTION.

FORM select_data.

  DATA: b_likp,

        sindx TYPE i.

  REFRESH itab.

  CLEAR itab.

SELECT sfakn

   INTO CORRESPONDING FIELDS OF TABLE canc_doc

   FROM vbrk

   WHERE kunrg IN p_cust AND

         fkdat IN p_date AND

         spart IN p_dev AND

         vkorg IN p_vkorg AND

         vtweg IN p_vtweg AND

         rfbsk IN p_rfbsk AND

         regio IN p_regio AND

         fkart IN ('S1','S2','S3').

  SELECT b~vbeln

         b~posnr

         a~fkdat

         a~spart

         a~kunag

         a~vkorg

*             a~MWSBK

*            a~NETWR

         a~rfbsk

         a~fkart

         a~vtweg

         a~bzirk

         a~kurrf

         a~waerk

         a~knumv   "condition no added by

*------ VBRP ------------*

         b~fkimg     " Actual Billed Qty

         b~netwr  "Net Value

         b~mwsbp  "Tax Value

         b~matnr  "Material

         b~arktx  "Description

         b~prodh  "Product Hierarchy

         b~vkgrp  "Sales Group

         b~ktgrm  " Acc. Ass. Group

         b~aubel  " Sales document no

         b~aupos  " A

         b~vgbel

         b~vgpos

         b~vgtyp

         b~matnr  " material code"add by jahnavee on 31/8/06

         b~posnr  " material position added by

         b~pstyv  " Item categ added by  on

         b~fklmg

         b~vrkme

*--------------------------*

  INTO CORRESPONDING FIELDS OF TABLE itab

  FROM vbrk AS a INNER JOIN  vbrp AS b

  ON a~vbeln = b~vbeln

  WHERE a~kunrg IN p_cust AND

        a~fkdat IN p_date AND

        a~spart IN p_dev AND

        a~vkorg IN p_vkorg AND

        a~vtweg IN p_vtweg AND

        a~rfbsk IN p_rfbsk AND

        a~regio IN p_regio AND

        a~fkart IN p_type AND

        b~werks IN s_werks AND

        b~bwtar IN  bwtar AND

        b~matnr IN matnr."

*  ENDSELECt  " FOR PERFORMANCE

  SORT itab BY vbeln.

  LOOP AT canc_doc INTO canc_doc.

    DELETE itab WHERE vbeln = canc_doc-sfakn.

  ENDLOOP.

  DESCRIBE TABLE itab LINES tot_records.

  IF tot_records NE 0.

    LOOP AT itab.

      sindx = sy-tabix.

      .

      SELECT SINGLE lrnum lrdat vehno cart remark  lifnr

            INTO (itab-lrnum , itab-lrdat, itab-vehno , itab-cart , itab-remark , itab-trcode )

              FROM zsd_inv_detail

                WHERE vbeln = itab-vbeln.

      SELECT SINGLE extwg FROM mara

    INTO (itab-extwg)

    WHERE matnr = itab-matnr.

      SELECT SINGLE kbetr kwert FROM konv

      INTO (itab-kbetr,itab-kwert)

      WHERE knumv = itab-knumv  AND

      kposn = itab-posnr  AND

      kschl = 'ZPR0' .

      SELECT SINGLE kbetr FROM konv

       INTO (itab-kbetr8)

       WHERE knumv = itab-knumv  AND

       kposn = itab-posnr  AND

       kschl = 'ZPR1' .

      IF itab-kbetr8 IS NOT INITIAL.

        itab-kbetr8  = itab-kbetr8 / 10.

      ENDIF.

      SELECT SINGLE kbetr kwert FROM konv

      INTO (itab-kbetr1,itab-kwert1)

      WHERE knumv = itab-knumv  AND

      kposn = itab-posnr  AND

      kschl = 'ZDIR' .

      IF itab-kbetr1 IS NOT INITIAL.

        itab-kbetr1  = itab-kbetr1 / 10.

      ENDIF.

      SELECT SINGLE kbetr kwert FROM konv

           INTO (itab-kbetr6,itab-kwert6)

           WHERE knumv = itab-knumv  AND

           kposn = itab-posnr  AND

           kschl = 'ZDIA' .

      IF itab-kbetr6 IS NOT INITIAL.

        itab-kbetr6  = itab-kbetr6 / 10.

      ENDIF.

      SELECT SINGLE kbetr kwert FROM konv

      INTO (itab-kbetr7,itab-kwert7)

      WHERE knumv = itab-knumv  AND

      kposn = itab-posnr  AND

      kschl = 'ZDIN' .

      IF itab-kbetr7 IS NOT INITIAL.

        itab-kbetr7  = itab-kbetr7 / 10.

      ENDIF.

      IF ch_cond = 'X'.

        SELECT SINGLE kwert FROM konv

        INTO (itab-kwert2)

        WHERE knumv = itab-knumv

          AND kposn = itab-posnr

          AND kschl = 'ZDIE'.

        SELECT SINGLE kbetr kwert FROM konv

        INTO (itab-kbetr3,itab-kwert3)

        WHERE knumv = itab-knumv

          AND kposn = itab-posnr

          AND kschl = 'JMOD'.

        IF itab-kbetr3 IS NOT INITIAL.

          itab-kbetr3  = itab-kbetr3 / 10.

        ENDIF.

        SELECT SINGLE kbetr kwert FROM konv

        INTO (itab-kbetr4,itab-kwert4)

        WHERE knumv = itab-knumv

          AND kposn = itab-posnr

          AND kschl = 'JECS'.

        IF itab-kbetr4 IS NOT INITIAL.

          itab-kbetr4  = itab-kbetr4 / 10.

        ENDIF.

        SELECT SINGLE kbetr kwert FROM konv

        INTO (itab-kbetr5,itab-kwert5)

        WHERE knumv = itab-knumv

          AND kposn = itab-posnr

          AND kschl = 'JA1X'.

        IF itab-kbetr5 IS NOT INITIAL.

          itab-kbetr5  = itab-kbetr5 / 10.

        ENDIF.

      ENDIF.

*

      SELECT SINGLE erdat erzet FROM vbak INTO (itab-erdat,itab-erzet)

      WHERE vbeln = itab-aubel.

      SELECT SINGLE vgbel FROM vbak INTO (itab-quotation)

             WHERE vbeln = itab-aubel

             AND vbtyp = 'C'.

      SELECT SINGLE kwmeng  kdmat FROM vbap INTO (itab-kwmeng, itab-kdmat)

      WHERE vbeln = itab-aubel

        AND posnr = itab-aupos.

      SELECT SINGLE erdat erzet FROM vbrk INTO (itab-erdat_i,itab-erzet_i)

      WHERE vbeln = itab-vbeln.

      SELECT SINGLE name1 mcod3

      INTO CORRESPONDING FIELDS OF itab

      FROM kna1

      WHERE kunnr = itab-kunag.

      SELECT SINGLE a~kunn2 b~name1

         INTO (itab-pcode,itab-agent)

         FROM knvp AS a

         INNER JOIN kna1 AS b

         ON a~kunn2 = b~kunnr

         WHERE a~kunnr = itab-kunag AND

               a~vkorg = itab-vkorg AND

               a~vtweg = itab-vtweg AND

               a~spart = itab-spart AND

               a~parvw = 'PC'.

      SELECT SINGLE a~lifnr b~name1

         INTO (itab-trcode,itab-trname)

         FROM knvp AS a

         INNER JOIN lfa1 AS b

         ON a~lifnr = b~lifnr

         WHERE a~kunnr = itab-kunag AND

               a~vkorg = itab-vkorg AND

               a~vtweg = itab-vtweg AND

               a~spart = itab-spart AND

               a~parvw = 'TU'.

      SELECT SINGLE kvgr5

      INTO CORRESPONDING FIELDS OF itab

      FROM knvv

      WHERE kunnr = itab-kunag.

      SELECT SINGLE vgbel kvgr4 werks prsdt

      ktgrm INTO CORRESPONDING FIELDS OF itab

      FROM vbrp

      WHERE vbeln = itab-vbeln AND

            posnr = itab-posnr.

*

      IF itab-vgtyp = 'H'.

        SELECT SINGLE bwtar

        INTO CORRESPONDING FIELDS OF itab

        FROM vbap

        WHERE vbeln = itab-aubel AND

              posnr = itab-aupos AND

              bwtar IN bwtar.

        IF sy-subrc <> 0.

          itab-valflag = 'X'.

        ENDIF.

        SELECT SINGLE bwtar

          INTO CORRESPONDING FIELDS OF itab

          FROM vbap

          WHERE vbeln = itab-aubel AND

                posnr = itab-aupos.

      ELSE.

        SELECT SINGLE bwtar

          INTO CORRESPONDING FIELDS OF itab

          FROM lips

          WHERE vbeln = itab-vgbel AND

                posnr = itab-vgpos AND

                bwtar IN bwtar.

        IF sy-subrc <> 0.

          itab-valflag = 'X'.

        ENDIF.

        SELECT SINGLE bwtar

        INTO CORRESPONDING FIELDS OF itab

        FROM lips

        WHERE vbeln = itab-vgbel AND

              posnr = itab-vgpos .

      ENDIF.

      SELECT SINGLE importdtl FROM zsd_mat_vtyp_dtl

         INTO itab-importdtl

         WHERE matnr = itab-matnr

             AND bwtar = itab-bwtar

             AND validfrom <= itab-fkdat

             AND validto >= itab-fkdat.

      SELECT SINGLE prsdt

        INTO (itab-prsdt1)

         FROM vbkd

          WHERE vbeln = itab-aubel

           AND  posnr = itab-posnr.

      IF sy-subrc = '4'.

        SELECT SINGLE prsdt

           INTO (itab-prsdt1)

            FROM vbkd

             WHERE vbeln = itab-aubel.

      ENDIF.

      SELECT SINGLE wadat_ist wadat vkbur vstel

      INTO CORRESPONDING FIELDS OF itab

      FROM likp

      WHERE

      vbeln = itab-vgbel

      AND vstel IN s_vstel.

      IF sy-subrc = 0.

        b_likp = 'X'.

      ELSE.

        IF itab-fkart EQ 'ZR1'  OR

           itab-fkart EQ 'RE'   OR

           itab-fkart EQ 'ZR2'  OR

           itab-fkart EQ 'ZRNR' OR

           itab-fkart EQ 'ZRWO'.

          b_likp = 'X'.

        ELSE.

          b_likp = ''.

        ENDIF.

      ENDIF.

      IF NOT itab-wadat_ist = space.   "Actual Goods Mov. Date

        itab-wadat = itab-wadat_ist.

      ENDIF.

*

      SELECT SINGLE vbeln FROM vbfa

      INTO (itab-pvbeln)

      WHERE vbelv = itab-vgbel  AND

      vbtyp_n = 'R'.

      CONCATENATE itab-pvbeln itab-wadat+0(4) INTO itab-pgi_year.

      SELECT SINGLE belnr FROM bkpf

      INTO (itab-pbelnr )

      WHERE awkey = itab-pgi_year  AND

      awtyp = 'MKPF'.

      SELECT SINGLE bstkd FROM vbkd INTO CORRESPONDING FIELDS OF

      itab WHERE vbeln = itab-aubel.

*----------------------------------------------------

*   Net Amt & Tax Amt  Sign ( + )  & (- )

*   For Billing Type  Sign to be made -ve

* G2  :  Credit Memo

* RE  :  Credit Memo

*ZRNR :  Credit Memo

      IF  itab-fkart EQ 'G2' OR

          itab-fkart EQ 'RE' OR

          itab-fkart EQ 'ZRNR' OR

          itab-fkart EQ 'ZR1'  OR

          itab-fkart EQ 'ZR2'  OR

          itab-fkart EQ 'ZRWO'.

        itab-netwr = itab-netwr * -1.

        itab-mwsbp = itab-mwsbp * -1.

        itab-fkimg = itab-fkimg * -1.

      ENDIF.

*-----------------------------------------------------

*

      PERFORM chq_text.

      PERFORM lr_text.

      itab-netvalue = itab-netwr + itab-mwsbp.

      MODIFY itab.

      IF b_likp = '' .

        DELETE itab INDEX sindx.

      ENDIF.

      CLEAR itab.

    ENDLOOP.

*

    DELETE itab WHERE valflag = 'X'.

*------

  ELSE.

    MESSAGE s001(zobjmsg) WITH 'No Records found'.

  ENDIF.

  IF all_dtl NE 'X' AND cumt_t5 NE 'X'.

*   Customer - Material wise

    IF cust_mat = 'X'.

      SORT itab BY kunag matnr.

*   State  - Material wise

    ELSEIF stat_mat = 'X'.

      SORT itab BY kvgr5 matnr.

*   Shipping point + Material

    ELSEIF shp_mtnr = 'X'.

      SORT itab BY vstel matnr.

    ENDIF.

    LOOP AT itab.

      AT END OF matnr.

        SUM.

        dfkimg   =  itab-fkimg.

        dnetvalue   =  itab-netvalue .

        dkwmeng  = itab-kwmeng.

      ENDAT.

      itab-c_fkimg   =  dfkimg.

      itab-c_netvalue   =  dnetvalue.

      itab-c_kwmeng     = dkwmeng.

      dfkimg   =  0.

      dnetvalue   =  0.

      dkwmeng  = 0.

      MODIFY itab.

      CLEAR  itab.

    ENDLOOP.

    DELETE itab WHERE ( c_netvalue = '0.00' ).

  ENDIF.

ENDFORM.                    "select_data

FORM print_data.

  IF n_html EQ 'X'.

*Customer

    wa_fieldcat-tabname = 'ITAB'.

    wa_fieldcat-col_pos = '01'.

    wa_fieldcat-fieldname = 'KUNAG'.

    wa_fieldcat-seltext_l = 'Customer'.

    APPEND wa_fieldcat TO ls_fieldcat.

*Customer Name

    wa_fieldcat-tabname = 'ITAB'.

    wa_fieldcat-col_pos = '02'.

    wa_fieldcat-fieldname = 'NAME1'.

    wa_fieldcat-seltext_l = 'Customer Name'.

    APPEND wa_fieldcat TO ls_fieldcat.

*Customer City

    wa_fieldcat-tabname = 'ITAB'.

    wa_fieldcat-col_pos = '03'.

    wa_fieldcat-fieldname = 'MCOD3'.

    wa_fieldcat-seltext_l = 'Customer City'.

    APPEND wa_fieldcat TO ls_fieldcat.

*Material

    wa_fieldcat-tabname = 'ITAB'.

    wa_fieldcat-col_pos = '04'.

    wa_fieldcat-fieldname = 'MATNR'.

    wa_fieldcat-seltext_l = 'Material'.

    APPEND wa_fieldcat TO ls_fieldcat.

    wa_fieldcat-tabname = 'ITAB'.

    wa_fieldcat-col_pos = '05'.

    wa_fieldcat-fieldname = 'EXTWG'.

    wa_fieldcat-seltext_l = 'External Material Group'.

    APPEND wa_fieldcat TO ls_fieldcat.

*--

*Material Description

    wa_fieldcat-tabname = 'ITAB'.

    wa_fieldcat-col_pos = '06'.

    wa_fieldcat-fieldname = 'ARKTX'.

    wa_fieldcat-seltext_l = 'Material Description'.

    APPEND wa_fieldcat TO ls_fieldcat.

    wa_fieldcat-col_pos = '21'.

    wa_fieldcat-fieldname = 'KVGR5'.

    wa_fieldcat-seltext_l = 'State'.

    APPEND wa_fieldcat TO ls_fieldcat.

    wa_fieldcat-col_pos = '22'.

    wa_fieldcat-fieldname = 'WERKS'.

    wa_fieldcat-seltext_l = 'Plant'.

    APPEND wa_fieldcat TO ls_fieldcat.

    wa_fieldcat-col_pos = '23'.

    wa_fieldcat-fieldname = 'BZIRK'.

    wa_fieldcat-seltext_l = 'Sales District'.

    APPEND wa_fieldcat TO ls_fieldcat.

    wa_fieldcat-col_pos = '24'.

    wa_fieldcat-fieldname = 'VKBUR'.

    wa_fieldcat-seltext_l = 'Sales Office'.

    APPEND wa_fieldcat TO ls_fieldcat.

    wa_fieldcat-col_pos = '25'.

    wa_fieldcat-fieldname = 'VKGRP'.

    wa_fieldcat-seltext_l = 'Sales Group'.

    APPEND wa_fieldcat TO ls_fieldcat.

* Account Assignment Group

    wa_fieldcat-col_pos = '29'.

    wa_fieldcat-fieldname = 'KTGRM'.

    wa_fieldcat-seltext_l = 'Acct Ass Grp'.

    APPEND wa_fieldcat TO ls_fieldcat.

* Product Hierarchy

    wa_fieldcat-col_pos = '26'.

    wa_fieldcat-fieldname = 'PRODH'.

    wa_fieldcat-seltext_l = 'Product Hierarchy'.

    APPEND wa_fieldcat TO ls_fieldcat.

*

* Item Categ

    wa_fieldcat-tabname = 'ITAB'.

    wa_fieldcat-col_pos = '27'.

    wa_fieldcat-fieldname = 'PSTYV'.

    wa_fieldcat-seltext_l = 'Item Category'.

    APPEND wa_fieldcat TO ls_fieldcat.

    wa_fieldcat-tabname = 'ITAB'.

    wa_fieldcat-col_pos = '30'.

    wa_fieldcat-fieldname = 'KDMAT'.

    wa_fieldcat-seltext_l = 'Customer Material NO.'.

    APPEND wa_fieldcat TO ls_fieldcat.

*---------

    IF all_dtl = 'X' OR cumt_t5 = 'X' OR shp_mtnr = 'X'.

*Invoice Date

      wa_fieldcat-tabname = 'ITAB'.

      wa_fieldcat-col_pos = '05'.

      wa_fieldcat-fieldname = 'FKDAT'.

      wa_fieldcat-seltext_l = 'Date'.

      APPEND wa_fieldcat TO ls_fieldcat.

*Invoice No

      wa_fieldcat-tabname = 'ITAB'.

      wa_fieldcat-col_pos = '10'.

      wa_fieldcat-fieldname = 'VBELN'.

      wa_fieldcat-seltext_l = 'InvoiceNo'.

      wa_fieldcat-hotspot = 'X'.

      APPEND wa_fieldcat TO ls_fieldcat.

      wa_fieldcat-tabname = 'ITAB'.

      wa_fieldcat-col_pos = '11'.

      wa_fieldcat-fieldname = 'AUBEL'.

      wa_fieldcat-seltext_l = 'Sales Order'.

      wa_fieldcat-hotspot = 'X'.

      APPEND wa_fieldcat TO ls_fieldcat.

      wa_fieldcat-col_pos = '13'.

      wa_fieldcat-fieldname = 'SPART'.

      wa_fieldcat-seltext_l = 'REMARK'.

      APPEND wa_fieldcat TO ls_fieldcat.

      wa_fieldcat-col_pos = '14'.

      wa_fieldcat-fieldname = 'FKART'.

      wa_fieldcat-seltext_l = 'Bill.Type'.

      APPEND wa_fieldcat TO ls_fieldcat.

      wa_fieldcat-col_pos = '15'.

      wa_fieldcat-fieldname = 'VGBEL'.

      wa_fieldcat-seltext_l = 'Delivery No'.

      APPEND wa_fieldcat TO ls_fieldcat.

      wa_fieldcat-col_pos = '16'.

      wa_fieldcat-fieldname = 'WADAT'.

      wa_fieldcat-seltext_l = 'Delivery Date'.

      APPEND wa_fieldcat TO ls_fieldcat.

      wa_fieldcat-col_pos = '17'.

      wa_fieldcat-fieldname = 'KVGR4'.

      wa_fieldcat-seltext_l = 'No.of Packages'.

      APPEND wa_fieldcat TO ls_fieldcat.

      wa_fieldcat-col_pos = '18'.

      wa_fieldcat-fieldname = 'LRDTL'.

      wa_fieldcat-seltext_l = 'LR Detail'.

      APPEND wa_fieldcat TO ls_fieldcat.

      wa_fieldcat-col_pos = '19'.

      wa_fieldcat-fieldname = 'RFBSK'.

      wa_fieldcat-seltext_l = 'Posting Status'.

      APPEND wa_fieldcat TO ls_fieldcat.

      wa_fieldcat-col_pos = '20'.

      wa_fieldcat-fieldname = 'CHQDTL'.

      wa_fieldcat-seltext_l = 'Cheque Detail'.

      APPEND wa_fieldcat TO ls_fieldcat.

* Valuation Type

      wa_fieldcat-col_pos = '28'.

      wa_fieldcat-fieldname = 'BWTAR'.

      wa_fieldcat-seltext_l = 'Val.Type'.

      APPEND wa_fieldcat TO ls_fieldcat.

* Billed Qty

      wa_fieldcat-col_pos = '27'.

      wa_fieldcat-fieldname = 'FKIMG'.

      wa_fieldcat-seltext_l = 'Billed Qty'.

      APPEND wa_fieldcat TO ls_fieldcat.

******added by  (as per )

      wa_fieldcat-col_pos = '28'.

      wa_fieldcat-fieldname = 'VRKME'.

      wa_fieldcat-seltext_l = 'UOM.'.

      APPEND wa_fieldcat TO ls_fieldcat.

***********

******added by  (as per sir)

      wa_fieldcat-col_pos = '29'.

      wa_fieldcat-fieldname = 'IMPORTDTL'.

      wa_fieldcat-seltext_l = 'Import Details'.

      APPEND wa_fieldcat TO ls_fieldcat.

*******

* Total Net Amount  ( net + tax )

      wa_fieldcat-col_pos = '29' .

      wa_fieldcat-fieldname = 'NETVALUE'.

      wa_fieldcat-seltext_l = 'NETVALUE'.

      APPEND wa_fieldcat TO ls_fieldcat.

* Currency in

      wa_fieldcat-tabname = 'ITAB'.

      wa_fieldcat-col_pos = '07'.

      wa_fieldcat-fieldname = 'WAERK'.

      wa_fieldcat-seltext_l = 'Currency'.

      APPEND wa_fieldcat TO ls_fieldcat.

* Exchange Rate

      wa_fieldcat-tabname = 'ITAB'.

      wa_fieldcat-col_pos = '08'.

      wa_fieldcat-fieldname = 'KURRF'.

      wa_fieldcat-seltext_l = 'Exchange Rate'.

      APPEND wa_fieldcat TO ls_fieldcat.

* Net Value

      wa_fieldcat-tabname = 'ITAB'.

      wa_fieldcat-col_pos = '06'.

      wa_fieldcat-fieldname = 'NETWR'.

      wa_fieldcat-seltext_l = 'NET Amt'.

      APPEND wa_fieldcat TO ls_fieldcat.

*Tax Amount

      wa_fieldcat-tabname = 'ITAB'.

      wa_fieldcat-col_pos = '09'.

      wa_fieldcat-fieldname = 'MWSBP'.

      wa_fieldcat-seltext_l = 'Tax Amt'.

      APPEND wa_fieldcat TO ls_fieldcat.

* Net Rate by  on 05.08.09

      wa_fieldcat-tabname = 'ITAB'.

      wa_fieldcat-col_pos = '10'.

      wa_fieldcat-fieldname = 'KBETR8'.

      wa_fieldcat-seltext_l = 'Net Rate'.

      APPEND wa_fieldcat TO ls_fieldcat.

* ---------------------------*

*     ZPR0 MRP

* ---------------------------*

      wa_fieldcat-tabname = 'ITAB'.

      wa_fieldcat-col_pos = '35' .

      wa_fieldcat-fieldname = 'KBETR'.

      wa_fieldcat-seltext_l = 'MRP_ZPR0'.

      APPEND wa_fieldcat TO ls_fieldcat.

* ---------------------------*

      wa_fieldcat-tabname = 'ITAB'.

      wa_fieldcat-col_pos = '36' .

      wa_fieldcat-fieldname = 'KWERT'.

      wa_fieldcat-seltext_l = 'ZPR0_Value'.

      APPEND wa_fieldcat TO ls_fieldcat.

      wa_fieldcat-tabname = 'ITAB'.

      wa_fieldcat-col_pos = '37' .

      wa_fieldcat-fieldname = 'KBETR1'.

      wa_fieldcat-seltext_l = 'ZDIR_Rate'.

      APPEND wa_fieldcat TO ls_fieldcat.

      wa_fieldcat-tabname = 'ITAB'.

      wa_fieldcat-col_pos = '38' .

      wa_fieldcat-fieldname = 'KWERT1'.

      wa_fieldcat-seltext_l = 'ZDIR_Value'.

      APPEND wa_fieldcat TO ls_fieldcat.

      wa_fieldcat-col_pos = '50'.

      wa_fieldcat-fieldname = 'LRNUM'.

      wa_fieldcat-seltext_l = 'LR NUMBER'.

      APPEND wa_fieldcat TO ls_fieldcat.

      wa_fieldcat-col_pos = '51'.

      wa_fieldcat-fieldname = 'LRDAT'.

      wa_fieldcat-seltext_l = 'LR DATE'.

      APPEND wa_fieldcat TO ls_fieldcat.

      wa_fieldcat-col_pos = '52'.

      wa_fieldcat-fieldname = 'VEHNO'.

      wa_fieldcat-seltext_l = 'VEHICLE NUMBER'.

      APPEND wa_fieldcat TO ls_fieldcat.

      wa_fieldcat-col_pos = '53'.

      wa_fieldcat-fieldname = 'CART'.

      wa_fieldcat-seltext_l = 'No.Of.Box'.

      APPEND wa_fieldcat TO ls_fieldcat.

*------------------

      IF sy-uname = 'SD-LOG-AHD'.

        wa_fieldcat-tabname = 'ITAB'.

        wa_fieldcat-col_pos = '46' .

        wa_fieldcat-fieldname = 'KBETR6'.

        wa_fieldcat-seltext_l = 'ZDIA_Rate'.

        APPEND wa_fieldcat TO ls_fieldcat.

        wa_fieldcat-tabname = 'ITAB'.

        wa_fieldcat-col_pos = '47' .

        wa_fieldcat-fieldname = 'KWERT6'.

        wa_fieldcat-seltext_l = 'ZDIA_Value'.

        APPEND wa_fieldcat TO ls_fieldcat.

        wa_fieldcat-tabname = 'ITAB'.

        wa_fieldcat-col_pos = '48' .

        wa_fieldcat-fieldname = 'KBETR7'.

        wa_fieldcat-seltext_l = 'ZDIN_Rate'.

        APPEND wa_fieldcat TO ls_fieldcat.

        wa_fieldcat-tabname = 'ITAB'.

        wa_fieldcat-col_pos = '49' .

        wa_fieldcat-fieldname = 'KWERT7'.

        wa_fieldcat-seltext_l = 'ZDIN_Value'.

        APPEND wa_fieldcat TO ls_fieldcat.

      ENDIF.

*-

      IF ch_cond = 'X'.

        wa_fieldcat-tabname = 'ITAB'.

        wa_fieldcat-col_pos = '39' .

        wa_fieldcat-fieldname = 'KWERT2'.

        wa_fieldcat-seltext_l = 'Assessable value'.

        APPEND wa_fieldcat TO ls_fieldcat.

        wa_fieldcat-tabname = 'ITAB'.

        wa_fieldcat-col_pos = '40' .

        wa_fieldcat-fieldname = 'KBETR3'.

        wa_fieldcat-seltext_l = 'Rate of BED'.

        APPEND wa_fieldcat TO ls_fieldcat.

        wa_fieldcat-tabname = 'ITAB'.

        wa_fieldcat-col_pos = '41' .

        wa_fieldcat-fieldname = 'KWERT3'.

        wa_fieldcat-seltext_l = 'BED value'.

        APPEND wa_fieldcat TO ls_fieldcat.

        wa_fieldcat-tabname = 'ITAB'.

        wa_fieldcat-col_pos = '42' .

        wa_fieldcat-fieldname = 'KBETR4'.

        wa_fieldcat-seltext_l = 'Rate of ECESS'.

        APPEND wa_fieldcat TO ls_fieldcat.

        wa_fieldcat-tabname = 'ITAB'.

        wa_fieldcat-col_pos = '43' .

        wa_fieldcat-fieldname = 'KWERT4'.

        wa_fieldcat-seltext_l = 'ECESS value'.

        APPEND wa_fieldcat TO ls_fieldcat.

        wa_fieldcat-tabname = 'ITAB'.

        wa_fieldcat-col_pos = '44' .

        wa_fieldcat-fieldname = 'KBETR5'.

        wa_fieldcat-seltext_l = 'Rate of SHE Cess'.

        APPEND wa_fieldcat TO ls_fieldcat.

        wa_fieldcat-tabname = 'ITAB'.

        wa_fieldcat-col_pos = '45' .

        wa_fieldcat-fieldname = 'KWERT5'.

        wa_fieldcat-seltext_l = 'SHE value'.

        APPEND wa_fieldcat TO ls_fieldcat.

      ENDIF.

*-----------------------------*

    ELSE .

*

      wa_fieldcat-col_pos = '27'.

      wa_fieldcat-fieldname = 'C_FKIMG'.

      wa_fieldcat-seltext_l = 'Billed Qty'.

      APPEND wa_fieldcat TO ls_fieldcat.

* Total Net Amount  ( net + tax )

      wa_fieldcat-col_pos = '30' .

      wa_fieldcat-fieldname = 'C_NETVALUE'.

      wa_fieldcat-seltext_l = 'NETVALUE'.

      APPEND wa_fieldcat TO ls_fieldcat.

    ENDIF.

    wa_fieldcat-tabname = 'ITAB'.

    wa_fieldcat-fieldname = 'ERDAT_I'.

    wa_fieldcat-seltext_l = 'Invoice Creation Date'.

    wa_fieldcat-outputlen = 10.

    APPEND wa_fieldcat TO ls_fieldcat.

    wa_fieldcat-tabname = 'ITAB'.

    wa_fieldcat-fieldname = 'ERZET_I'.

    wa_fieldcat-seltext_l = 'Invoice Creation Time'.

    wa_fieldcat-outputlen = 8.

    APPEND wa_fieldcat TO ls_fieldcat.

    wa_fieldcat-tabname = 'ITAB'.

    wa_fieldcat-fieldname = 'ERDAT'.

    wa_fieldcat-seltext_l = 'Sales Order Creation Date'.

    wa_fieldcat-outputlen = 10.

    APPEND wa_fieldcat TO ls_fieldcat.

    wa_fieldcat-tabname = 'ITAB'.

    wa_fieldcat-fieldname = 'ERZET'.

    wa_fieldcat-seltext_l = 'Sales Order Creation Time'.

    wa_fieldcat-outputlen = 8.

    APPEND wa_fieldcat TO ls_fieldcat.

    wa_fieldcat-tabname = 'ITAB'.

    wa_fieldcat-fieldname = 'KWMENG'.

    wa_fieldcat-seltext_l = 'Sales Order Qty.'.

    wa_fieldcat-outputlen = 16.

    APPEND wa_fieldcat TO ls_fieldcat.

    CLEAR :wa_fieldcat-outputlen.

*-----

    wa_fieldcat-col_pos = '31'.

    wa_fieldcat-fieldname = 'PCODE'.

    wa_fieldcat-seltext_l = 'P.C. Code'.

    APPEND wa_fieldcat TO ls_fieldcat.

    wa_fieldcat-col_pos = '32'.

    wa_fieldcat-fieldname = 'AGENT'.

    wa_fieldcat-seltext_l = 'Payment Collection Agent'.

    APPEND wa_fieldcat TO ls_fieldcat.

    wa_fieldcat-col_pos = '33'.

    wa_fieldcat-fieldname = 'TRCODE'.

    wa_fieldcat-seltext_l = 'Trans Code'.

    APPEND wa_fieldcat TO ls_fieldcat.

    wa_fieldcat-col_pos = '34'.

    wa_fieldcat-fieldname = 'TRNAME'.

    wa_fieldcat-seltext_l = 'Transporter Name'.

    APPEND wa_fieldcat TO ls_fieldcat.

    wa_fieldcat-col_pos = '37'.

    wa_fieldcat-fieldname = 'VSTEL'.

    wa_fieldcat-seltext_l = 'Shipping point'.

    APPEND wa_fieldcat TO ls_fieldcat.

    wa_fieldcat-tabname = 'ITAB'.

    wa_fieldcat-fieldname = 'PRSDT'.

    wa_fieldcat-seltext_l = 'Invoice Pricing Date.'.

    APPEND wa_fieldcat TO ls_fieldcat.

    wa_fieldcat-tabname = 'ITAB'.

    wa_fieldcat-fieldname = 'PRSDT1'.

    wa_fieldcat-seltext_l = 'Pricing Date.'.

    APPEND wa_fieldcat TO ls_fieldcat.

*------------------------------------------

    wa_fieldcat-tabname = 'ITAB'.

    wa_fieldcat-fieldname = 'VTWEG'.

    wa_fieldcat-seltext_l = 'Distri.Channel'.

    APPEND wa_fieldcat TO ls_fieldcat.

*------------------------------------------

    wa_fieldcat-tabname = 'ITAB'.

    wa_fieldcat-fieldname = 'FKLMG'.

    wa_fieldcat-seltext_l = 'Bil.qty SKU.'.

    APPEND wa_fieldcat TO ls_fieldcat.

**----PGI document

    wa_fieldcat-tabname = 'ITAB'.

    wa_fieldcat-fieldname = 'PVBELN'.

    wa_fieldcat-seltext_l = 'PGI document'.

    APPEND wa_fieldcat TO ls_fieldcat.

***----Delivery Accounting Document

    wa_fieldcat-tabname = 'ITAB'.

    wa_fieldcat-fieldname = 'PBELNR'.

    wa_fieldcat-seltext_l = 'Delivery Accounting Document'.

    APPEND wa_fieldcat TO ls_fieldcat.

*-------------

    wa_fieldcat-tabname = 'ITAB'.

    wa_fieldcat-fieldname = 'BSTKD'.

    wa_fieldcat-seltext_l = 'PurchaseOrderNo'.

    APPEND wa_fieldcat TO ls_fieldcat.

    wa_fieldcat-tabname = 'ITAB'.

    wa_fieldcat-fieldname = 'QUOTATION'.

    wa_fieldcat-seltext_l = 'Quotation No'.

    APPEND wa_fieldcat TO ls_fieldcat.

*---

    HIDE : itab.

    DATA : hide TYPE slis_layout_alv .

    DATA: u_er_layout TYPE slis_layout_alv,

          iis_variant TYPE disvariant,

          ii_save.

    u_er_layout-zebra = 'X'.

    u_er_layout-colwidth_optimize = 'X'.

    u_er_layout-reprep            = 'X'.

    u_er_layout-f2code            = 'HIT'.

    u_er_layout-group_change_edit = 'X'.

    u_er_layout-key_hotspot       = 'X'.

    u_er_layout-get_selinfos      = 'X'.

    u_er_layout-no_author = 'X'.

u_er_layout-hotspot_fieldname       = 'X'.

    IF sy-uname = 'DEVELOPER' OR sy-uname = 'NPIL'.

      ii_save = 'A'.

    ELSE.

      ii_save = 'U'.

    ENDIF.

    IF cust_mat = 'X'.

      iis_variant-variant = '/CUST_MAT'.

    ELSEIF cumt_t5 = 'X'.

      iis_variant-variant = '/CUMT_T5'.

    ELSEIF shp_mtnr = 'X'.

      iis_variant-variant = '/SHP_MTNR'.

    ELSEIF stat_mat = 'X'.

      iis_variant-variant = '/STAT_MAT'.

    ELSE.

      iis_variant-variant  = alv_var.

      iis_variant-username = sy-uname.

    ENDIF.

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

      EXPORTING

        i_callback_program      = 'ZDISPATCH_MATERIALWISE'

        i_callback_user_command = 'ALV_CALLBACK'

        is_layout               = u_er_layout

        it_fieldcat             = ls_fieldcat

        i_default               = 'X'

        i_save                  = ii_save

        is_variant              = iis_variant

      TABLES

        t_outtab                = itab.

  ENDIF.

ENDFORM.                    "print_data

FORM chq_text.

  DATA name LIKE thead-tdname.

  REFRESH itab_chq.

  CLEAR itab_chq.

  DATA : chq_var(100) TYPE c.

  name = itab-vbeln.

  CALL FUNCTION 'READ_TEXT'

    EXPORTING

      id                      = '0001'

      language                = 'E'

      name                    = name

      object                  = 'VBBK'

    TABLES

      lines                   = itab_chq

    EXCEPTIONS

      id                      = 1

      language                = 2

      name                    = 3

      not_found               = 4

      object                  = 5

      reference_check         = 6

      wrong_access_to_archive = 7

      OTHERS                  = 8.

  DESCRIBE TABLE itab_chq LINES ln.

  IF ln > 0.

    LOOP AT itab_chq.

      CONCATENATE chq_var ' - ' itab_chq-tdline INTO chq_var.

    ENDLOOP.

    itab-chqdtl =  chq_var.

  ENDIF.

ENDFORM.                    "chq_text

*** LR_TEXT

FORM lr_text.

  REFRESH itab_lr.

  CLEAR itab_lr.

  DATA name LIKE thead-tdname.

  DATA : lr_var(100) TYPE c.

  name = itab-vbeln.

  CALL FUNCTION 'READ_TEXT'

    EXPORTING

      id                      = '0002'

      language                = 'E'

      name                    = name

      object                  = 'VBBK'

    TABLES

      lines                   = itab_lr

    EXCEPTIONS

      id                      = 1

      language                = 2

      name                    = 3

      not_found               = 4

      object                  = 5

      reference_check         = 6

      wrong_access_to_archive = 7

      OTHERS                  = 8.

  DESCRIBE TABLE itab_lr LINES ln.

  IF ln > 0.

    LOOP AT itab_lr.

      CONCATENATE lr_var ' - ' itab_lr-tdline INTO lr_var.

    ENDLOOP.

    itab-lrdtl =  lr_var.

  ENDIF.

ENDFORM.                    "lr_text

TOP-OF-PAGE.

  WRITE: /(30) 'abc  '.

  SKIP.

  WRITE:/(30) 'Dispatch Status Report',

         (15) 'Created as on :',

         (17)  sy-datum.

  WRITE: / sy-uline.

  FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.

  WRITE: /(10) 'Cust.Code',sy-vline.

  SET LEFT SCROLL-BOUNDARY.

  WRITE:  (35) 'Cust.Name', sy-vline,

          (25) 'Cust.City',sy-vline, "added

          (18) 'Material', sy-vline,

          (40) 'Material Description', sy-vline,

          (10) 'Incoice Dt', sy-vline,

          (13) 'Net Amount', sy-vline,

          (08) 'Currancy', sy-vline,

          (15) 'Exchange Rate', sy-vline,

          (15) 'Tax amount', sy-vline,

          (10) 'Invoice No', sy-vline,

          (10) 'sales ord', sy-vline,

          (12) 'S.O Creat Dt', sy-vline,

          (06) 'Remark', sy-vline,

          (10) 'Bill.Type', sy-vline,

          (12) 'Delivery No', sy-vline,

          (10) 'Deli.Dt', sy-vline,

          (12) 'No.Of.Pack', sy-vline,

          (40) 'LR Text', sy-vline,

          (02) 'St', sy-vline,

          (60) 'Cheque Deatil', sy-vline,

          (05) 'State', sy-vline,

          (05) 'plant', sy-vline,

          (09) 'Sal.Dist.', sy-vline,

          (10) 'Sal.Office', sy-vline,

          (09) 'Sal.Grp.', sy-vline,

          (18) 'Product High', sy-vline,

          (16) 'Bill Quantity', sy-vline,

          (10) 'Valu Type', sy-vline,

          (12) 'Acct.Ass.Grp', sy-vline,

          (13) 'Net Value', sy-vline,

          (10) 'pc code', sy-vline,

          (35) 'Payment Collection agent', sy-vline,

          (10) 'Tran.Code', sy-vline,

          (35) 'Transpoter Name', sy-vline,

          (10) 'LR NUMBER',sy-vline,

          (10) 'LR DATE',sy-vline,

          (13) 'VEHICLE NUMBER',sy-vline,

          (5)  'BOX',sy-vline.

*--

  WRITE: / sy-uline.

END-OF-PAGE.

AT LINE-SELECTION.

.

  SET PARAMETER ID 'VF' FIELD itab-vbeln.

  CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN.

AT USER-COMMAND.

*&---------------------------------------------------------------------*

*&      Form  download_file

*&---------------------------------------------------------------------*

FORM download_file.

  DATA: BEGIN OF it_attach OCCURS 0,

          line(4069) TYPE c,

        END OF it_attach.

  DATA: text(255) TYPE c.

  FIELD-SYMBOLS: <fs>.

  DATA : det TYPE REF TO cl_abap_structdescr,

         wa LIKE LINE OF det->components.

  IF p_vkorg-high NE space.

    CONCATENATE p_vkorg-low '-' p_vkorg-high INTO sorg.

  ELSE.

    sorg = p_vkorg-low.

  ENDIF.

  IF p_dev-high NE space.

    CONCATENATE p_dev-low '-' p_dev-high INTO div.

  ELSE.

    div = p_dev-low.

  ENDIF.

  IF p_regio NE space.

    CONCATENATE p_regio-low '-' p_regio-high INTO reg.

  ELSE.

    reg = p_regio-low.

  ENDIF.

  IF reg NE space.

    CONCATENATE div '-' reg INTO div.

  ENDIF.

  CONCATENATE '\\' ip_add '\' share '\' sorg '-' div '-'

              sy-datum+6(2) '.' sy-datum+4(2) '.' sy-datum+2(2)

                 '.csv' INTO fpath.

  det ?= cl_abap_typedescr=>describe_by_data( itab ).

  REFRESH: it_attach.

  CLEAR :it_attach.

  OPEN DATASET fpath FOR  OUTPUT IN TEXT MODE.

  IF sy-subrc = 0.

    LOOP AT det->components INTO wa.

      ASSIGN COMPONENT 'NAME' OF STRUCTURE wa TO <fs>.

      IF sy-subrc NE 0.

        EXIT.

      ENDIF.

      IF it_attach IS INITIAL.

        it_attach = <fs>.

      ELSE.

        text = <fs>.

        CONDENSE text.

        CONCATENATE it_attach text INTO it_attach SEPARATED BY ','.

      ENDIF.

    ENDLOOP.

    TRANSFER it_attach TO fpath.

    LOOP AT itab .

      CLEAR :it_attach.

      DO.

        ASSIGN COMPONENT sy-index OF STRUCTURE itab TO <fs>.

        IF sy-subrc NE 0.

          EXIT.

        ENDIF.

        IF sy-index NE 0.

          IF it_attach IS INITIAL.

            it_attach = <fs>.

          ELSE.

            text = <fs>.

            CONDENSE text.

            CONCATENATE it_attach text INTO it_attach SEPARATED BY ','.

          ENDIF.

        ENDIF.

      ENDDO.

      TRANSFER it_attach TO fpath.

    ENDLOOP.

  ENDIF.

  CLOSE DATASET fpath.

ENDFORM.                    " download_file

*&---------------------------------------------------------------------*

*&      Form  cumt_t5

*&---------------------------------------------------------------------*

FORM cumt_t5.

  LOOP AT jtab.

    icoll-kunag = jtab-kunag.

    icoll-matnr = jtab-matnr.

    COLLECT icoll.

  ENDLOOP.

  LOOP AT icoll.

    int1 = 1.

    LOOP AT jtab WHERE kunag = icoll-kunag

                 AND matnr = icoll-matnr.

      IF int1 <= 5.

        APPEND LINES OF jtab FROM sy-tabix TO sy-tabix TO itab .

        int1 = int1 + 1.

      ENDIF.

    ENDLOOP.

  ENDLOOP.

ENDFORM.                                                    " cumt_t5

*&---------------------------------------------------------------------*

*&      Form  ALV_Callback

*&---------------------------------------------------------------------*

FORM alv_callback USING r_ucomm LIKE sy-ucomm

                                     rs_selfield TYPE slis_selfield.

  CHECK rs_selfield-fieldname  EQ 'VBELN'.

  SET PARAMETER ID 'VF' FIELD rs_selfield-value.

  CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN.

ENDFORM.                    "ALV_callback

*&---------------------------------------------------------------------*

*&      Form  TRANSF_2_ORACLE

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM transf_2_oracle .

  DATA: exc_ref    TYPE REF TO cx_sy_native_sql_error,

        error_text TYPE string  .

  EXEC SQL.

    CONNECT TO :'ZSFA'

  ENDEXEC.

  IF sy-subrc EQ 0 .

    TRY.

        EXEC SQL .

          DELETE  FROM SAPDISPDTL_MAT

        ENDEXEC .

      CATCH cx_sy_native_sql_error INTO exc_ref.

        error_text = exc_ref->get_text( ).

        MESSAGE error_text TYPE 'I'.

    ENDTRY.

    LOOP AT itab.

      TRY.

*?to insert

          EXEC SQL.

**?then you can insert here the normal SAP SQL commands

            INSERT into SAPDISPDTL_MAT

             (

              CALDAY,SORG,  DCHANNEL, DIVISION, DISTRIBUTOR,

                SALESAMT, INVOICENO,  REGION,NOOFBOXES, LRNO, LRDATE, PLANT,

                MATNR,  QTY

              )

           values (

             trim(:itab-fkdat),trim(:itab-vkorg) ,trim(:itab-vtweg),trim(:itab-spart),trim(to_number(:itab-kunag)),

             trim(to_number(:itab-netwr)), trim(:itab-vbeln) , trim(:itab-kvgr5) ,trim(:itab-CART) ,trim(:itab-LRNUM) ,trim(:itab-LRDAT) ,trim(:itab-WERKS) ,

             trim(:itab-MATNR) , trim(:itab-FKIMG)

           )

          ENDEXEC.

        CATCH cx_sy_native_sql_error INTO exc_ref.

          error_text = exc_ref->get_text( ).

          MESSAGE error_text TYPE 'I'.

      ENDTRY.

    ENDLOOP .

  ENDIF .

ENDFORM.                    " TRANSF_2_ORACLE

*&---------------------------------------------------------------------*

*&      Form  ALV_VARIANT_F4

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*      <--P_ALV_VAR  text

*----------------------------------------------------------------------*

FORM alv_variant_f4  CHANGING p_alv_var.

  DATA: rs_variant LIKE disvariant.

  DATA nof4 TYPE c.

  CLEAR nof4.

  LOOP AT SCREEN.

    IF screen-name = 'ALV_VAR'.

      IF screen-input = 0.

        nof4 = 'X'.

      ENDIF.

    ENDIF.

  ENDLOOP.

  rs_variant-report   = 'ZDISPATCH_MATERIALWISE'.

  rs_variant-username = sy-uname.

  CALL FUNCTION 'REUSE_ALV_VARIANT_F4'

    EXPORTING

      is_variant = rs_variant

      i_save     = 'A'

    IMPORTING

      es_variant = rs_variant

    EXCEPTIONS

      OTHERS     = 1.

  IF sy-subrc = 0 AND nof4 EQ space.

    p_alv_var = rs_variant-variant.

  ENDIF.

ENDFORM.                    " ALV_VARIANT_F4

Thanks

Read only

0 Likes
1,206

the report is irrelavant ... you said you have the ST05 then please understand the very basic things of the ST05, not the ABAP code of the SELECT is important but the statement details, first buttom! There you will see which statement goes to the database all the accutally used ranges.

RANGES are dynamic programming in ABAP and can be interpreted only after the database interface, = statement detail.

Read only

0 Likes
1,206

Hi,

as Siegfried said... the relevant details are still missing.

Kindly provide those and you will get help.

Kind regards,

Hermann

Read only

0 Likes
1,206

Please start a new thread with the relevant information.

thread locked.

Rob