Sunteți pe pagina 1din 11

REPORT ZSDR30I04 No standard page heading line-count 90 line-size 132 MESSAGE-ID ZGEW .

************************************************************************ * Purpose: * This report list out sales order details * * Input * - None * * * Output: * The report will display the sales order based on input criteria * * * Reference transaction code: va03. * * * Processing: * The detail retrieved based on table VBAK,VBAP,VBEP,VBUK,KNA1,LIPS, * VBKD and MBEW. * * * SAP Function: * -None * * Programs Called: * -None * ************************************************************************ * Modification Log: * * Date Programmer Description * ----------------------* 10Apr2007 Bryan Liu Drafted release 0.1 * 27DEC2007 WILSON LAU release 0.2 ************************************************************************ INCLUDE Z_HEADER_FOOTER. TABLES: VBAK,VBAP,VBEP,VBUK,KNA1,LIPS,VBKD,MBEW, TVAGT. TYPE-POOLS: SLIS. TYPES: BEGIN OF T_RESULT_DATA, EDATU TYPE VBEP-EDATU, MBDAT TYPE VBEP-MBDAT, VBELN TYPE VBAK-VBELN, VKGRP TYPE VBAK-VKGRP, VSBED TYPE VBAK-VSBED, BSTNK TYPE VBAK-BSTNK, BSTDK TYPE VBAK-BSTDK, KUNNR TYPE VBAK-KUNNR, NAME1 TYPE KNA1-NAME1, MATNR TYPE VBAP-MATNR, ARKTX TYPE VBAP-ARKTX, KDMAT TYPE VBAP-KDMAT, KWMENG TYPE VBAP-KWMENG, VRKME TYPE VBAP-VRKME, KBMENG TYPE VBAP-KBMENG, "Schedule line date "Material availability date "Sales Document "Sales group "Shipping conditions "Customer purchase order number "Customer purchase order date "Sold-to party "Customer Name 1 "Material Number "Short Text for Sales Order Item "Material Number Used by Customer "Cumul. order qty in sales units "Sales unit "Cumul. conf. qty in sales unit

NETPR TYPE VBAP-NETPR, "Net price WAERK TYPE VBAP-WAERK, "SD document currency KPEIN TYPE VBAP-KPEIN, "Condition pricing unit NETWR TYPE VBAP-NETWR, "Net value KURSK TYPE VBKD-KURSK, "Exchange rate BRGEW TYPE VBAP-BRGEW, "Gross Weight of the Item GEWEI TYPE VBAP-GEWEI, "Weight Unit NTGEW TYPE VBAP-NTGEW, "Net Weight of the Item VOLUM TYPE VBAP-VOLUM, "Volume of the item VOLEH TYPE VBAP-VOLEH, "Volume unit ERDAT TYPE VBAK-ERDAT, "Created on AEDAT TYPE VBAK-AEDAT, "Changed on AUART TYPE VBAK-AUART, "Sales document type VERPR TYPE MBEW-VERPR, "Moving Price PEINH TYPE MBEW-PEINH, "Price Unit GBSTK TYPE VBUK-GBSTK, "Overall processing status POSNR TYPE VBAP-POSNR, "Sales Document item BEZEI LIKE TVAGT-BEZEI, MAV_COST TYPE MBEW-VERPR, MAV_AMT TYPE MBEW-VERPR, AMT_HKD TYPE VBAP-NETWR, OPEN_QTY TYPE VBAP-KWMENG, OPEN_QTY_AMT TYPE VBAP-NETWR, NET_PRICE_HKD TYPE VBAP-NETPR, "Net price (HKD) END OF T_RESULT_DATA. DATA: DATA: DATA: DATA: DATA: GT_RESULT_DATA TYPE T_RESULT_DATA OCCURS 0 WITH HEADER LINE. WA_ALV_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE. ALV_COL_COUNTER TYPE I. GV_DEL_QTY TYPE LIPS-LFIMG. GV_OPEN_QTY TYPE VBAP-KWMENG.

