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

Delete the same entry.

Former Member
0 Likes
2,655

so num           committed qty          site         order qty     order value              delivery qty



15004037          5                  4871         5            660                       3
15004037          5                  4871         5            660                       2
  

I  want  result as follow.

  

so num           committed qty          site         order qty     order value              delivery qty



15004037          5                  4871         5            660                       3
15004037                                                2
  

I  want  result as follow.

  
16 REPLIES 16
Read only

venkat_aileni
Contributor
0 Likes
2,617

Hi-

Try below code should work:

TYPES: BEGIN OF t_itab,

        vbeln TYPE vbak-vbeln,

        c_qty TYPE kwmeng,

        site  TYPE i,

        ord_qty TYPE kwmeng,

        ord_val TYPE vbap-zwert,

        del_qty TYPE kwmeng,

        END OF t_itab.

DATA: it_final TYPE STANDARD TABLE OF t_itab,

       wa_final TYPE t_itab,

       lv_modify TYPE c.

FIELD-SYMBOLS: <wa_final> TYPE t_itab.

CLEAR: wa_final.

wa_final-vbeln   = '15004037'.

wa_final-c_qty   = 5.

wa_final-site    = 4871.

wa_final-ord_qty = 5.

wa_final-ord_val = 660.

wa_final-del_qty = 3.

APPEND wa_final TO it_final.

CLEAR: wa_final.

wa_final-vbeln   = '15004037'.

wa_final-c_qty   = 5.

wa_final-site    = 4871.

wa_final-ord_qty = 5.

wa_final-ord_val = 660.

wa_final-del_qty = 2.

APPEND wa_final TO it_final.

CLEAR wa_final.

LOOP AT it_final ASSIGNING <wa_final>.

   IF <wa_final>-vbeln = wa_final-vbeln.

     IF <wa_final>-c_qty = wa_final-c_qty.

       CLEAR <wa_final>-c_qty.

     ENDIF.

     IF <wa_final>-site = wa_final-site.

       CLEAR <wa_final>-site.

     ENDIF.

     IF <wa_final>-ord_qty = wa_final-ord_qty.

       CLEAR <wa_final>-ord_qty.

     ENDIF.

     IF <wa_final>-ord_val = wa_final-ord_val.

       CLEAR <wa_final>-ord_val.

     ENDIF.

   ENDIF.

   wa_final = <wa_final>.

ENDLOOP.

IF it_final IS NOT INITIAL.

ENDIF.

-Venkat

Read only

0 Likes
2,617

In ALV what i have to do?

Read only

0 Likes
2,617

Hi Sharma-

If your internal table consists of only those 6 fields and you want to delete duplicates do this:

SORT itab[] BY field1 ASCENDING

                       field2 ASCENDING

                       field3 ASCENDING

                       field4 ASCENDING

                       field5 ASCENDING

                       field6 ASCENDING.

DELETE ADJACANT DUPLICATES FROM itab COMPARING ALL FIELDS.

If this wasn't your requirement kindly elaborate.

-Venkat

Read only

Former Member
0 Likes
2,617

Hi sharma ,

                    Can you paste your code ? It can be just clearing your workarea or fieldsymbol in a right place . Just share your code.. to get it done in simple way.

Thanks & Regrads ,

Shiv .

Read only

0 Likes
2,617

*&---------------------------------------------------------------------*
*&  Include           ZPROOF_NEW_FETCH_DATA
*&---------------------------------------------------------------------*
***********************fetching data from vbak[Sales Document: Header Data]**************************
  SELECT vbeln audat  vbtyp auart bstnk kunnr
   FROM vbak
    INTO TABLE gt_vbak
      WHERE vbeln IN s_sal
        AND audat IN s_date
        AND auart IN s_dtype.
