2013 Nov 05 2:41 AM
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.
| |
2013 Nov 05 3:14 AM
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
2013 Nov 05 5:06 AM
2013 Nov 05 5:20 AM
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
2013 Nov 05 4:15 AM
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 .
2013 Nov 05 5:06 AM
*&---------------------------------------------------------------------*
*& 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.
2013 Nov 05 4:29 AM
Hi,
Its simple Use AT NEW keyword or AT END Keyword.
Regards
Ajit
2013 Nov 11 11:07 AM
2013 Nov 05 5:07 AM
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
2013 Nov 05 6:04 AM
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.
2013 Nov 12 8:32 AM
2013 Nov 05 7:12 AM
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
2013 Nov 05 7:47 AM
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
2013 Nov 11 10:56 AM
2013 Nov 11 11:13 AM
2013 Nov 11 12:04 PM
2013 Nov 11 12:13 PM
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.