SELECTION-SCREEN BEGIN OF BLOCK PO with frame title text-002. SELECT-OPTIONS: S_KUNNR FOR VBAK-KUNNR, S_MATNR FOR VBAP-MATNR, S_KDMAT FOR VBAP-KDMAT, S_BSTNK FOR VBAK-BSTNK, S_BSTDK FOR VBAK-BSTDK, S_EDATU FOR VBEP-EDATU, S_MBDAT FOR VBEP-MBDAT, S_VBELN FOR VBAK-VBELN, S_VKGRP FOR VBAK-VKGRP, S_VSBED FOR VBAK-VSBED, S_ERDAT FOR VBAK-ERDAT, S_AEDAT FOR VBAK-AEDAT, S_AUART FOR VBAK-AUART, S_GBSTK FOR VBUK-GBSTK. SELECTION-SCREEN SKIP. PARAMETERS: P_OPEN AS CHECKBOX DEFAULT 'X'. SELECTION-SCREEN END OF BLOCK PO. * initialization declare. INITIALIZATION. ALV_COL_COUNTER = 0. START-OF-SELECTION. SELECT T3~EDATU T3~MBDAT T1~VBELN T1~VKGRP T1~VSBED

* *

T1~BSTNK T1~BSTDK T1~KUNNR T5~NAME1 T2~MATNR T2~ARKTX T2~KDMAT T2~KWMENG T2~VRKME T2~KBMENG T2~NETPR T2~WAERK T2~KPEIN T2~NETWR T7~KURSK T2~BRGEW T2~GEWEI T2~NTGEW T2~VOLUM T2~VOLEH T1~ERDAT T1~AEDAT T1~AUART T6~VERPR T6~PEINH T4~GBSTK T2~POSNR T9~BEZEI FROM VBAK AS T1 INNER JOIN VBAP AS T2 ON T1~VBELN = T2~VBELN INNER JOIN VBEP AS T3 ON T2~VBELN = T3~VBELN AND T2~POSNR = T3~POSNR AND T3~ETENR = 1 INNER JOIN VBUK AS T4 ON T1~VBELN = T4~VBELN INNER JOIN KNA1 AS T5 ON T1~KUNNR = T5~KUNNR INNER JOIN MBEW AS T6 ON T2~MATNR = T6~MATNR AND T2~WERKS = T6~BWKEY INNER JOIN VBKD AS T7 ON T2~VBELN = T7~VBELN AND T7~POSNR = 'X' T2~POSNR = T7~POSNR INNER JOIN TVAG AS T8 ON T2~ABGRU = T8~ABGRU INNER JOIN TVAGT AS T9 ON T2~ABGRU = T9~ABGRU AND T9~SPRAS = 'EN' INTO TABLE GT_RESULT_DATA WHERE T1~KUNNR IN S_KUNNR AND T2~MATNR IN S_MATNR AND T2~KDMAT IN S_KDMAT AND T1~BSTNK IN S_BSTNK AND T1~BSTDK IN S_BSTDK AND T3~EDATU IN S_EDATU AND T3~MBDAT IN S_MBDAT AND T1~VBELN IN S_VBELN AND T1~VKGRP IN S_VKGRP AND T1~VSBED IN S_VSBED AND T1~ERDAT IN S_ERDAT AND T1~AEDAT IN S_AEDAT AND T1~AUART IN S_AUART AND T4~GBSTK IN S_GBSTK. IF SY-SUBRC = 0. LOOP AT GT_RESULT_DATA. GT_RESULT_DATA-MAV_COST = ( GT_RESULT_DATA-VERPR / GT_RESULT_DATA-PEINH ). GT_RESULT_DATA-MAV_AMT = ( GT_RESULT_DATA-VERPR / GT_RESULT_DATA-PEINH * GT_RESULT_DATA-KWMENG ). GT_RESULT_DATA-AMT_HKD = ( GT_RESULT_DATA-NETWR * GT_RESULT_DATA-KURSK ). PERFORM GET_DEL_QTY USING GT_RESULT_DATA-VBELN GT_RESULT_DATA-POSNR. GV_OPEN_QTY = ( GT_RESULT_DATA-KWMENG - GV_DEL_QTY ). IF P_OPEN = 'X' AND GV_OPEN_QTY <= 0. DELETE GT_RESULT_DATA. ELSE. GT_RESULT_DATA-OPEN_QTY = GV_OPEN_QTY. GT_RESULT_DATA-OPEN_QTY_AMT = ( GT_RESULT_DATA-NETPR / GT_RESULT_DATA-KPEIN *

GT_RESULT_DATA-KURSK * GT_RESULT_DATA-OPEN_QTY ). GT_RESULT_DATA-NET_PRICE_HKD = ( GT_RESULT_DATA-NETPR / GT_RESULT_DATA-KPEIN * GT_RESULT_DATA-KURSK ). MODIFY GT_RESULT_DATA. ENDIF. ENDLOOP. * * Sort by First data, Sales order SORT GT_RESULT_DATA BY VBELN. Generate ALV GRID Format PERFORM DISPLAY_ALV_GRID. ELSE. MESSAGE S038. ENDIF.