****************************fetching data from vbap[Sales Document: Item Data]***************************
  IF NOT  gt_vbak IS INITIAL.
    SELECT  vbeln werks kwmeng netwr mwsbp kbmeng
      FROM vbap
       INTO TABLE gt_vbap
         FOR ALL ENTRIES IN gt_vbak
          WHERE vbeln = gt_vbak-vbeln.
    SORT gt_vbap BY vbeln.
    LOOP AT gt_vbap INTO gs_vbap.
      gs_it-vbeln  = gs_vbap-vbeln.
      gs_it-netwr  = gs_vbap-netwr.
      gs_it-mwsbp  = gs_vbap-mwsbp.
      gs_it-kwmeng = gs_vbap-kwmeng.
      gs_it-kbmeng = gs_vbap-kbmeng.
      COLLECT gs_it INTO gt_it.
    ENDLOOP.
****************************fetching data from vbuk["Sales Document: Header Status and Administrative Data]***************************
    SELECT  vbeln cmgst
      FROM vbuk
       INTO TABLE gt_vbuk
         FOR ALL ENTRIES IN gt_vbak
          WHERE vbeln = gt_vbak-vbeln.
****************************fetching data from kna1[General Data in Customer Master]***************************
    SELECT  kunnr  name1  adrnr kukla
      FROM kna1
       INTO TABLE gt_kna1
        FOR ALL ENTRIES IN gt_vbak
         WHERE kunnr = gt_vbak-kunnr.
  ENDIF.
**** Fetch Customer classification Description ***
  IF NOT gt_kna1 IS INITIAL.
    SELECT kukla vtext
      FROM tkukt
       INTO TABLE gt_tkukt
         FOR ALL ENTRIES IN gt_kna1
            WHERE kukla = gt_kna1-kukla.
***************************fetching data from adrc["Addresses (Business Address Services)]********************************
    SELECT addrnumber city1  post_code1  str_suppl1   str_suppl2   sort1
      FROM adrc
       INTO TABLE gt_adrc
         FOR ALL ENTRIES IN gt_kna1
           WHERE addrnumber = gt_kna1-adrnr.
  ENDIF.
*********************************Sales Document Flow*******************************************************************
  IF p_c = 'X'.
    IF NOT  gt_vbap IS INITIAL.
      SELECT  vbelv vbeln posnv vbtyp_n rfmng erdat  erzet
        FROM vbfa
         INTO TABLE gt_vbfa
           FOR ALL ENTRIES IN  gt_vbap
           WHERE vbelv = gt_vbap-vbeln
           AND ( vbtyp_n = 'J' OR vbtyp_n = 'M' OR vbtyp_n = 'R' ).
      SORT gt_vbfa BY erzet.
      SORT gt_vbfa BY  erdat.
    ENDIF.
  ELSEIF p_h = 'X'.
    IF NOT  gt_vbap IS INITIAL.
      SELECT  vbelv vbeln posnv vbtyp_n rfmng erdat  erzet
        FROM vbfa
         INTO TABLE gt_vbfa
           FOR ALL ENTRIES IN  gt_vbap
            WHERE vbelv = gt_vbap-vbeln
            AND ( vbtyp_n = 'O' OR vbtyp_n = 'T' OR vbtyp_n = 'R' ).
    ENDIF.
  ENDIF.
**** Fetch delivery item level details from LIKP******************************
  IF NOT gt_vbfa IS INITIAL.
    SELECT vbeln FROM likp
      INTO TABLE gt_likp
      FOR ALL ENTRIES IN gt_vbfa
      WHERE vbeln = gt_vbfa-vbeln.
**** Fetch invoice details of header level from VBRK
    SELECT vbeln fkdat
      FROM vbrk
      INTO TABLE gt_vbrk
       FOR ALL ENTRIES IN gt_vbfa
       WHERE vbeln = gt_vbfa-vbeln.
  ENDIF.
***************************DELIVERY ITEM TABLE******************************
  IF NOT gt_likp[] IS INITIAL.
    SORT gt_likp BY vbeln.
    SELECT  vbeln posnr lfimg
     FROM lips
     INTO TABLE gt_lips
      FOR ALL ENTRIES IN gt_likp
       WHERE vbeln = gt_likp-vbeln.
    SORT gt_lips BY vbeln.
    LOOP AT gt_lips INTO gs_lips.
      gs_it1-vbeln  = gs_lips-vbeln.
      gs_it1-lfimg  = gs_lips-lfimg.
      COLLECT gs_it1 INTO gt_it1.
      CLEAR gs_lips.
    ENDLOOP.
  ENDIF.
****************************fetching data from vbrp["Billing document item data]***************************
  IF NOT gt_vbrk IS INITIAL.
    SELECT vbeln fkimg netwr mwsbp vgbel aubel
      FROM vbrp
       INTO TABLE gt_vbrp
        FOR ALL ENTRIES IN gt_vbrk
         WHERE vbeln = gt_vbrk-vbeln.
    LOOP AT gt_vbrp INTO gs_vbrp.
      gs_it3-vbeln = gs_vbrp-vbeln.
      gs_it3-fkimg = gs_vbrp-fkimg.
      gs_it3-netwr = gs_vbrp-netwr.
      gs_it3-mwsbp = gs_vbrp-mwsbp.

      COLLECT gs_it3 INTO gt_it3.
      CLEAR gs_vbrp.
    ENDLOOP.
  ENDIF.
**** Fetch data from vbfa for GI from VBFA
  IF NOT gt_likp  IS INITIAL.
    gt_vbfa2[] = gt_vbfa[].
    DELETE gt_vbfa2 WHERE vbtyp_n <> 'R'.

    LOOP AT gt_vbfa2 INTO gs_vbfa2.
      gs_it2-vbelv  = gs_vbfa2-vbelv.
      gs_it2-rfmng  = gs_vbfa2-rfmng.
      gs_it2-erdat  = gs_vbfa2-erdat.
      COLLECT gs_it2 INTO gt_it2.

      CLEAR gs_vbfa2.
    ENDLOOP.
  ENDIF.

  SORT gt_vbfa BY vbeln vbtyp_n.

  DELETE ADJACENT DUPLICATES FROM gt_vbfa COMPARING vbeln.
  SORT gt_vbfa BY vbelv vbtyp_n.
  DATA gs_vbfa_har TYPE gty_vbfa.
  SORT gt_likp BY vbeln.
  SORT gt_vbfa2 BY vbelv.
************************************************************************************************************
  LOOP AT gt_vbak INTO gs_vbak.
*"Sales Document ,Document Date (Date Received/Sent),Sales Document Type ,ustomer purchase order number,Sold-to party details
    gs_final-vbeln  = gs_vbak-vbeln.
    gs_final-audat  = gs_vbak-audat.
    gs_final-auart  = gs_vbak-auart.
    gs_final-kunnr  = gs_vbak-kunnr.
    gs_final-bstnk  = gs_vbak-bstnk.
*site details
    READ TABLE gt_vbap INTO gs_vbap WITH  KEY vbeln = gs_vbak-vbeln.
    IF sy-subrc = 0.
      gs_final-werks  = gs_vbap-werks.                 "site
    ENDIF.
*summation of Net value of the order item in document currency,Tax amount,Cumulative Order Quantity,Cumulative confirmed quantity
    READ TABLE gt_it INTO gs_it WITH KEY vbeln = gs_vbak-vbeln.
    IF sy-subrc = 0.
      gs_final-kwmeng = gs_it-kwmeng.
      gs_final-netwr  = gs_it-netwr.
      gs_final-mwsbp  = gs_it-mwsbp.
      gs_final-kbmeng = gs_it-kbmeng.
    ENDIF.
*cmgst released by finance detail
    READ TABLE gt_vbuk INTO gs_vbuk WITH KEY   vbeln = gs_vbap-vbeln.
    IF sy-subrc = 0.
      gs_final-cmgst = gs_vbuk-cmgst.
    ENDIF.
*Customer Name
    READ TABLE gt_kna1 INTO gs_kna1 WITH KEY kunnr = gs_vbak-kunnr.
    IF sy-subrc = 0.
      gs_final-name1 = gs_kna1-name1.
    ENDIF.
* Customer classification.
    READ TABLE gt_tkukt INTO gs_tkukt WITH KEY kukla = gs_kna1-kukla .
    IF sy-subrc = 0.
      gs_final-vtext = gs_tkukt-vtext.
    ENDIF.
*Customer Mobile No, City,Postal code,Street2,Street3
    READ TABLE gt_adrc INTO gs_adrc WITH KEY addrnumber = gs_kna1-adrnr BINARY SEARCH.
    IF sy-subrc = 0.
      gs_final-sort1      = gs_adrc-sort1.
      gs_final-city1      = gs_adrc-city1.
      gs_final-post_code1 = gs_adrc-post_code1.
      gs_final-str_suppl1 = gs_adrc-str_suppl1.
      gs_final-str_suppl2 = gs_adrc-str_suppl2.
    ENDIF.
*if s.o type c(order)
    IF gs_vbak-vbtyp = 'C'"C==ORDER
      DATA lv_flg TYPE c.
      LOOP AT gt_vbfa INTO gs_vbfa WHERE vbelv = gs_vbak-vbeln ."preceding doc = so num
        lv_flg = 'X'.
        IF gs_vbfa-vbtyp_n = 'J'. "j=delivery

          READ TABLE gt_likp INTO gs_likp WITH KEY vbeln = gs_vbfa-vbeln . "likp(delivery num)=vbfa(following on document)
          IF sy-subrc = 0.
            gs_final-vbeln_d = gs_vbfa-vbeln.       "Delivery Number from vbfa

            READ TABLE gt_it1 INTO gs_it1 WITH KEY vbeln = gs_final-vbeln_d .  "  BINARY SEARCH.
            IF sy-subrc = 0 AND gs_it1-lfimg IS NOT INITIAL .
              gs_final-erdat   = gs_vbfa-erdat.                " Delivery date
              gs_final-lfimg   = gs_it1-lfimg.                 " Delivery Quantity
            ENDIF.

            READ TABLE gt_vbrp INTO gs_vbrp WITH KEY vgbel = gs_likp-vbeln aubel = gs_vbfa-vbelv . "vbgel=(reference document)(delivery),so number and delivery
            IF sy-subrc = 0.
              gs_final-vbeln_i = gs_vbrp-vbeln.    "Invoice number
            ENDIF.

            READ TABLE gt_vbrk INTO gs_vbrk WITH KEY vbeln = gs_vbrp-vbeln.
            IF sy-subrc = 0.
              gs_final-erdat1 = gs_vbrk-fkdat. " invoice date
            ENDIF.
**************************** invoice value tax quantity
            READ TABLE gt_it3 INTO gs_it3 WITH KEY vbeln = gs_final-vbeln_i.
            IF sy-subrc = 0.
              gs_final-netwr1   = gs_it3-netwr.                 " Invoice Value.
              gs_final-mwsbp1   = gs_it3-mwsbp.                 " Invoice Tax Amount
              gs_final-fkimg    = gs_it3-fkimg.                 " Invoice Quantity  """"FKIMG==RFMNG
            ENDIF.

          ENDIF.
          READ TABLE gt_vbfa2 INTO gs_vbfa2 WITH KEY  vbelv = gs_vbfa-vbelv vbtyp_n = 'R'. "vbfa2 for gi quantity and gt_it2[table] summation of quantity and date
          IF sy-subrc = 0.
            READ TABLE gt_it2 INTO gs_it2 WITH KEY vbelv = gs_vbfa2-vbelv.
            gs_final-rfmng1 =  gs_it2-rfmng .                " GI Quantity
            gs_final-erdat3 =  gs_it2-erdat.                "gi date
          ENDIF.
          APPEND gs_final TO gt_final."append so delivery and invoice
        ENDIF.
        IF gs_vbfa-vbtyp_n = 'M'.                                           " so with only invoice no delivery

          READ TABLE gt_vbrp INTO gs_vbrp WITH KEY  aubel = gs_vbfa-vbelv .
          IF sy-subrc = 0.

            READ TABLE gt_final INTO gs_final WITH KEY vbeln_i = gs_vbrp-vbeln.     " check if invoice already added in gt_final
            IF sy-subrc <> 0.
              gs_final-vbeln_i = gs_vbrp-vbeln.       " Invoice number
*             gi  detail
              READ TABLE gt_vbfa2 INTO gs_vbfa1 WITH KEY  vbelv = gs_vbfa-vbelv vbtyp_n = 'R'.
              IF sy-subrc = 0.

                READ TABLE gt_it2 INTO gs_it2 WITH KEY vbelv = gs_vbfa1-vbelv.
                gs_final-rfmng1 =  gs_it2-rfmng .                " GI Quantity
                gs_final-erdat3 = gs_vbfa-erdat.
              ENDIF.

              READ TABLE gt_vbrk INTO gs_vbrk WITH KEY vbeln = gs_vbrp-vbeln.
              IF sy-subrc = 0.
                gs_final-erdat1 = gs_vbrk-fkdat.                  "Invoice date if only order nd invoice ,no delivery
              ENDIF.

              READ TABLE gt_it3 INTO gs_it3 WITH KEY vbeln = gs_final-vbeln_i.
              IF sy-subrc = 0.
                gs_final-netwr1   = gs_it3-netwr.                 " Invoice Value.
                gs_final-mwsbp1   = gs_it3-mwsbp.                 " Invoice Tax Amount
                gs_final-fkimg    = gs_it3-fkimg.                 " Invoice Quantity  """"FKIMG==RFMNG
              ENDIF.

              APPEND gs_final TO gt_final.
            ENDIF.
          ENDIF.
        ENDIF.
        CLEAR : gs_vbfa , gs_vbrp , gs_likp.
      ENDLOOP.

      IF lv_flg IS INITIAL.             " so with no delivry or invoice
        APPEND gs_final TO gt_final.
      ENDIF.


    ELSEIF gs_vbak-vbtyp = 'H'. "H==RETURN
      lv_flg = 'X'.
      LOOP AT gt_vbfa INTO gs_vbfa WHERE vbelv = gs_vbap-vbeln.
        IF vbfa-vbtyp_n = 'T'.

          READ TABLE gt_likp INTO gs_likp WITH KEY vbeln = gs_vbfa-vbeln .
          IF sy-subrc = 0.
            gs_final-vbeln_d = gs_vbfa-vbeln.    "delivery number

            READ TABLE gt_it1 INTO gs_it1 WITH KEY vbeln = gs_final-vbeln_d .  "  BINARY SEARCH.
            IF sy-subrc = 0 AND gs_it1-lfimg IS NOT INITIAL .
              gs_final-erdat   = gs_vbfa-erdat.                " Delivery date
              gs_final-lfimg   = gs_it1-lfimg.                 " Delivery Quantity
            ENDIF.

            READ TABLE gt_vbrp INTO gs_vbrp WITH KEY vgbel = gs_likp-vbeln  BINARY SEARCH. "O==CREDIT MEMO
            IF sy-subrc = 0.
              IF gs_vbfa-vbtyp_n = 'O' .
                gs_final-vbeln_i   = gs_vbfa-vbeln.  "Invoice No "
              ENDIF.
            ENDIF.

            READ TABLE gt_vbrk INTO gs_vbrk WITH KEY vbeln = gs_vbrp-vbeln.
            IF sy-subrc = 0.
              gs_final-erdat1 = gs_vbrk-fkdat. " invoice date
            ENDIF.
**************************** invoice details
            READ TABLE gt_it3 INTO gs_it3 WITH KEY vbeln = gs_final-vbeln_i."gs_vbfa-vbeln.
            IF sy-subrc = 0.
              gs_final-netwr1   = gs_it3-netwr.                 " Invoice Value.
              gs_final-mwsbp1   = gs_it3-mwsbp.                 " Invoice Tax Amount
              gs_final-fkimg    = gs_it3-fkimg.                 " Invoice Quantity  """"FKIMG==RFMNG
            ENDIF.

          ENDIF.

          READ TABLE gt_vbfa2 INTO gs_vbfa2 WITH KEY  vbelv = gs_vbfa-vbelv vbtyp_n = 'R'.
          IF sy-subrc = 0.

            READ TABLE gt_it2 INTO gs_it2 WITH KEY vbelv = gs_vbfa2-vbelv.
            gs_final-rfmng1 =  gs_it2-rfmng .                " GI Quantity
            gs_final-erdat3 =  gs_vbfa-erdat.
          ENDIF.
          IF lv_flg IS INITIAL.             " so with return delivery and invoice delivry or invoice
            APPEND gs_final TO gt_final.
          ENDIF.
        ENDIF.
      ENDLOOP.
    ENDIF.
    CLEAR: gs_final , gs_it1 , gs_it2, gs_it , gs_it3, gs_vbak , gs_vbap, gs_vbuk , gs_lips , gs_kna1 ,
          gs_tkukt , gs_adrc ,gs_vbfa , gs_vbrk ,gs_vbrp.
  ENDLOOP.

*&---------------------------------------------------------------------*
*&      Form  FILL_FINAL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
  gs_layout-zebra = 'X'.
  gs_layout-min_linesize = 255.
  gs_layout-max_linesize = 1020.
  gs_layout-colwidth_optimize = 'X'.

  gs_fieldcat-fieldname = 'VBELN'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'SALES DOCUMENT NUMBER '.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'KWMENG'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'ORDER  QUANTITY '.
  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'KBMENG'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'COMMITTED  QUANTITY '.
  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.


  gs_fieldcat-fieldname = 'AUDAT'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'SALES ORDER DATE '.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'WERKS'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'SITE'.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'NETWR'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'SALES ORDER VALUE'.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'MWSBP'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'SALES ORDER TAX AMOUNT'.
  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'KUNNR'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'CUSTOMER NUMBER '.
  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.


  gs_fieldcat-fieldname = 'AUART'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'SALES DOCUMENT TYPE '.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'BSTNK'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'CUSTOMER PURCHASE ORDER NUMBER '.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.


  gs_fieldcat-fieldname = 'CMGST'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'RELEASED BY FINANCE'.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.


  gs_fieldcat-fieldname = 'NAME1'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'NAME'.
  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'SORT1'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'MOBILE NUMBER'.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'CITY1'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'CITY'.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'POST_CODE1'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'POSTAL NUMBER'.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'STR_SUPPL1'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'STREET2'.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'STR_SUPPL2'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'STREET3'.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'VBELN_D'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'DELIVERY NUMBER'.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'ERDAT'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'DELIVERY DATE'.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.


  gs_fieldcat-fieldname = 'ERDAT1'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'INVOICE DATE'.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'VBELN_I'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'INVOICE NUMBER'.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'RFMNG1'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'G I QUANTITY'.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'ERDAT3'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'G I DATE'.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'ERDAT1'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'INVOICE DATE'.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.


  gs_fieldcat-fieldname = 'NETWR1'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'INVOICE VALUE'.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'MWSBP1'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'INVOICE TAX AMOUNT'.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'FKIMG'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'INVOICE QUANTITY'.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'VTEXT'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'CUSTOMER CLASSIFICATION'.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'LFIMG'.
  gs_fieldcat-tabname = 'GT_FINAL'.
  gs_fieldcat-seltext_m = 'DELIVERY QUANTITY'.

  APPEND gs_fieldcat TO gt_fieldcat.
  CLEAR gs_fieldcat.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program = 'ZPROOF_NEW_FETCH_DATA'
      i_grid_title       = 'DETAILS'
      is_layout          = gs_layout
      it_fieldcat        = gt_fieldcat
    TABLES
      t_outtab           = gt_final
    EXCEPTIONS
      program_error      = 1
      OTHERS             = 2.
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.

Read only

Former Member
0 Likes
2,617

Hi,

Its simple Use AT NEW keyword or AT END Keyword.

Regards

Ajit

Read only

0 Likes
2,617

didn't work .suggest me any other solution.

Read only

Former Member
0 Likes
2,617

Hi Dular,

Check this Code..

TYPES: BEGIN OF ty_itab,

        vbeln TYPE vbak-vbeln,

        c_qty TYPE kwmeng,

        site  TYPE i,

        ord_qty TYPE kwmeng,

        ord_val TYPE vbap-zwert,

        del_qty TYPE kwmeng,

        END OF ty_itab.

DATA: t_final TYPE STANDARD TABLE OF ty_itab,

      t_temp  TYPE STANDARD TABLE OF ty_itab.

FIELD-SYMBOLS : <fs_final> TYPE ty_itab,

                <fs_temp>  TYPE ty_itab.

APPEND INITIAL LINE TO t_final ASSIGNING <fs_final>.

IF <fs_final> IS ASSIGNED.

  MOVE :     '15004037'    TO <fs_final>-vbeln,

             5             TO <fs_final>-c_qty,

             4871          TO <fs_final>-site,

             5             TO <fs_final>-ord_qty,

             660           TO <fs_final>-ord_val,

             3             TO <fs_final>-del_qty.

ENDIF.

UNASSIGN <fs_final>.

APPEND INITIAL LINE TO t_final ASSIGNING <fs_final>.

IF <fs_final> IS ASSIGNED.

  MOVE :     '15004037'    TO <fs_final>-vbeln,

             5             TO <fs_final>-c_qty,

             4871          TO <fs_final>-site,

             5             TO <fs_final>-ord_qty,

             660           TO <fs_final>-ord_val,

             2             TO <fs_final>-del_qty.

ENDIF.

UNASSIGN <fs_final>.

LOOP AT t_final ASSIGNING <fs_final>.

  READ TABLE t_temp ASSIGNING <fs_temp> WITH KEY vbeln = <fs_final>-vbeln

                                                  c_qty = <fs_final>-c_qty

                                                   site = <fs_final>-site

                                                ord_qty = <fs_final>-ord_qty

                                                ord_val = <fs_final>-ord_val.

  IF <fs_temp> IS ASSIGNED AND <fs_temp>-del_qty NE <fs_final>-del_qty.

    CLEAR : <fs_final>-c_qty,   <fs_final>-site,

           <fs_final>-ord_qty, <fs_final>-ord_val.

  ELSE.

    APPEND <fs_final> TO t_temp[].

  ENDIF.

  UNASSIGN <fs_temp>.

ENDLOOP.

UNASSIGN <fs_final>.

CLEAR t_temp[].

SKR

Read only

Former Member
0 Likes
2,616

Hi Sharma,

You can easily achieve that.

For every duplicate entry, every field except the first and last field should be cleared right?

Just follow this logic. You need two work area wa_dat1 to store current value and wa_tmp to store previous value.

sort it_dat1 by matnr.  " Sort by preferably the first field.

clear : wa_dat1, wa_tmp.
loop at it_dat1 into wa_dat1.
   if wa_tmp = wa_dat1.

* if you dont want the entire row to be identical, but just the initial fields, give this condition

* if wa_tmp-matnr = wa_dat1-matnr AND wa_tmp-fld1 = wa_dat1-fld1 AND wa_tmp-fld2 = wa_dat1-fld2 AND wa_tmp-fld3 = wa_dat1-fld3 .
     clear : wa_dat1-fld1, wa_dat1-fld2, wa_dat1-fld3.
     modify it_dat1 from wa_dat1 TRANSPORTING fld1 fld2 fld3.
   else.
     wa_tmp = wa_dat1.
   endif.
     clear wa_dat1.
endloop.

Read only

0 Likes
2,616

Thanks a ton.

Read only

former_member209120
Active Contributor
0 Likes
2,616

Hi Dularkumar Sharma

You can try like this

TYPES: BEGIN OF ty_final,
         vbeln   TYPE vbak-vbeln,
         c_qty   TYPE kwmeng,
         site    TYPE i,
         ord_qty TYPE kwmeng,
         ord_val TYPE vbap-zwert,
         del_qty TYPE kwmeng,
         END OF ty_final.


DATA: it_final TYPE TABLE OF ty_final,
       it_final_1 TYPE TABLE OF ty_final,
       wa_final TYPE ty_final.

Data : flag type C.

Perform internal_table.

Loop at it_final into wa_final.
clear flag.

at new  vbeln.
flag = 'X'.
endat.

if flag is INITIAL.
clear : wa_final-c_qty,
         wa_final-site,
         wa_final-ord_qty,
         wa_final-ord_val.
endif.

append wa_final to it_final_1.
clear wa_final.

endloop.

clear wa_final.

Loop at it_final_1 into wa_final.

write : / wa_final-vbeln,
           wa_final-c_qty,
           wa_final-site,
           wa_final-ord_qty,
           wa_final-ord_val,
           wa_final-del_qty.
endloop.


*&---------------------------------------------------------------------*
*&      Form  INTERNAL_TABLE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM internal_table .

   PERFORM wa_it USING :

  '15004037'  '5' '4871' '5' '660' '3',
  '15004037'  '5' '4871' '5' '660' '2'.

ENDFORM.                    " INTERNAL_TABLE

*&---------------------------------------------------------------------*
*&      Form  WA_IT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_ENDFORM  text
*----------------------------------------------------------------------*
FORM wa_it  USING    v_vbeln   TYPE any
                      v_c_qty   TYPE any
                      v_site    TYPE any
                      v_ord_qty TYPE any
                      v_ord_val TYPE any
                      v_del_qty TYPE any.



wa_final-vbeln   = v_vbeln.
wa_final-c_qty   = v_c_qty.
wa_final-site    = v_site.
wa_final-ord_qty = v_ord_qty.
wa_final-ord_val = v_ord_val.
wa_final-del_qty = v_del_qty.
APPEND wa_final TO it_final.
CLEAR wa_final.


ENDFORM.                    " WA_IT


Read only

Former Member
0 Likes
2,616

Hi Sharma , 

just while filling the final table ,

  write this logic.

  ls_final-so num qty = wa-so num qty .

   AT new so num qty .

     ls_final-commited qty = wa-commited qty .

     ls_final-site = wa-site .

     ls_final-order qty = wa-order qty .

END AT .

   ls_final-delivery qty = wa-delivery qty .

append ls_final to lt_final .

simple.. this should work .

let me know if this does'nt work

Regrads ,

Shiv

Read only

0 Likes
2,616

Sorry to say I t didn't work.

Read only

0 Likes
2,616

Whether you checked all the above mentioned codes?

SKR

Read only

0 Likes
2,616

YA DIDN'T WORK.

Read only

Former Member
0 Likes
2,616

TRY THIS ONE:

LOOP AT INTERNAL TABLE INTO WORKAREA.

IF VARIABLE EQ WORKAREA-FIELD.

     CLEAR ==> CLEAR FIELDS WHIC YOU DONT WANT IN DISPLAY.

ENDIF.

VARIABLE  = WORKAREA-FIELD.

APPEND TO ANY OTHER INTERNAL TABLE.

ENDLOOP.