END-OF-SELECTION. *&---------------------------------------------------------------------* *& Form DISPLAY_ALV_GRID *&---------------------------------------------------------------------* * Generate Report with ALV Format *----------------------------------------------------------------------* FORM DISPLAY_ALV_GRID. PERFORM BUILD_FIELDCATALOG. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = SY-REPID I_GRID_TITLE = 'Sales order details list' IT_FIELDCAT = WA_ALV_FIELDCAT[] TABLES T_OUTTAB = GT_RESULT_DATA. IF SY-SUBRC <> 0. WRITE: 'SY-SUBRC: ', SY-SUBRC . ENDIF. ENDFORM. " DISPLAY_ALV_GRID *&---------------------------------------------------------------------* *& Form BUILD_FIELDCATALOG *&---------------------------------------------------------------------* * Build Fieldcatalog for ALV Report *----------------------------------------------------------------------* FORM BUILD_FIELDCATALOG. WA_ALV_FIELDCAT-fieldname = 'EDATU'. WA_ALV_FIELDCAT-seltext_m = 'First Date'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 10. * WA_ALV_FIELDCAT-emphasize = 'X'. * WA_ALV_FIELDCAT-key = 'X'. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'MBDAT'.

WA_ALV_FIELDCAT-seltext_m = 'Mat. Avail'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 10. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'VBELN'. WA_ALV_FIELDCAT-seltext_m = 'Sales Doc'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 10. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'POSNR'. WA_ALV_FIELDCAT-seltext_m = 'Item'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 5. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'VKGRP'. WA_ALV_FIELDCAT-seltext_m = 'SGrp'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 4. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'VSBED'. WA_ALV_FIELDCAT-seltext_m = 'Shipping conditions'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 15. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'BSTNK'. WA_ALV_FIELDCAT-seltext_m = 'Purchase order no.'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 20. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'BSTDK'. WA_ALV_FIELDCAT-seltext_m = 'PO date'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 10. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'KUNNR'. WA_ALV_FIELDCAT-seltext_m = 'Sold-to pt'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 8. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT.

ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'NAME1'. WA_ALV_FIELDCAT-seltext_m = 'Sold-to party'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 25. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'MATNR'. WA_ALV_FIELDCAT-seltext_m = 'Material'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 20. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'ARKTX'. WA_ALV_FIELDCAT-seltext_m = 'Description'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 30. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'KDMAT'. WA_ALV_FIELDCAT-seltext_m = 'Customer Material Number'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 20. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'KWMENG'. WA_ALV_FIELDCAT-seltext_m = 'Order quantity'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 12. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'VRKME'. WA_ALV_FIELDCAT-seltext_m = 'SU'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 3. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'KBMENG'. WA_ALV_FIELDCAT-seltext_m = 'Cumul.confirmed qtyy'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 18. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'VRKME'.

WA_ALV_FIELDCAT-seltext_m = 'SU'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 3. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'NETPR'. WA_ALV_FIELDCAT-seltext_m = 'Net price'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 12. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'WAERK'. WA_ALV_FIELDCAT-seltext_m = 'Curr.'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 4. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'KPEIN'. WA_ALV_FIELDCAT-seltext_m = 'Per'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 5. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'NETWR'. WA_ALV_FIELDCAT-seltext_m = 'Net Value'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 12. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'WAERK'. WA_ALV_FIELDCAT-seltext_m = 'Curr.'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 4. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'NET_PRICE_HKD'. WA_ALV_FIELDCAT-seltext_m = 'Net price(HKD)'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 12. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'AMT_HKD'. WA_ALV_FIELDCAT-seltext_m = 'Amount(HKD)'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 12. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT.

ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'KURSK'. WA_ALV_FIELDCAT-seltext_m = 'Ex. Rate'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 10. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'BRGEW'. WA_ALV_FIELDCAT-seltext_m = 'Gross weight'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 12. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'GEWEI'. WA_ALV_FIELDCAT-seltext_m = 'Un.'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 4. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'NTGEW'. WA_ALV_FIELDCAT-seltext_m = 'Net weight'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 12. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'GEWEI'. WA_ALV_FIELDCAT-seltext_m = 'Un.'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 4. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'VOLUM'. WA_ALV_FIELDCAT-seltext_m = 'Volume'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 12. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'VOLEH'. WA_ALV_FIELDCAT-seltext_m = 'VUn'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 5. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'ERDAT'.

WA_ALV_FIELDCAT-seltext_m = 'Created on'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 10. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'AEDAT'. WA_ALV_FIELDCAT-seltext_m = 'Chngd on'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 10. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'AUART'. WA_ALV_FIELDCAT-seltext_m = 'Sales Document Type'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 10. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'MAV_COST'. WA_ALV_FIELDCAT-seltext_m = 'Cost(MAV)'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 10. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'MAV_AMT'. WA_ALV_FIELDCAT-seltext_m = 'MAV Amount(HKD)'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 15. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'GBSTK'. WA_ALV_FIELDCAT-seltext_m = 'OS'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 3. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'OPEN_QTY'. WA_ALV_FIELDCAT-seltext_m = 'Open quantity'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 12. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'OPEN_QTY_AMT'. WA_ALV_FIELDCAT-seltext_m = 'Open qty. amt(HKD)'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 17. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT.

ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. WA_ALV_FIELDCAT-fieldname = 'BEZEI'. WA_ALV_FIELDCAT-seltext_m = 'Reject Reason'. WA_ALV_FIELDCAT-col_pos = ALV_COL_COUNTER. WA_ALV_FIELDCAT-outputlen = 30. WA_ALV_FIELDCAT-key = 'X'. APPEND WA_ALV_FIELDCAT to WA_ALV_FIELDCAT. ALV_COL_COUNTER = ALV_COL_COUNTER + 1. CLEAR WA_ALV_FIELDCAT. ENDFORM. " BUILD_FIELDCATALOG

*&--------------------------------------------------------------------* *& Form GET_DEL_QTY *&--------------------------------------------------------------------* * Purpose: get the delivery quantity *---------------------------------------------------------------------* FORM GET_DEL_QTY USING P_VBELN TYPE VBAP-VBELN P_POSNR TYPE VBAP-POSNR. CLEAR GV_DEL_QTY. DATA: BEGIN OF LT_DEL_DATA OCCURS 0, VBELN TYPE LIPS-VBELN, POSNR TYPE LIPS-POSNR, LFIMG TYPE LIPS-LFIMG, END OF LT_DEL_DATA. DATA: LV_REV_FLAG. SELECT VBELN POSNR LFIMG FROM LIPS INTO TABLE LT_DEL_DATA WHERE VGBEL = P_VBELN AND VGPOS = P_POSNR. LOOP AT LT_DEL_DATA. PERFORM IS_REV_DEL USING LT_DEL_DATA-VBELN LT_DEL_DATA-POSNR CHANGING LV_REV_FLAG. IF LV_REV_FLAG = ''. GV_DEL_QTY = GV_DEL_QTY + LT_DEL_DATA-LFIMG. ENDIF. ENDLOOP. ENDFORM. "GET_DEL_QTY

*&--------------------------------------------------------------------* *& Form IS_REV_DEL *&--------------------------------------------------------------------* * Purpose: Check whether the delivery reversed. *---------------------------------------------------------------------* FORM IS_REV_DEL USING P_VBELV TYPE VBFA-VBELV P_POSNV TYPE VBFA-POSNV CHANGING P_REV_FLAG. P_REV_FLAG = 'X'.

DATA: BEGIN OF LT_DOC_FLOW OCCURS 0, ERDAT TYPE VBFA-ERDAT, ERZET TYPE VBFA-ERZET, VBTYP_N TYPE VBFA-VBTYP_N, END OF LT_DOC_FLOW. SELECT ERDAT ERZET VBTYP_N FROM VBFA INTO TABLE LT_DOC_FLOW WHERE VBELV = P_VBELV AND POSNV = P_POSNV AND ( VBTYP_N = 'R' OR VBTYP_N = 'h' ). IF SY-SUBRC = 0. SORT LT_DOC_FLOW BY ERDAT DESCENDING ERZET DESCENDING. READ TABLE LT_DOC_FLOW INDEX 1. IF LT_DOC_FLOW-VBTYP_N = 'h'. P_REV_FLAG = 'X'. ELSE. P_REV_FLAG = ''. ENDIF. ENDIF. ENDFORM. "IS_REV_DEL

S-ar putea să vă placă și