销售单据条件价格明细表
生活随笔
收集整理的這篇文章主要介紹了
销售单据条件价格明细表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
REPORT?ZSDR_DDFYCX?? NO? STANDARD? PAGE?HEADING .
TABLES :VBAK ,
???????LIKP ,
???????VBUK ,
???????LIPS .
*---定義結構---For?Main?ALV?OutPut-------------------------------------*
*TYPES:?BEGIN?OF?TY_ITAB,
**?????????CHECK?TYPE?FLAG,
**?????????ICONID?TYPE?ICON-ID,
*?????????VKORG?TYPE?VBAK-VKORG,?"銷售組織
*?????????KUNNR?TYPE?VBAK-KUNNR,?"售達方
*?????????NAME1?TYPE?KNA1-NAME1,?"客戶名稱
*?????????PERNR?TYPE?KNVP-PERNR,?"業務員編號
*?????????CNAME?TYPE?PA0002-CNAME,?"業務員
*?????????DDYF??TYPE?KONV-KBETR,?"代墊運費
*?????????DDZX??TYPE?KONV-KBETR,?"代墊裝卸費
*?????????HEJI??TYPE?KONV-KBETR,?"合計
**???????IT_CELL_TYPES?TYPE?SALV_T_INT4_COLUMN,
**???????IT_CELL_COLOR?TYPE?LVC_T_SCOL,
*???????END???OF?TY_ITAB.
*DATA:?GT_ITAB?TYPE?STANDARD?TABLE?OF?TY_ITAB,
*??????GW_ITAB?TYPE?TY_ITAB.
*FIELD-SYMBOLS?<ITAB>?TYPE?TY_ITAB.
TYPES :? BEGIN? OF?TY_DETAL ,
????????? CHECK????? TYPE?FLAG ,???????? "選擇
?????????VKORG????? TYPE?VBAK -VKORG ,?? "銷售組織
?????????KUNNR????? TYPE?VBAK -KUNNR ,?? "售達方
?????????NAME1????? TYPE?KNA1 -NAME1 ,?? "客戶名稱
?????????STCEG????? TYPE?KNA1 -STCEG ,?? "增值稅編碼
?????????PERNR????? TYPE?KNVP -PERNR ,?? "業務員編號
?????????CNAME????? TYPE?PA0002 -CNAME ,? "業務員
?????????VBELN????? TYPE?VBAK -VBELN ,?? "銷售訂單
?????????POSNR????? TYPE?VBAP -POSNR ,?? "行號
?????????WAERK????? TYPE?VBAK -WAERK ,?? "貨幣
?????????ERDAT????? TYPE?VBAK -ERDAT ,?? "創建日期
?????????AUDAT????? TYPE?VBAK -AUDAT ,?? "單據日期
?????????MATNR????? TYPE?VBAP -MATNR ,?? "物料編碼
?????????ARKTX????? TYPE?VBAP -ARKTX ,?? "物料描述
?????????LGORT????? TYPE?VBAP -LGORT ,?? "庫位
?????????LGOBE????? TYPE?T001L -LGOBE ,? "描述
?????????VRKME????? TYPE?VBAP -VRKME ,?? "銷售單位
?????????KWMENG???? TYPE?VBAP -KWMENG ,? "訂單重量
?????????VBELN_VL?? TYPE?LIPS -VBELN ,?? "交貨單
?????????POSNR_VL?? TYPE?LIPS -POSNR ,?? "行號
?????????WADAT_IST? TYPE?LIKP -WADAT_IST ,? "交貨日期
?????????LFIMG????? TYPE?LIPS -LFIMG ,?? "交貨重量
?????????VBELN_F??? TYPE?VBRP -VBELN ,?? "銷售開票
?????????POSNR_F??? TYPE?VBRP -POSNR ,?? "銷售開票
?????????FKDAT????? TYPE?VBRK -FKDAT ,?? "開票日期
?????????RFBSK????? TYPE?VBRK -RFBSK ,?? "過賬狀態
?????????Z005?????? TYPE?KONV -KBETR ,?? "代墊裝卸費單價
?????????Z003?????? TYPE?KONV -KBETR ,?? "裝卸費單價
?????????KF00?????? TYPE?KONV -KBETR ,?? "代墊運費單價
?????????KF01?????? TYPE?KONV -KBETR ,?? "運費(一票制)單價
?????????DDZX?????? TYPE?KONV -KBETR ,?? "代墊裝卸費
?????????ZXHJ?????? TYPE?KONV -KBETR ,?? "裝卸費
?????????DDYF?????? TYPE?KONV -KBETR ,?? "代墊運費
?????????YFHJ?????? TYPE?KONV -KBETR ,?? "運費
?????????HEJI?????? TYPE?KONV -KBETR ,?? "合計
?????????HXZXT????? TYPE?VBAK -ERDAT ,?? "核銷裝卸費日期
?????????HXZXB????? TYPE?ZFT_KM -ZBEIZ ,? "核銷裝卸費備注
?????????HXYFT????? TYPE?VBAK -ERDAT ,??? "核銷運費日期
?????????HXYFB????? TYPE?ZFT_KM -ZBEIZ ,? "核銷運費備注
?????????HXDDT????? TYPE?VBAK -ERDAT ,??? "代墊裝卸費開票核銷日期
?????????HXDDB????? TYPE?ZFT_KM -ZBEIZ ,? "代墊裝卸費開票核銷備注
?????????HXDOC????? TYPE?BKPF -BELNR ,??? "代墊裝卸費開票核銷憑證
?????????HXBUR????? TYPE?BKPF -BUKRS ,??? "代墊裝卸費開票核銷憑證公司代碼
?????????HXGJR????? TYPE?BKPF -GJAHR ,??? "代墊裝卸費開票核銷憑證年度
?????????FLAG?????? TYPE?ZSD_HXMX -FLAG ,? "是否打印
?????????HANDLE???? TYPE?LIKP -HANDLE ,? "LIKP-VBELN?的世界范圍唯一關鍵字
??????? END??? OF?TY_DETAL .
DATA :?GT_DETAL? TYPE? STANDARD? TABLE? OF?TY_DETAL ,
??????GW_DETAL? TYPE?TY_DETAL .
FIELD-SYMBOLS?<DETAL>? TYPE?TY_DETAL .
DATA :?GT_BAPIRET? TYPE? STANDARD? TABLE? OF?BAPIRET2 ,
??????GW_BAPIRET? TYPE?BAPIRET2 .
*----------------------------------------------------------------------*
*???????CLASS?lcl_main_alv?DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS?LCL_MAIN_ALV? DEFINITION .
?? PUBLIC? SECTION .
???? METHODS :?GENERATE_ALV .
?? PRIVATE? SECTION .
???? DATA :?O_SALV? TYPE? REF? TO?CL_SALV_TABLE .
???? METHODS :
??????SET_PF_STATUS
???????? CHANGING
??????????CO_ALV? TYPE? REF? TO?CL_SALV_TABLE ,
??????SET_LAYOUT
???????? CHANGING
??????????CO_ALV? TYPE? REF? TO?CL_SALV_TABLE ,
??????SET_DISPLAY_SETTING
???????? CHANGING
??????????CO_ALV? TYPE? REF? TO?CL_SALV_TABLE ,
??????SET_COLUMNS
???????? CHANGING
??????????CO_ALV? TYPE? REF? TO?CL_SALV_TABLE ,
??????REFRESH_ALV ,
??????ON_USER_COMMAND? FOR? EVENT?ADDED_FUNCTION? OF?CL_SALV_EVENTS
???????? IMPORTING?E_SALV_FUNCTION ,
??????HANDLE_DOUBLE_CLICK
???????????????????? FOR? EVENT?DOUBLE_CLICK? OF?CL_SALV_EVENTS_TABLE
???????? IMPORTING?ROW?COLUMN ,
??????HANDLE_LINK_CLICK
???????????? FOR? EVENT?LINK_CLICK? OF?CL_SALV_EVENTS_TABLE
???????? IMPORTING
????????????ROW?COLUMN .
ENDCLASS .???????????????????? "lcl_main_alv?DEFINITION
*----------------------------------------------------------------------*
*???????CLASS?lcl_sub_alv?DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
*CLASS?LCL_SUB_ALV?DEFINITION?ABSTRACT.
*??PUBLIC?SECTION.
*????METHODS:GET_SUBDATA?ABSTRACT
*??????IMPORTING?IW_ITAB?TYPE?TY_ITAB.
*
*????METHODS:?GENERATE_ALV?ABSTRACT.
*
*??PROTECTED?SECTION.
*????DATA:?O_SALV?TYPE?REF?TO?CL_SALV_TABLE.
*
*ENDCLASS.????????????????????"lcl_sub_alv?DEFINITION
*CLASS?LCL_DETAL_ALV?DEFINITION?INHERITING?FROM?LCL_SUB_ALV.
*
*??PUBLIC?SECTION.
*????DATA:?T_DETAL??TYPE?STANDARD?TABLE?OF?TY_DETAL,
*??????????LW_DETAL?TYPE?TY_DETAL.
*????METHODS:
*??????GET_SUBDATA??REDEFINITION,
*??????GENERATE_ALV?REDEFINITION.
*
*??PROTECTED?SECTION.
*????METHODS:
*??????HANDLE_LINK_CLICK
*????????????????????FOR?EVENT?LINK_CLICK?OF?CL_SALV_EVENTS_TABLE
*????????IMPORTING?ROW?COLUMN.
*ENDCLASS.
*---------------------------------------------------------------------*
*?選擇屏幕
*---------------------------------------------------------------------*
SELECTION-SCREEN : BEGIN? OF? BLOCK?B1? WITH? FRAME? TITLE? TEXT - 001 .
SELECT-OPTIONS :
??S_VKORG? FOR?VBAK -VKORG?OBLIGATORY? ,
??S_KUNNR? FOR?VBAK -KUNNR ,
??S_VGBEL? FOR?VBAK -VBELN ,
??S_VBELN? FOR?LIKP -VBELN ,
??S_WADAT? FOR?LIKP -WADAT_IST ,
??S_WBSTK? FOR?VBUK -WBSTK ,
??S_LGORT? FOR?LIPS -LGORT .
SELECTION-SCREEN? END? OF? BLOCK?B1 .
SELECTION-SCREEN : BEGIN? OF? BLOCK?B2? WITH? FRAME? TITLE? TEXT - 004 .
PARAMETER? :?P_ZXF? AS? CHECKBOX? DEFAULT? '' .
PARAMETER? :?P_YF? AS? CHECKBOX? DEFAULT? '' .
SELECTION-SCREEN? SKIP? 1 .
PARAMETER? :?P_HXZXF? AS? CHECKBOX? DEFAULT? '' .
PARAMETER? :?P_HXYF? AS? CHECKBOX? DEFAULT? '' .
SELECTION-SCREEN? SKIP? 1 .
PARAMETER? :?P_DDWKP? AS? CHECKBOX? DEFAULT? '' .
PARAMETER? :?P_DDYKP? AS? CHECKBOX? DEFAULT? '' .
SELECTION-SCREEN? END? OF? BLOCK?B2 .
SELECTION-SCREEN? SKIP? .
SELECTION-SCREEN? COMMENT?/1 ( 10 )? TEXT - 005 .
SELECTION-SCREEN? COMMENT?/1 ( 83 )? TEXT - 006 .
SELECTION-SCREEN? COMMENT?/1 ( 83 )? TEXT - 007 .
*&---------------------------------------------------------------------*
*&??????START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION .
?? CALL? FUNCTION? 'SAPGUI_PROGRESS_INDICATOR'
???? EXPORTING
??????PERCENTAGE? =? 100
?????? TEXT??????? =? '正在處理,請稍等......' .
?? PERFORM?GET_DATA .
?? IF?GT_DETAL? IS? NOT? INITIAL .
???? DATA :?LO_MAIN_ALV? TYPE? REF? TO?LCL_MAIN_ALV .
???? CREATE?OBJECT?LO_MAIN_ALV .
????LO_MAIN_ALV ->GENERATE_ALV (? ) .
?? ELSE .
???? MESSAGE? '沒有找到可以顯示的記錄!'? TYPE? 'S'?DISPLAY? LIKE? 'E' .
???? EXIT .
?? ENDIF .
END-OF-SELECTION .
*&---------------------------------------------------------------------*
*&??????Form??GET_DATA
*&---------------------------------------------------------------------*
*???????text
*----------------------------------------------------------------------*
*??-->??p1????????text
*??<--??p2????????text
*----------------------------------------------------------------------*
FORM?GET_DATA? .
?? DATA? :?LW_LIPS? TYPE?LIPS .
?? DATA :LT_VBAK?? LIKE? TABLE? OF?VBAK? WITH? HEADER? LINE ,
???????LT_VBAP?? LIKE? TABLE? OF?VBAP? WITH? HEADER? LINE ,
???????LT_KONV?? LIKE? TABLE? OF?KONV? WITH? HEADER? LINE ,
???????LT_KNA1?? LIKE? TABLE? OF?KNA1? WITH? HEADER? LINE ,
???????LT_T001L? LIKE? TABLE? OF?T001L? WITH? HEADER? LINE ,
???????LT_HXMX?? LIKE? TABLE? OF?ZSD_HXMX? WITH? HEADER? LINE ,
???????LT_TVPOD? LIKE? TABLE? OF?TVPOD? WITH? HEADER? LINE ,
???????LT_TVKO?? LIKE? TABLE? OF?TVKO? WITH? HEADER? LINE ,
???????LT_VBPA?? LIKE? TABLE? OF?VBPA? WITH? HEADER? LINE .
?? "銷售發票明細
?? DATA : BEGIN? OF?LT_VBRP? OCCURS? 0 ,
?????????VBELN? TYPE?VBRP -VBELN ,
?????????POSNR? TYPE?VBRP -POSNR ,
?????????KZWI1? TYPE?VBRP -KZWI1 ,
?????????VRKME? TYPE?VBRP -VRKME ,
?????????FKIMG? TYPE?VBRP -FKIMG ,
?????????AUBEL? TYPE?VBRP -AUBEL ,
?????????AUPOS? TYPE?VBRP -AUPOS ,
?????????VGBEL? TYPE?VBRP -VGBEL ,
?????????VGPOS? TYPE?VBRP -VGPOS ,
?????????KNUMV? TYPE?VBRK -KNUMV ,
?????????SHKZG? TYPE?VBRP -SHKZG ,
?????????FKDAT? TYPE?VBRK -FKDAT ,
?????????KURRF? TYPE?VBRK -KURRF ,? "匯率
?????????NETWR? TYPE?VBAP -NETWR ,
?????????RFBSK? TYPE?VBRK -RFBSK ,
?????????SFAKN? TYPE?VBRK -SFAKN ,
??????? END? OF?LT_VBRP .
?? REFRESH?GT_DETAL? .
?? SELECT?*? FROM?TVKO? INTO? TABLE?LT_TVKO .
?? SELECT?LIKP ~VBELN? AS?VBELN_VL
?????????LIPS ~POSNR? AS?POSNR_VL
?????????LIKP ~WADAT_IST
?????????LIKP ~KUNNR
?????????LIKP ~VKORG
?????????LIPS ~MATNR
?????????LIPS ~ARKTX
?????????LIPS ~LFIMG
?????????LIPS ~VRKME
?????????LIPS ~VGBEL? AS?VBELN
?????????LIPS ~VGPOS? AS?POSNR
???? FROM?LIPS
???????INNER? JOIN?VBUK? ON?VBUK ~VBELN? =?LIPS ~VBELN
???????INNER? JOIN?LIKP? ON?LIKP ~VBELN? =?LIPS ~VBELN
???? INTO?CORRESPONDING? FIELDS? OF? TABLE?GT_DETAL
???? WHERE?LIKP ~VKORG? IN?S_VKORG
?????? AND?LIKP ~KUNNR? IN?S_KUNNR
?????? AND?LIPS ~VGBEL? IN?S_VGBEL
?????? AND?LIKP ~VBELN? IN?S_VBELN
?????? AND?LIKP ~WADAT_IST? IN?S_WADAT
?????? AND?LIPS ~LGORT? IN?S_LGORT
?????? AND?VBUK ~WBSTK? IN?S_WBSTK
?????? AND?VBUK ~VBTYP? =? 'J'
?????? AND?VBUK ~VBOBJ? =? 'L'
?????? AND?LIPS ~LFIMG?>? 0
?????? AND?LIKP ~LFART? =? 'LF' "外向交貨
???? .
?? IF?GT_DETAL[]? IS? NOT? INITIAL .
???? "銷售訂單
???? SELECT?*
?????? FROM?VBAK
?????? INTO? TABLE?LT_VBAK
?????? FOR? ALL?ENTRIES? IN?GT_DETAL
?????? WHERE?VBELN? =?GT_DETAL -VBELN .
???? IF?LT_VBAK[]? IS? NOT? INITIAL .
?????? SELECT?*
???????? FROM?KNA1
???????? INTO? TABLE?LT_KNA1
???????? FOR? ALL?ENTRIES? IN?LT_VBAK
???????? WHERE?KUNNR? =?LT_VBAK -KUNNR .
?????? SELECT?*
???????? FROM?VBPA
???????? INTO? TABLE?LT_VBPA
???????? FOR? ALL?ENTRIES? IN?LT_VBAK
???????? WHERE?VBELN? =?LT_VBAK -VBELN .
?????? SELECT?*
???????? FROM?KONV
???????? INTO? TABLE?LT_KONV
???????? FOR? ALL?ENTRIES? IN?LT_VBAK
???????? WHERE?KNUMV? =?LT_VBAK -KNUMV
?????????? AND?KBETR?<>? 0 .
?????? SELECT?*
???????? FROM?VBAP
???????? INTO? TABLE?LT_VBAP
???????? FOR? ALL?ENTRIES? IN?LT_VBAK
???????? WHERE?VBELN? =?LT_VBAK -VBELN .
?????? IF?LT_VBAP[]? IS? NOT? INITIAL .
???????? SELECT?*
?????????? FROM?T001L
?????????? INTO? TABLE?LT_T001L
?????????? FOR? ALL?ENTRIES? IN?LT_VBAP
?????????? WHERE?LGORT? =?LT_VBAP -LGORT .
?????? ENDIF .
???? ENDIF .
???? "運費/裝卸費核銷明細表
???? SELECT?*
?????? FROM?ZSD_HXMX
?????? INTO? TABLE?LT_HXMX
?????? FOR? ALL?ENTRIES? IN?GT_DETAL
?????? WHERE?VBELN? =?GT_DETAL -VBELN_VL
???????? AND?POSNR? =?GT_DETAL -POSNR_VL .
???? SELECT?*
????? FROM?TVPOD
????? INTO? TABLE?LT_TVPOD
????? FOR? ALL?ENTRIES? IN?GT_DETAL
????? WHERE?HANDLE_LIPS? =?GT_DETAL -HANDLE .
???? "取開票數量金額
???? SELECT
????????VBRK ~KNUMV
????????VBRP ~VBELN
????????VBRP ~POSNR
????????VBRP ~KZWI1
????????VBRP ~VRKME
????????VBRP ~FKIMG
????????VBRP ~AUBEL
????????VBRP ~AUPOS
????????VBRP ~SHKZG
????????VBRK ~FKDAT
????????VBRK ~KURRF
????????VBRP ~NETWR
????????VBRP ~VGBEL
????????VBRP ~VGPOS
????????VBRK ~RFBSK
????????VBRK ~SFAKN
???? FROM?VBRP
????INNER? JOIN?VBRK? ON?VBRK ~VBELN? =?VBRP ~VBELN
???? INTO?CORRESPONDING? FIELDS? OF? TABLE?LT_VBRP
???? FOR? ALL?ENTRIES? IN?GT_DETAL
???? WHERE?VBRP ~VGBEL? =?GT_DETAL -VBELN_VL
?????? AND?VBRP ~VGPOS? =?GT_DETAL -POSNR_VL
?????? AND?VBRP ~FKIMG?>? 0 .
???? LOOP? AT?LT_VBRP? WHERE?SFAKN?<>? '' .
?????? DELETE?LT_VBRP? WHERE?VBELN? =?LT_VBRP -SFAKN? OR?SFAKN? =?LT_VBRP -SFAKN .
???? ENDLOOP .
???? SORT?LT_VBRP? BY?VBELN?POSNR? ASCENDING?FKDAT? DESCENDING .
?? ENDIF .
?? SORT?LT_VBAK? BY?VBELN .
?? SORT?LT_VBAP? BY?VBELN?POSNR .
?? SORT?LT_KNA1? BY?KUNNR .
?? SORT?LT_KONV? BY?KNUMV?KPOSN?KSCHL?KINAK .
?? SORT?LT_T001L? BY?LGORT .
?? SORT?LT_HXMX? BY?VBELN?POSNR .
?? SORT?LT_TVKO? BY?VKORG .
?? LOOP? AT?GT_DETAL? ASSIGNING?<DETAL> .
???? "核銷信息獲取ZSD_HXMX
???? READ? TABLE?LT_HXMX? WITH? KEY?VBELN? =?<DETAL> -VBELN_VL
????????????????????????????????POSNR? =?<DETAL> -POSNR_VL
???????????????????????????????? BINARY? SEARCH .
???? IF?SY -SUBRC? =? 0? .
??????<DETAL> -HXYFT? =?LT_HXMX -HXYFT .
??????<DETAL> -HXYFB? =?LT_HXMX -HXYFB .
??????<DETAL> -HXZXT? =?LT_HXMX -HXZXT .
??????<DETAL> -HXZXB? =?LT_HXMX -HXZXB .
??????<DETAL> -HXDDT? =?LT_HXMX -HXDDT .
??????<DETAL> -HXDDB? =?LT_HXMX -HXDDB .
??????<DETAL> -HXDOC? =?LT_HXMX -HXDOC .
??????<DETAL> -HXBUR? =?LT_HXMX -HXBUR .
??????<DETAL> -HXGJR? =?LT_HXMX -HXGJR .
??????<DETAL> -FLAG? =?LT_HXMX -FLAG .
???? ENDIF .
*????SELECT?SINGLE?*?FROM?LIPS?INTO?LW_LIPS
*??????WHERE?VBELN?=?<DETAL>-VBELN_VL
*????????AND?POSNR?=?<DETAL>-POSNR_VL.
*????IF?LW_LIPS-KZPOD?=?''?OR?LW_LIPS-KZPOD?=?'A'."與POD無關或無差異
*??????<DETAL>-LFIMG?=?<DETAL>-LFIMG.
*????ELSEIF?LW_LIPS-KZPOD?=?'X'."POD未執行
*??????<DETAL>-LFIMG?=?0.
*????ELSEIF?LW_LIPS-KZPOD?=?'B'."POD?差異
*??????SELECT?SINGLE?PODMG?FROM?TVPOD?INTO?<DETAL>-LFIMG
*????????WHERE?HANDLE_LIPS?=?LW_LIPS-HANDLE
*??????AND?POSNR?=?LW_LIPS-POSNR.
*????ENDIF.
???? "計算實收數量(VLPOD)
???? LOOP? AT?LT_TVPOD? WHERE?HANDLE_LIPS? =?<DETAL> -HANDLE .
?????? IF?LT_TVPOD -CALCU? =? '+' .
???????? ADD?LT_TVPOD -LFIMG_DIFF? TO?<DETAL> -LFIMG .
?????? ELSEIF?LT_TVPOD -CALCU? =? '-' .
???????? SUBTRACT?LT_TVPOD -LFIMG_DIFF? FROM?<DETAL> -LFIMG .
?????? ENDIF .
???? ENDLOOP .
???? READ? TABLE?LT_VBAK? WITH? KEY?VBELN? =?<DETAL> -VBELN? BINARY? SEARCH .
???? IF?SY -SUBRC? =? 0 .
??????<DETAL> -VKORG? =?LT_VBAK -VKORG .
??????<DETAL> -KUNNR? =?LT_VBAK -KUNNR .
??????<DETAL> -ERDAT? =?LT_VBAK -ERDAT .
??????<DETAL> -AUDAT? =?LT_VBAK -AUDAT .
??????<DETAL> -WAERK? =?LT_VBAK -WAERK .
?????? READ? TABLE?LT_KNA1? WITH? KEY?KUNNR? =?<DETAL> -KUNNR? BINARY? SEARCH .
?????? IF?SY -SUBRC? =? 0 .
????????<DETAL> -NAME1? =?LT_KNA1 -NAME1 .
????????<DETAL> -STCEG? =?LT_KNA1 -STCEG .
?????? ENDIF .
?????? READ? TABLE?LT_VBPA? WITH? KEY?VBELN? =?<DETAL> -VBELN
??????????????????????????????????PARVW? =? 'VE' .
?????? IF?SY -SUBRC? =? 0 .
????????<DETAL> -PERNR? =?LT_VBPA -PERNR .
???????? SELECT? SINGLE?NACHN?&&?VORNA
?????????? FROM?PA0002
?????????? INTO?@<DETAL> -CNAME
?????????? WHERE?PERNR? =?@LT_VBPA -PERNR .
?????? ENDIF .
???? ENDIF .
???? READ? TABLE?LT_VBAP? WITH? KEY?VBELN? =?<DETAL> -VBELN
????????????????????????????????POSNR? =?<DETAL> -POSNR
???????????????????????????????? BINARY? SEARCH .
???? IF?SY -SUBRC? =? 0 .
??????<DETAL> -MATNR? =?LT_VBAP -MATNR .
??????<DETAL> -ARKTX? =?LT_VBAP -ARKTX .
??????<DETAL> -KWMENG? =?LT_VBAP -KWMENG .
??????<DETAL> -VRKME? =?LT_VBAP -VRKME .
??????<DETAL> -LGORT? =?LT_VBAP -LGORT .
?????? READ? TABLE?LT_T001L? WITH? KEY?LGORT? =?LT_VBAP -LGORT
??????????????????????????????????? BINARY? SEARCH .
?????? IF?SY -SUBRC? =? 0 .
????????<DETAL> -LGOBE? =?LT_T001L -LGOBE .
?????? ENDIF .
?????? READ? TABLE?LT_KONV? WITH? KEY?KNUMV? =?LT_VBAK -KNUMV
??????????????????????????????????KPOSN? =?<DETAL> -POSNR
??????????????????????????????????KSCHL? =? 'KF00'
??????????????????????????????????KINAK? =? ''
?????????????????????????????????? BINARY? SEARCH .
?????? IF?SY -SUBRC? =? 0? AND?LT_KONV -KBETR?>? 0 . "代墊運費
????????<DETAL> -KF00? =?LT_KONV -KBETR .
????????<DETAL> -DDYF? =?<DETAL> -LFIMG?*?LT_KONV -KBETR .
?????? ENDIF .
?????? READ? TABLE?LT_KONV? WITH? KEY?KNUMV? =?LT_VBAK -KNUMV
??????????????????????????????????KPOSN? =?<DETAL> -POSNR
??????????????????????????????????KSCHL? =? 'Z005'
??????????????????????????????????KINAK? =? ''
?????????????????????????????????? BINARY? SEARCH .
?????? IF?SY -SUBRC? =? 0? AND?LT_KONV -KBETR?>? 0 . "代墊裝卸費
????????<DETAL> -Z005? =?LT_KONV -KBETR .
????????<DETAL> -DDZX? =?<DETAL> -LFIMG?*?LT_KONV -KBETR .
?????? ENDIF .
?????? READ? TABLE?LT_KONV? WITH? KEY?KNUMV? =?LT_VBAK -KNUMV
??????????????????????????????????KPOSN? =?<DETAL> -POSNR
??????????????????????????????????KSCHL? =? 'KF01'
??????????????????????????????????KINAK? =? ''
?????????????????????????????????? BINARY? SEARCH .
?????? IF?SY -SUBRC? =? 0? AND?LT_KONV -KBETR?>? 0 . "運費(一票制)
????????<DETAL> -KF01? =?LT_KONV -KBETR .
????????<DETAL> -YFHJ? =?<DETAL> -LFIMG?*?LT_KONV -KBETR .
?????? ENDIF .
?????? READ? TABLE?LT_KONV? WITH? KEY?KNUMV? =?LT_VBAK -KNUMV
??????????????????????????????????KPOSN? =?<DETAL> -POSNR
??????????????????????????????????KSCHL? =? 'Z003'
??????????????????????????????????KINAK? =? ''
?????????????????????????????????? BINARY? SEARCH .
?????? IF?SY -SUBRC? =? 0? AND?LT_KONV -KBETR?>? 0 . "裝卸費
????????<DETAL> -Z003? =?LT_KONV -KBETR .
????????<DETAL> -ZXHJ? =?<DETAL> -LFIMG?*?LT_KONV -KBETR .
?????? ENDIF .
???? ENDIF .
????<DETAL> -HEJI? =?<DETAL> -DDYF?+?<DETAL> -DDZX?+?<DETAL> -YFHJ?+?<DETAL> -ZXHJ .
???? "開票信息
???? READ? TABLE?LT_VBRP? WITH? KEY?VGBEL? =?<DETAL> -VBELN_VL
????????????????????????????????VGPOS? =?<DETAL> -POSNR_VL .
???? IF?SY -SUBRC? =? 0? .
??????<DETAL> -VBELN_F? =?LT_VBRP -VBELN .
??????<DETAL> -POSNR_F? =?LT_VBRP -POSNR .
??????<DETAL> -FKDAT? =?LT_VBRP -FKDAT .
??????<DETAL> -RFBSK? =?LT_VBRP -RFBSK .
???? ENDIF .
???? "公司代碼?年度
???? READ? TABLE?LT_TVKO? WITH? KEY?VKORG? =?<DETAL> -VKORG? BINARY? SEARCH .
???? IF?SY -SUBRC? =? 0? .
??????<DETAL> -HXBUR? =?LT_TVKO -BUKRS .
??????<DETAL> -HXGJR? =?SY -DATUM+0 ( 4 ) .
???? ENDIF .
?? ENDLOOP .
*??IF?S_LGORT[]?IS?NOT?INITIAL.
*????DELETE?GT_DETAL?WHERE?LGORT?NOT?IN?S_LGORT.
*??ENDIF.
*排序
?? SORT?GT_DETAL? BY?VKORG?KUNNR?VBELN?POSNR?VBELN_VL?POSNR_VL .
?? IF?P_ZXF? =? 'X' .
???? DELETE?GT_DETAL? WHERE?DDZX? =? 0? AND?ZXHJ? =? 0 .
?? ENDIF .
?? IF?P_YF? =? 'X' .
???? DELETE?GT_DETAL? WHERE?YFHJ? =? 0 .
?? ENDIF .
?? IF?P_HXZXF? =? 'X' .
???? DELETE?GT_DETAL? WHERE?HXZXT? IS? NOT? INITIAL .
?? ENDIF .
?? IF?P_HXYF? =? 'X' .
???? DELETE?GT_DETAL? WHERE?HXYFT? IS? NOT? INITIAL .
?? ENDIF .
?? "鋼貿已開票,代墊未開票
?? IF?P_DDWKP? =? 'X' .
???? DELETE?GT_DETAL? WHERE?RFBSK?<>? 'C'? .
???? DELETE?GT_DETAL? WHERE?DDZX? =? 0? .
???? DELETE?GT_DETAL? WHERE?HXDDT? IS? NOT? INITIAL .
?? ENDIF .
?? "鋼貿已開票,代墊已開票
?? IF?P_DDYKP? =? 'X' .
???? DELETE?GT_DETAL? WHERE?RFBSK?<>? 'C'? .
???? DELETE?GT_DETAL? WHERE?DDZX? =? 0? .
???? DELETE?GT_DETAL? WHERE?HXDDT? IS? INITIAL .
?? ENDIF .
ENDFORM .???????????????????? "?GET_DATA
*----------------------------------------------------------------------*
*???????CLASS?lcl_main_alv?IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS?LCL_MAIN_ALV? IMPLEMENTATION .
?? METHOD?GENERATE_ALV .
*
???? DATA :?LX_MSG? TYPE? REF? TO?CX_SALV_MSG .
???? TRY .
????????CL_SALV_TABLE =>FACTORY (
?????????? IMPORTING
????????????R_SALV_TABLE? =?O_SALV
?????????? CHANGING
????????????T_TABLE?????? =?GT_DETAL? ) .
?????? CATCH?CX_SALV_MSG? INTO?LX_MSG .
???? ENDTRY .
???? CALL? METHOD?SET_PF_STATUS
?????? CHANGING
????????CO_ALV? =?O_SALV .
???? CALL? METHOD?SET_LAYOUT
?????? CHANGING
????????CO_ALV? =?O_SALV .
???? CALL? METHOD?SET_DISPLAY_SETTING
?????? CHANGING
????????CO_ALV? =?O_SALV .
???? CALL? METHOD?SET_COLUMNS
?????? CHANGING
????????CO_ALV? =?O_SALV .
???? DATA :?LO_EVENTS? TYPE? REF? TO?CL_SALV_EVENTS_TABLE .
????LO_EVENTS? =?O_SALV ->GET_EVENT (? ) .
???? SET? HANDLER?HANDLE_DOUBLE_CLICK? FOR?LO_EVENTS .
???? SET? HANDLER?HANDLE_LINK_CLICK? FOR?LO_EVENTS .
???? SET? HANDLER?ON_USER_COMMAND? FOR?LO_EVENTS .
???? DATA :LR_SELS? TYPE? REF? TO?CL_SALV_SELECTIONS .
????LR_SELS? =?O_SALV ->GET_SELECTIONS (? ) .
????LR_SELS ->SET_SELECTION_MODE (?IF_SALV_C_SELECTION_MODE =>ROW_COLUMN? ) .
*???顯示?ALV
????O_SALV ->DISPLAY (? ) .
?? ENDMETHOD .???????????????????? "generate_alv
*設置工具欄
?? METHOD?SET_PF_STATUS .
???? DATA :?LO_FUNCTIONS? TYPE? REF? TO?CL_SALV_FUNCTIONS .
???? IF?P_DDYKP? =? 'X' .
??????CO_ALV ->SET_SCREEN_STATUS (
????????PFSTATUS?????? =?? 'ZALV_STATUS'
???????? REPORT???????? =??SY -REPID
????????SET_FUNCTIONS? =?CO_ALV ->C_FUNCTIONS_ALL? ) .
???? ELSE .
??????CO_ALV ->SET_SCREEN_STATUS (
??????PFSTATUS?????? =?? 'ZALV_STATUS1'
?????? REPORT???????? =??SY -REPID
??????SET_FUNCTIONS? =?CO_ALV ->C_FUNCTIONS_ALL? ) .
???? ENDIF .
*????LO_FUNCTIONS?=?CO_ALV->GET_FUNCTIONS(?).
*????LO_FUNCTIONS->SET_ALL(?ABAP_TRUE?).
*????TRY.
*????????LO_FUNCTIONS->SET_FUNCTION(?NAME?=?'DDDY'?BOOLEAN?=?''?).
*??????CATCH?CX_SALV_WRONG_CALL.?????????????????????????"#EC?NO_HANDLER
*??????CATCH?CX_SALV_NOT_FOUND.??????????????????????????"#EC?NO_HANDLER
*????ENDTRY.
?? ENDMETHOD .???????????????????? "set_pf_status
*?Settings?for?Layout
?? METHOD?SET_LAYOUT .
*
???? DATA :?LO_LAYOUT?? TYPE? REF? TO?CL_SALV_LAYOUT ,
??????????LF_VARIANT? TYPE?SLIS_VARI ,
??????????LS_LAYOUT?? TYPE?SALV_S_LAYOUT_INFO ,
??????????LS_KEY????? TYPE?SALV_S_LAYOUT_KEY .
*
????LO_LAYOUT? =?CO_ALV ->GET_LAYOUT (? ) .
????LS_KEY - REPORT? =?SY -REPID .
????LS_LAYOUT? =?CL_SALV_LAYOUT_SERVICE =>GET_DEFAULT_LAYOUT (
????????S_KEY???? =?LS_KEY
????????RESTRICT? =?IF_SALV_C_LAYOUT =>RESTRICT_NONE? ) .
????LF_VARIANT? =?LS_LAYOUT -LAYOUT .
????LO_LAYOUT ->SET_KEY (?LS_KEY? ) .
????LO_LAYOUT ->SET_DEFAULT (?ABAP_TRUE? ) .
????LO_LAYOUT ->SET_SAVE_RESTRICTION (?IF_SALV_C_LAYOUT =>RESTRICT_NONE? ) .
????LO_LAYOUT ->SET_INITIAL_LAYOUT (?LF_VARIANT? ) .
?? ENDMETHOD .???????????????????? "set_layout
?? METHOD?SET_DISPLAY_SETTING .
*
???? DATA :?LO_DISPLAY? TYPE? REF? TO?CL_SALV_DISPLAY_SETTINGS .
????LO_DISPLAY? =?O_SALV ->GET_DISPLAY_SETTINGS (? ) .
????LO_DISPLAY ->SET_STRIPED_PATTERN (? 'X'? ) .
????LO_DISPLAY ->SET_FIT_COLUMN_TO_TABLE_SIZE (? 'X'? ) .
*????lo_display->set_list_header(?'ALV?Test?for?Display?Settings'?).
*
?? ENDMETHOD .???????????????????? "SET_DISPLAY_SETTING
*??設置列屬性
?? METHOD?SET_COLUMNS .
*
???? DATA :?LO_COLS??? TYPE? REF? TO?CL_SALV_COLUMNS_TABLE ,
??????????LO_COLUMN? TYPE? REF? TO?CL_SALV_COLUMN_TABLE .
???? DATA :?LV_SCRTEXT_L? TYPE?SCRTEXT_L .
???? DATA : COLOR? TYPE?LVC_S_COLO .
????LO_COLS? =?CO_ALV ->GET_COLUMNS (? ) .
????LO_COLS ->SET_OPTIMIZE (?ABAP_TRUE? ) .
????LO_COLS ->SET_KEY_FIXATION (?ABAP_TRUE? ) .
???? TRY .
*????????LO_COLS->SET_CELL_TYPE_COLUMN(?'IT_CELL_TYPES'?).
*????????LO_COLS->SET_COLOR_COLUMN(?'IT_CELL_COLOR'?).
?????? CATCH?CX_SALV_DATA_ERROR .????????????????????????? "#EC?NO_HANDLER
???? ENDTRY .
???? TRY .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'CHECK'? ) .
????????LO_COLUMN ->SET_CELL_TYPE (?IF_SALV_C_CELL_TYPE =>CHECKBOX_HOTSPOT? ) .
????????LO_COLUMN ->SET_KEY (? 'X'? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'VBELN'? ) .
????????LO_COLUMN ->SET_CELL_TYPE (?IF_SALV_C_CELL_TYPE => HOTSPOT? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'VBELN_VL'? ) .
????????LO_COLUMN ->SET_CELL_TYPE (?IF_SALV_C_CELL_TYPE => HOTSPOT? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'VBELN_F'? ) .
????????LO_COLUMN ->SET_CELL_TYPE (?IF_SALV_C_CELL_TYPE => HOTSPOT? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'HANDLE'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_FALSE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'HXBUR'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_FALSE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'HXGJR'? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_FALSE? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'KF00'? ) .
????????LV_SCRTEXT_L? =? '代墊運費單價' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'Z005'? ) .
????????LV_SCRTEXT_L? =? '代墊裝卸費單價' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'KF01'? ) .
????????LV_SCRTEXT_L? =? '運費(一票制)單價' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'Z003'? ) .
????????LV_SCRTEXT_L? =? '裝卸費單價' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'DDYF'? ) .
????????LV_SCRTEXT_L? =? '代墊運費' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'DDZX'? ) .
????????LV_SCRTEXT_L? =? '代墊裝卸費' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
???????? COLOR -COL? =? '3' .
???????? COLOR -INT? =? '0' .
???????? COLOR -INV? =? '0' .
????????LO_COLUMN ->SET_COLOR (? COLOR? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'YFHJ'? ) .
????????LV_SCRTEXT_L? =? '運費(一票制)' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
???????? COLOR -COL? =? '5' .
???????? COLOR -INT? =? '0' .
???????? COLOR -INV? =? '0' .
????????LO_COLUMN ->SET_COLOR (? COLOR? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'ZXHJ'? ) .
????????LV_SCRTEXT_L? =? '裝卸費' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
???????? COLOR -COL? =? '3' .
???????? COLOR -INT? =? '0' .
???????? COLOR -INV? =? '0' .
????????LO_COLUMN ->SET_COLOR (? COLOR? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'HEJI'? ) .
????????LV_SCRTEXT_L? =? '合計' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'HXZXT'? ) .
????????LV_SCRTEXT_L? =? '核銷日期(裝卸費)' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
???????? COLOR -COL? =? '3' .
???????? COLOR -INT? =? '0' .
???????? COLOR -INV? =? '0' .
????????LO_COLUMN ->SET_COLOR (? COLOR? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'HXZXB'? ) .
????????LV_SCRTEXT_L? =? '備注(裝卸費)' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
???????? COLOR -COL? =? '3' .
???????? COLOR -INT? =? '0' .
???????? COLOR -INV? =? '0' .
????????LO_COLUMN ->SET_COLOR (? COLOR? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'HXYFT'? ) .
????????LV_SCRTEXT_L? =? '核銷日期(運費)' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
???????? COLOR -COL? =? '5' .
???????? COLOR -INT? =? '0' .
???????? COLOR -INV? =? '0' .
????????LO_COLUMN ->SET_COLOR (? COLOR? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'HXYFB'? ) .
????????LV_SCRTEXT_L? =? '備注(運費)' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
???????? COLOR -COL? =? '5' .
???????? COLOR -INT? =? '0' .
???????? COLOR -INV? =? '0' .
????????LO_COLUMN ->SET_COLOR (? COLOR? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'HXDDT'? ) .
????????LV_SCRTEXT_L? =? '代墊裝卸費開票核銷日期' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
???????? COLOR -COL? =? '3' .
???????? COLOR -INT? =? '0' .
???????? COLOR -INV? =? '0' .
????????LO_COLUMN ->SET_COLOR (? COLOR? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'HXDDB'? ) .
????????LV_SCRTEXT_L? =? '代墊裝卸費開票核銷備注' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
???????? COLOR -COL? =? '3' .
???????? COLOR -INT? =? '0' .
???????? COLOR -INV? =? '0' .
????????LO_COLUMN ->SET_COLOR (? COLOR? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'HXDOC'? ) .
????????LV_SCRTEXT_L? =? '代墊裝卸費開票核銷憑證' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
???????? COLOR -COL? =? '3' .
???????? COLOR -INT? =? '0' .
???????? COLOR -INV? =? '0' .
????????LO_COLUMN ->SET_COLOR (? COLOR? ) .
????????LO_COLUMN??=?LO_COLS ->GET_COLUMN (? 'FLAG'? ) .
????????LV_SCRTEXT_L? =? '是否打印' .
????????LO_COLUMN ->SET_LONG_TEXT (?LV_SCRTEXT_L? ) .
????????LO_COLUMN ->SET_FIXED_HEADER_TEXT (? 'L'? ) .
???????? COLOR -COL? =? '3' .
???????? COLOR -INT? =? '0' .
???????? COLOR -INV? =? '0' .
????????LO_COLUMN ->SET_COLOR (? COLOR? ) .
????????LO_COLUMN ->SET_VISIBLE (?ABAP_TRUE? ) .
?????? CATCH?CX_SALV_NOT_FOUND .?????????????????????????? "#EC?NO_HANDLER
???? ENDTRY .
*小計及排序設置
*????DATA:?LR_AGGREGATIONS?TYPE?REF?TO?CL_SALV_AGGREGATIONS.
*????LR_AGGREGATIONS?=?CO_ALV->GET_AGGREGATIONS(?).
*????LR_AGGREGATIONS->CLEAR(?).
*????DATA:?LR_GROUPS?TYPE?REF?TO?CL_SALV_SORTS?.
*????LR_GROUPS?=?CO_ALV->GET_SORTS(?)?.
*????LR_GROUPS->CLEAR(?).
*
*????TRY.
*????????LR_AGGREGATIONS->ADD_AGGREGATION(?COLUMNNAME?=?'HSLVTS'?).
*????????LR_GROUPS->ADD_SORT(?COLUMNNAME?=?'RACCT'
*?????????????????????????????POSITION???=?1
*?????????????????????????????SUBTOTAL???=?ABAP_TRUE
*?????????????????????????????SEQUENCE???=?IF_SALV_C_SORT=>SORT_UP?).
*
*??????CATCH?CX_SALV_NOT_FOUND?CX_SALV_DATA_ERROR?CX_SALV_EXISTING.
*????ENDTRY.
?? ENDMETHOD .???????????????????? "SET_COLUMNS
?? METHOD?HANDLE_DOUBLE_CLICK .
*????DATA:?LO_DETAL_ALV?TYPE?REF?TO?LCL_DETAL_ALV.
*????CASE?COLUMN.
*??????WHEN?OTHERS.
*????????READ?TABLE?GT_ITAB?INTO?GW_ITAB?INDEX?ROW.
*????????IF?SY-SUBRC?=?0.
*??????????CREATE?OBJECT?LO_DETAL_ALV.
*??????????LO_DETAL_ALV->GET_SUBDATA(?GW_ITAB?).
*??????????LO_DETAL_ALV->GENERATE_ALV(?).
*????????ENDIF.
*????ENDCASE.
?? ENDMETHOD .???????????????????? "HANDLE_DOUBLE_CLICK
?? METHOD?HANDLE_LINK_CLICK .
*????FIELD-SYMBOLS:?<OUTTAB>???TYPE?STANDARD?TABLE,
*???????????????????<LFA_DATA>?TYPE?ANY,
*???????????????????<LF_CHECK>?TYPE?FLAG.
*????DATA?:
*??????????IF_TABNAME???TYPE?STRING.?"alv_輸出內部名字
*????CASE?COLUMN.
*??????WHEN?'CHECK'.
*????????READ?TABLE?GT_ITAB?ASSIGNING?<ITAB>?INDEX?ROW.
*????????IF?SY-SUBRC?=?0.
*??????????IF?<ITAB>-CHECK?=?'X'.
*????????????<ITAB>-CHECK?=?''.
*??????????ELSE.
*????????????<ITAB>-CHECK?=?'X'.
*??????????ENDIF.
*????????ENDIF.
*??????WHEN?'BELNR'.
*????????READ?TABLE?GT_ITAB?INTO?GW_ITAB?INDEX?ROW.
*????????IF?SY-SUBRC?=?0.
*??????????SET?PARAMETER?ID?'BUK'?FIELD?GW_ITAB-RBUKRS.
*??????????SET?PARAMETER?ID?'GJR'?FIELD?GW_ITAB-GJAHR.
*??????????SET?PARAMETER?ID?'BLN'?FIELD?GW_ITAB-BELNR.
*??????????CALL?TRANSACTION?'FB03'?AND?SKIP?FIRST?SCREEN.
*????????ENDIF.
*????ENDCASE.
*????ME->REFRESH_ALV(??).
???? CASE?COLUMN .
?????? WHEN? 'VBELN' .
???????? READ? TABLE?GT_DETAL? INTO?GW_DETAL? INDEX?ROW .
???????? IF?SY -SUBRC? =? 0 .
?????????? SET? PARAMETER? ID? 'AUN'? FIELD?GW_DETAL -VBELN .
?????????? CALL? TRANSACTION? 'VA03'? AND? SKIP? FIRST? SCREEN .
???????? ENDIF .
?????? WHEN? 'CHECK' .
???????? READ? TABLE?GT_DETAL? INTO?GW_DETAL? INDEX?ROW .
???????? IF?SY -SUBRC? =? 0 .
?????????? IF?GW_DETAL - CHECK? =? 'X' .
???????????? CLEAR?GW_DETAL - CHECK .
?????????? ELSE .
????????????GW_DETAL - CHECK? =? 'X' .
?????????? ENDIF .
???????? ENDIF .
???????? MODIFY?GT_DETAL? FROM?GW_DETAL? INDEX?ROW .
?????? WHEN? 'VBELN_VL' .
???????? READ? TABLE?GT_DETAL? INTO?GW_DETAL? INDEX?ROW .
???????? IF?SY -SUBRC? =? 0 .
?????????? SET? PARAMETER? ID? 'VL'? FIELD?GW_DETAL -VBELN_VL .
?????????? CALL? TRANSACTION? 'VL03N'? AND? SKIP? FIRST? SCREEN .
???????? ENDIF .
?????? WHEN? 'VBELN_F' .
???????? READ? TABLE?GT_DETAL? INTO?GW_DETAL? INDEX?ROW .
???????? IF?SY -SUBRC? =? 0? AND?GW_DETAL -VBELN_F? IS? NOT? INITIAL .
?????????? SET? PARAMETER? ID? 'VF'? FIELD?GW_DETAL -VBELN_F .
?????????? CALL? TRANSACTION? 'VF03'? AND? SKIP? FIRST? SCREEN .
???????? ENDIF .
???? ENDCASE .
????ME ->REFRESH_ALV (?? ) .
?? ENDMETHOD .???????????????????? "HANDLE_link_click
?? METHOD?ON_USER_COMMAND .
???? DATA :?O_SELS? TYPE? REF? TO?CL_SALV_SELECTIONS ,
??????????T_ROWS? TYPE?SALV_T_ROW ,
??????????L_ROW?? TYPE? LINE? OF?SALV_T_ROW .
???? CASE?E_SALV_FUNCTION .
*??????WHEN?'SALL'.
*????????GW_ITAB-CHECK?=?'X'.
*????????MODIFY?GT_ITAB?FROM?GW_ITAB?TRANSPORTING?CHECK?WHERE?CHECK?=?''.
*??????WHEN?'DSAL'.
*????????GW_ITAB-CHECK?=?''.
*????????MODIFY?GT_ITAB?FROM?GW_ITAB?TRANSPORTING?CHECK?WHERE?CHECK?=?'X'.
?????? WHEN? 'PRINT' .
*??????WHEN?'SALL'.
*????????O_SELS?=?O_ALV->GET_SELECTIONS(?).
*????????T_ROWS?=?O_SELS->GET_SELECTED_ROWS(?).
*????????IF?LINES(?T_ROWS?)?>?0.
*?????????READ?TABLE?T_ROWS?INTO?L_ROW?INDEX?1.
*????????ENDIF.
?????? WHEN? 'ZALL' .
???????? LOOP? AT?GT_DETAL? ASSIGNING?<DETAL>? WHERE? CHECK? =? '' .
??????????<DETAL> - CHECK? =? 'X' .
???????? ENDLOOP .
?????? WHEN? 'ZSAL' .
???????? LOOP? AT?GT_DETAL? ASSIGNING?<DETAL>? WHERE? CHECK? =? 'X' .
?????????? CLEAR?<DETAL> - CHECK .
???????? ENDLOOP .
?????? WHEN? 'ZZXF' . "核銷裝卸費
???????? READ? TABLE?GT_DETAL? TRANSPORTING? NO? FIELDS? WITH? KEY? CHECK? =? 'X' .
???????? IF?SY -SUBRC? =? 0? .
?????????? PERFORM?FRM_HX_ZXF .
???????? ELSE .
?????????? MESSAGE? '請選擇需要核銷的條目!'? TYPE? 'E' .
???????? ENDIF .
?????? WHEN? 'ZYF' . "核銷運費
???????? READ? TABLE?GT_DETAL? TRANSPORTING? NO? FIELDS? WITH? KEY? CHECK? =? 'X' .
???????? IF?SY -SUBRC? =? 0? .
?????????? PERFORM?FRM_HX_YF .
???????? ELSE .
?????????? MESSAGE? '請選擇需要核銷的條目!'? TYPE? 'E' .
???????? ENDIF .
?????? WHEN? 'ZSZXF' . "取消核銷裝卸費
???????? READ? TABLE?GT_DETAL? TRANSPORTING? NO? FIELDS? WITH? KEY? CHECK? =? 'X' .
???????? IF?SY -SUBRC? =? 0? .
?????????? PERFORM?FRM_QXHX_ZXF .
???????? ELSE .
?????????? MESSAGE? '請選擇需要取消核銷的條目!'? TYPE? 'E' .
???????? ENDIF .
?????? WHEN? 'ZSYF' . "取消核銷運費
???????? READ? TABLE?GT_DETAL? TRANSPORTING? NO? FIELDS? WITH? KEY? CHECK? =? 'X' .
???????? IF?SY -SUBRC? =? 0? .
?????????? PERFORM?FRM_QXHX_YF .
???????? ELSE .
?????????? MESSAGE? '請選擇需要取消核銷的條目!'? TYPE? 'E' .
???????? ENDIF .
?????? WHEN? 'DDHX' . "代墊裝卸費開票核銷
???????? READ? TABLE?GT_DETAL? TRANSPORTING? NO? FIELDS? WITH? KEY? CHECK? =? 'X' .
???????? IF?SY -SUBRC? =? 0? .
?????????? PERFORM?FRM_DDHX_ZXF .
???????? ELSE .
?????????? MESSAGE? '請選擇需要核銷的條目!'? TYPE? 'E' .
???????? ENDIF .
?????? WHEN? 'DDDY' . "代墊裝卸費結算打印
???????? READ? TABLE?GT_DETAL? TRANSPORTING? NO? FIELDS? WITH? KEY? CHECK? =? 'X' .
???????? IF?SY -SUBRC? =? 0? .
?????????? PERFORM?FRM_DDDY_ZXF .
???????? ELSE .
?????????? MESSAGE? '請選擇需要打印的條目!'? TYPE? 'E' .
???????? ENDIF .
???? ENDCASE .
????ME ->REFRESH_ALV (?? ) .
?? ENDMETHOD .???????????????????? "ON_USER_COMMAND
?? METHOD?REFRESH_ALV .
???? DATA :?LO_COLS? TYPE? REF? TO?CL_SALV_COLUMNS_TABLE ,
??????????LV_STBL? TYPE?LVC_S_STBL .
????LO_COLS? =?O_SALV ->GET_COLUMNS (? ) .
????LO_COLS ->SET_OPTIMIZE (?ABAP_TRUE? ) .
????LV_STBL -ROW? =? 'X' .
????LV_STBL -COL? =? 'X' .
????O_SALV -> REFRESH (?S_STABLE? =?LV_STBL? ) .
?? ENDMETHOD .???????????????????? "REFRESH_alv
ENDCLASS .???????????????????? "lcl_main_alv?IMPLEMENTATION
*----------------------------------------------------------------------*
*???????CLASS?LCL_EKPO_F_ALV?IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
*CLASS?LCL_DETAL_ALV?IMPLEMENTATION.
*??METHOD?GET_SUBDATA.
*????REFRESH?T_DETAL.
*????LOOP?AT?GT_DETAL?INTO?GW_DETAL?WHERE?VKORG?=?IW_ITAB-VKORG
*???????????????????????????????????????AND?KUNNR?=?IW_ITAB-KUNNR
*???????????????????????????????????????AND?PERNR?=?IW_ITAB-PERNR.
*??????APPEND?GW_DETAL?TO?T_DETAL.
*??????CLEAR?GW_DETAL.
*????ENDLOOP.
*??ENDMETHOD.????????????????????"GET_SUBDATA
*??METHOD?GENERATE_ALV.
*????TRY.
*
*????????CL_SALV_TABLE=>FACTORY(
*??????????IMPORTING
*????????????R_SALV_TABLE?=?O_SALV
*??????????CHANGING
*????????????T_TABLE??????=?T_DETAL?).
*
*??????CATCH?CX_SALV_MSG.
*
*????ENDTRY.
*????DATA:?LO_FUNCTIONS?TYPE?REF?TO?CL_SALV_FUNCTIONS.
*????LO_FUNCTIONS?=?O_SALV->GET_FUNCTIONS(?).
*????LO_FUNCTIONS->SET_ALL(?ABAP_TRUE?).
*
*????DATA:?LO_COLS_TAB?TYPE?REF?TO?CL_SALV_COLUMNS_TABLE,
*??????????LO_COL_TAB??TYPE?REF?TO?CL_SALV_COLUMN_TABLE.
*????DATA:LV_SCRTEXT_L?TYPE?SCRTEXT_L,
*?????????LV_SCRTEXT_M?TYPE?SCRTEXT_M,
*?????????LV_SCRTEXT_S?TYPE?SCRTEXT_S.
*????LO_COLS_TAB?=?O_SALV->GET_COLUMNS(?).
*????LO_COLS_TAB->SET_OPTIMIZE(?'X'?).
*????TRY.
*????????LO_COL_TAB??=?LO_COLS_TAB->GET_COLUMN(?'VBELN'?).
*????????LO_COL_TAB->SET_CELL_TYPE(?IF_SALV_C_CELL_TYPE=>HOTSPOT?).
*
*????????LO_COL_TAB??=?LO_COLS_TAB->GET_COLUMN(?'KF00'?).
*????????LV_SCRTEXT_L?=?'代墊運費單價'.
*????????LO_COL_TAB->SET_LONG_TEXT(?LV_SCRTEXT_L?).
*????????LO_COL_TAB->SET_FIXED_HEADER_TEXT(?'L'?).
*
*????????LO_COL_TAB??=?LO_COLS_TAB->GET_COLUMN(?'Z005'?).
*????????LV_SCRTEXT_L?=?'代墊裝卸費單價'.
*????????LO_COL_TAB->SET_LONG_TEXT(?LV_SCRTEXT_L?).
*????????LO_COL_TAB->SET_FIXED_HEADER_TEXT(?'L'?).
*
*????????LO_COL_TAB??=?LO_COLS_TAB->GET_COLUMN(?'KF01'?).
*????????LV_SCRTEXT_L?=?'運費(一票制)單價'.
*????????LO_COL_TAB->SET_LONG_TEXT(?LV_SCRTEXT_L?).
*????????LO_COL_TAB->SET_FIXED_HEADER_TEXT(?'L'?).
*
*????????LO_COL_TAB??=?LO_COLS_TAB->GET_COLUMN(?'Z003'?).
*????????LV_SCRTEXT_L?=?'裝卸費單價'.
*????????LO_COL_TAB->SET_LONG_TEXT(?LV_SCRTEXT_L?).
*????????LO_COL_TAB->SET_FIXED_HEADER_TEXT(?'L'?).
*
*????????LO_COL_TAB??=?LO_COLS_TAB->GET_COLUMN(?'DDYF'?).
*????????LV_SCRTEXT_L?=?'代墊運費'.
*????????LO_COL_TAB->SET_LONG_TEXT(?LV_SCRTEXT_L?).
*????????LO_COL_TAB->SET_FIXED_HEADER_TEXT(?'L'?).
*
*????????LO_COL_TAB??=?LO_COLS_TAB->GET_COLUMN(?'DDZX'?).
*????????LV_SCRTEXT_L?=?'代墊裝卸費'.
*????????LO_COL_TAB->SET_LONG_TEXT(?LV_SCRTEXT_L?).
*????????LO_COL_TAB->SET_FIXED_HEADER_TEXT(?'L'?).
*
*????????LO_COL_TAB??=?LO_COLS_TAB->GET_COLUMN(?'YFHJ'?).
*????????LV_SCRTEXT_L?=?'運費(一票制)'.
*????????LO_COL_TAB->SET_LONG_TEXT(?LV_SCRTEXT_L?).
*????????LO_COL_TAB->SET_FIXED_HEADER_TEXT(?'L'?).
*
*????????LO_COL_TAB??=?LO_COLS_TAB->GET_COLUMN(?'ZXHJ'?).
*????????LV_SCRTEXT_L?=?'裝卸費'.
*????????LO_COL_TAB->SET_LONG_TEXT(?LV_SCRTEXT_L?).
*????????LO_COL_TAB->SET_FIXED_HEADER_TEXT(?'L'?).
*
*????????LO_COL_TAB??=?LO_COLS_TAB->GET_COLUMN(?'HEJI'?).
*????????LV_SCRTEXT_L?=?'合計'.
*????????LO_COL_TAB->SET_LONG_TEXT(?LV_SCRTEXT_L?).
*????????LO_COL_TAB->SET_FIXED_HEADER_TEXT(?'L'?).
*??????CATCH?CX_SALV_NOT_FOUND.??????????????????????????"#EC?NO_HANDLER
*????ENDTRY.
**小計
**????DATA:?LR_AGGREGATIONS?TYPE?REF?TO?CL_SALV_AGGREGATIONS.
**????LR_AGGREGATIONS?=?O_SALV->GET_AGGREGATIONS(?).
**????LR_AGGREGATIONS->CLEAR(?).
**????DATA:?LR_GROUPS?TYPE?REF?TO?CL_SALV_SORTS?.
**????LR_GROUPS?=?O_SALV->GET_SORTS(?)?.
**????LR_GROUPS->CLEAR(?).
*
**????TRY.
**????????LR_AGGREGATIONS->ADD_AGGREGATION(?COLUMNNAME?=?'MENGE'?).
**????????LR_GROUPS->ADD_SORT(?COLUMNNAME?=?'EBELN'
**?????????????????????????????POSITION???=?1
***?????????????????????????????SUBTOTAL???=?ABAP_TRUE
**?????????????????????????????SEQUENCE???=?IF_SALV_C_SORT=>SORT_UP?).
**????????LR_GROUPS->ADD_SORT(?COLUMNNAME?=?'EBELP'
**?????????????????????????????POSITION???=?1
***?????????????????????????????SUBTOTAL???=?ABAP_TRUE
**?????????????????????????????SEQUENCE???=?IF_SALV_C_SORT=>SORT_UP?).
**??????CATCH?CX_SALV_NOT_FOUND?CX_SALV_DATA_ERROR?CX_SALV_EXISTING.
**????ENDTRY.
**????設置事件
*????DATA:?LO_EVENTS?TYPE?REF?TO?CL_SALV_EVENTS_TABLE.
*????LO_EVENTS?=?O_SALV->GET_EVENT(?).
*????SET?HANDLER?HANDLE_LINK_CLICK?FOR?LO_EVENTS.
**行列選擇
*????DATA:LR_SELS?TYPE?REF?TO?CL_SALV_SELECTIONS.
*????LR_SELS?=?O_SALV->GET_SELECTIONS(?).
*????LR_SELS->SET_SELECTION_MODE(?IF_SALV_C_SELECTION_MODE=>ROW_COLUMN?).
*
**????SET?HANDLER?ON_REFRESH_DETAILS?FOR?ALL?INSTANCES.
*????O_SALV->DISPLAY(?).
*
*??ENDMETHOD.????????????????????"generate_alv
*??METHOD?HANDLE_LINK_CLICK.
*
*????CASE?COLUMN.
*??????WHEN?'VBELN'.
*????????READ?TABLE?T_DETAL?INTO?LW_DETAL?INDEX?ROW.
*????????IF?SY-SUBRC?=?0.
*??????????SET?PARAMETER?ID?'AUN'?FIELD?LW_DETAL-VBELN.
*??????????CALL?TRANSACTION?'VA03'?AND?SKIP?FIRST?SCREEN.
*????????ENDIF.
*????ENDCASE.
*??ENDMETHOD.????????????????????"HANDLE_link_click
*ENDCLASS.
*&---------------------------------------------------------------------*
*&??????Form??FRM_HX_ZXF
*&---------------------------------------------------------------------*
*???????核銷——裝卸費
*----------------------------------------------------------------------*
*??-->??p1????????text
*??<--??p2????????text
*----------------------------------------------------------------------*
FORM?FRM_HX_ZXF? .
?? DATA? :?LV_RETURNCODE ,
?????????LV_DAT???????? TYPE?ERDAT ,
?????????LV_BZ????????? TYPE?ZE_ZBEIZ .
?? DATA? :?LT_HXMX? TYPE? STANDARD? TABLE? OF?ZSD_HXMX ,
?????????LW_HXMX? TYPE?ZSD_HXMX .
?? CLEAR?LV_RETURNCODE .
?? PERFORM?FRM_GET_CHANGED? CHANGING??LV_DAT??LV_BZ?LV_RETURNCODE .
?? IF?LV_RETURNCODE? IS? INITIAL .
???? LOOP? AT?GT_DETAL? ASSIGNING?<DETAL>? WHERE? CHECK? =? 'X' .
?????? "已經核銷的需要剔除
?????? IF?<DETAL> -HXZXT?<>? '00000000' .
???????? CONTINUE .
?????? ENDIF .
?????? IF?<DETAL> -DDZX? =? 0? AND?<DETAL> -ZXHJ? =? 0? .
???????? CONTINUE .
?????? ENDIF .
??????<DETAL> -HXZXT? =?LV_DAT .
?????? IF?<DETAL> -HXZXT? =? '' .
????????<DETAL> -HXZXT? =?SY -DATUM .
?????? ENDIF .
??????<DETAL> -HXZXB? =?LV_BZ .
?????? CLEAR? :?LW_HXMX .
?????? MOVE-CORRESPONDING?<DETAL>? TO?LW_HXMX .
??????LW_HXMX -VBELN? =?<DETAL> -VBELN_VL .
??????LW_HXMX -POSNR? =?<DETAL> -POSNR_VL .
??????LW_HXMX -Z003? =?<DETAL> -ZXHJ .
??????LW_HXMX -Z005? =?<DETAL> -DDZX .
??????LW_HXMX -KF01? =?<DETAL> -YFHJ .
*??????LW_HXMX-HXZXT?=?<DETAL>-HXZXT.
*??????LW_HXMX-HXZXB?=?<DETAL>-HXZXB.
*??????LW_HXMX-HXYFT?=?<DETAL>-HXYFT.
*??????LW_HXMX-HXYFB?=?<DETAL>-HXYFB.
?????? APPEND?LW_HXMX? TO?LT_HXMX .
???? ENDLOOP .
???? IF?LT_HXMX? IS? NOT? INITIAL .
?????? MODIFY?ZSD_HXMX? FROM? TABLE?LT_HXMX .
?????? IF?SY -SUBRC? =? 0? .
???????? COMMIT? WORK .
???????? MESSAGE? '裝卸費核銷成功!'? TYPE? 'S' .
?????? ELSE .
???????? ROLLBACK? WORK .
???????? MESSAGE? '裝卸費核銷失敗!'? TYPE? 'E' .
?????? ENDIF .
???? ELSE .
?????? MESSAGE? '沒有需要核銷的項目!'? TYPE? 'E' .
???? ENDIF .
?? ENDIF .
ENDFORM .
*&---------------------------------------------------------------------*
*&??????Form??FRM_HX_YF
*&---------------------------------------------------------------------*
*???????核銷——運費
*----------------------------------------------------------------------*
*??-->??p1????????text
*??<--??p2????????text
*----------------------------------------------------------------------*
FORM?FRM_HX_YF? .
?? DATA? :?LV_RETURNCODE ,
?????????LV_DAT???????? TYPE?ERDAT ,
?????????LV_BZ????????? TYPE?ZE_ZBEIZ .
?? DATA? :?LT_HXMX? TYPE? STANDARD? TABLE? OF?ZSD_HXMX ,
?????????LW_HXMX? TYPE?ZSD_HXMX .
?? CLEAR?LV_RETURNCODE .
?? PERFORM?FRM_GET_CHANGED? CHANGING??LV_DAT??LV_BZ?LV_RETURNCODE .
?? IF?LV_RETURNCODE? IS? INITIAL .
???? LOOP? AT?GT_DETAL? ASSIGNING?<DETAL>? WHERE? CHECK? =? 'X' .
?????? "已經核銷的需要剔除
?????? IF?<DETAL> -HXYFT?<>? '00000000' .
???????? CONTINUE .
?????? ENDIF .
?????? IF?<DETAL> -YFHJ? =? 0? .
???????? CONTINUE .
?????? ENDIF .
??????<DETAL> -HXYFT? =?LV_DAT .
?????? IF?<DETAL> -HXYFT? =? '' .
????????<DETAL> -HXYFT? =?SY -DATUM .
?????? ENDIF .
??????<DETAL> -HXYFB? =?LV_BZ .
?????? CLEAR? :?LW_HXMX .
?????? MOVE-CORRESPONDING?<DETAL>? TO?LW_HXMX .
??????LW_HXMX -VBELN? =?<DETAL> -VBELN_VL .
??????LW_HXMX -POSNR? =?<DETAL> -POSNR_VL .
??????LW_HXMX -Z003? =?<DETAL> -ZXHJ .
??????LW_HXMX -Z005? =?<DETAL> -DDZX .
??????LW_HXMX -KF01? =?<DETAL> -YFHJ .
*??????LW_HXMX-HXZXT?=?<DETAL>-HXZXT.
*??????LW_HXMX-HXZXB?=?<DETAL>-HXZXB.
*??????LW_HXMX-HXYFT?=?<DETAL>-HXYFT.
*??????LW_HXMX-HXYFB?=?<DETAL>-HXYFB.
?????? APPEND?LW_HXMX? TO?LT_HXMX .
???? ENDLOOP .
???? IF?LT_HXMX? IS? NOT? INITIAL .
?????? MODIFY?ZSD_HXMX? FROM? TABLE?LT_HXMX .
?????? IF?SY -SUBRC? =? 0? .
???????? COMMIT? WORK .
???????? MESSAGE? '運費核銷成功!'? TYPE? 'S' .
?????? ELSE .
???????? ROLLBACK? WORK .
???????? MESSAGE? '運費核銷失敗!'? TYPE? 'E' .
?????? ENDIF .
???? ELSE .
?????? MESSAGE? '沒有需要核銷的項目!'? TYPE? 'E' .
???? ENDIF .
?? ENDIF .
ENDFORM .
*&---------------------------------------------------------------------*
*&??????Form??FRM_QXHX_ZXF
*&---------------------------------------------------------------------*
*???????取消核銷——裝卸費
*----------------------------------------------------------------------*
*??-->??p1????????text
*??<--??p2????????text
*----------------------------------------------------------------------*
FORM?FRM_QXHX_ZXF? .
?? DATA? :?LV_RETURN? TYPE? C .? "信息提示框返回
?? DATA? :?LT_HXMX? TYPE? STANDARD? TABLE? OF?ZSD_HXMX ,
?????????LW_HXMX? TYPE?ZSD_HXMX .
?? PERFORM?FRM_POPUP_INFO? USING? TEXT - 003? TEXT - 002? CHANGING?LV_RETURN .
?? IF?LV_RETURN?<>? 'J' .
???? EXIT .
?? ENDIF .
?? LOOP? AT?GT_DETAL? ASSIGNING?<DETAL>? WHERE? CHECK? =? 'X' .
???? IF?<DETAL> -HXZXT? IS? INITIAL .
?????? CONTINUE .
???? ENDIF .
???? CLEAR?<DETAL> -HXZXT .
???? CLEAR?<DETAL> -HXZXB .
???? CLEAR? :?LW_HXMX .
???? MOVE-CORRESPONDING?<DETAL>? TO?LW_HXMX .
????LW_HXMX -VBELN? =?<DETAL> -VBELN_VL .
????LW_HXMX -POSNR? =?<DETAL> -POSNR_VL .
????LW_HXMX -Z003? =?<DETAL> -ZXHJ .
????LW_HXMX -Z005? =?<DETAL> -DDZX .
????LW_HXMX -KF01? =?<DETAL> -YFHJ .
*????LW_HXMX-HXZXT?=?<DETAL>-HXZXT.
*????LW_HXMX-HXZXB?=?<DETAL>-HXZXB.
*????LW_HXMX-HXYFT?=?<DETAL>-HXYFT.
*????LW_HXMX-HXYFB?=?<DETAL>-HXYFB.
???? APPEND?LW_HXMX? TO?LT_HXMX .
?? ENDLOOP .
?? IF?LT_HXMX? IS? NOT? INITIAL .
???? MODIFY?ZSD_HXMX? FROM? TABLE?LT_HXMX .
???? IF?SY -SUBRC? =? 0? .
?????? COMMIT? WORK .
?????? MESSAGE? '裝卸費取消核銷成功!'? TYPE? 'S' .
???? ELSE .
?????? ROLLBACK? WORK .
?????? MESSAGE? '裝卸費取消核銷失敗!'? TYPE? 'E' .
???? ENDIF .
?? ELSE .
???? MESSAGE? '沒有需要取消核銷的項目!'? TYPE? 'E' .
?? ENDIF .
ENDFORM .
*&---------------------------------------------------------------------*
*&??????Form??FRM_QXHX_YF
*&---------------------------------------------------------------------*
*???????取消核銷——運費
*----------------------------------------------------------------------*
*??-->??p1????????text
*??<--??p2????????text
*----------------------------------------------------------------------*
FORM?FRM_QXHX_YF? .
?? DATA? :?LV_RETURN? TYPE? C .? "信息提示框返回
?? DATA? :?LT_HXMX? TYPE? STANDARD? TABLE? OF?ZSD_HXMX ,
?????????LW_HXMX? TYPE?ZSD_HXMX .
?? PERFORM?FRM_POPUP_INFO? USING? TEXT - 003? TEXT - 002? CHANGING?LV_RETURN .
?? IF?LV_RETURN?<>? 'J' .
???? EXIT .
?? ENDIF .
?? LOOP? AT?GT_DETAL? ASSIGNING?<DETAL>? WHERE? CHECK? =? 'X' .
???? IF?<DETAL> -HXYFT? IS? INITIAL .
?????? CONTINUE .
???? ENDIF .
???? CLEAR?<DETAL> -HXYFT .
???? CLEAR?<DETAL> -HXYFB .
???? CLEAR? :?LW_HXMX .
???? MOVE-CORRESPONDING?<DETAL>? TO?LW_HXMX .
????LW_HXMX -VBELN? =?<DETAL> -VBELN_VL .
????LW_HXMX -POSNR? =?<DETAL> -POSNR_VL .
????LW_HXMX -Z003? =?<DETAL> -ZXHJ .
????LW_HXMX -Z005? =?<DETAL> -DDZX .
????LW_HXMX -KF01? =?<DETAL> -YFHJ .
*????LW_HXMX-HXZXT?=?<DETAL>-HXZXT.
*????LW_HXMX-HXZXB?=?<DETAL>-HXZXB.
*????LW_HXMX-HXYFT?=?<DETAL>-HXYFT.
*????LW_HXMX-HXYFB?=?<DETAL>-HXYFB.
???? APPEND?LW_HXMX? TO?LT_HXMX .
?? ENDLOOP .
?? IF?LT_HXMX? IS? NOT? INITIAL .
???? MODIFY?ZSD_HXMX? FROM? TABLE?LT_HXMX .
???? IF?SY -SUBRC? =? 0? .
?????? COMMIT? WORK .
?????? MESSAGE? '運費取消核銷成功!'? TYPE? 'S' .
???? ELSE .
?????? ROLLBACK? WORK .
?????? MESSAGE? '運費取消核銷失敗!'? TYPE? 'E' .
???? ENDIF .
?? ELSE .
???? MESSAGE? '沒有需要取消核銷的項目!'? TYPE? 'E' .
?? ENDIF .
ENDFORM .
*&---------------------------------------------------------------------*
*&??????Form??FRM_GET_CHANGED
*&---------------------------------------------------------------------*
*???????text
*----------------------------------------------------------------------*
*??????<--P_<ITAB>??text
*??????<--P_LV_RETURNCODE??text
*----------------------------------------------------------------------*
FORM?FRM_GET_CHANGED?? CHANGING?P_DAT? TYPE?ERDAT
???????????????????????????????P_BZ? TYPE?ZE_ZBEIZ
???????????????????????????????P_RETURNCODE .
?? DATA :?LT_VALUE??? LIKE? TABLE? OF?SVAL? WITH? HEADER? LINE ,
????????RETURNCODE .
??LT_VALUE -TABNAME? =? 'ZSD_HXMX' .
??LT_VALUE -FIELDNAME? =? 'HXYFT' .
??LT_VALUE - VALUE? =?SY -DATUM .
?? APPEND?LT_VALUE .
??LT_VALUE -TABNAME? =? 'ZSD_HXMX' .
??LT_VALUE -FIELDNAME? =? 'HXYFB' .
??LT_VALUE - VALUE? =? '' .
?? APPEND?LT_VALUE .
?? CALL? FUNCTION? 'POPUP_GET_VALUES'
???? EXPORTING
*?????NO_VALUE_CHECK??=?'?'
??????POPUP_TITLE????? =? '核銷備注'
??????START_COLUMN???? =? '5'
??????START_ROW??????? =? '5'
???? IMPORTING
??????RETURNCODE?????? =?RETURNCODE
???? TABLES
?????? FIELDS?????????? =?LT_VALUE
???? EXCEPTIONS
??????ERROR_IN_FIELDS? =? 1
?????? OTHERS?????????? =? 2 .
?? IF?SY -SUBRC? =? 0 .
????P_RETURNCODE? =?RETURNCODE .
???? CHECK?RETURNCODE? IS? INITIAL . "為A表示取消
???? READ? TABLE?LT_VALUE?? WITH? KEY?FIELDNAME? =? 'HXYFT' .
???? IF?SY -SUBRC? =? 0 .
??????P_DAT? =?LT_VALUE - VALUE .
???? ENDIF .
???? READ? TABLE?LT_VALUE?? WITH? KEY?FIELDNAME? =? 'HXYFB' .
???? IF?SY -SUBRC? =? 0 .
??????P_BZ? =?LT_VALUE - VALUE .
???? ENDIF .
?? ENDIF .
ENDFORM .
*&---------------------------------------------------------------------*
*&??????Form??frm_popup_info
*&---------------------------------------------------------------------*
*????????彈出框信息
*----------------------------------------------------------------------*
*??????-->P_TEXT1????text
*??????-->P_TEXT2????text
*??????-->P_RETURN???text
*----------------------------------------------------------------------*
FORM?FRM_POPUP_INFO? USING?P_TEXT1?P_TEXT2
???????????????????? CHANGING?P_RETURN .
?? CALL? FUNCTION? 'POPUP_TO_CONFIRM_STEP'????????????????????? "#EC?*
???? EXPORTING
??????DEFAULTOPTION?? =? 'Y'
??????TEXTLINE1?????? =?P_TEXT1
??????TITEL?????????? =?P_TEXT2
??????CANCEL_DISPLAY? =? ''
???? IMPORTING
??????ANSWER????????? =?P_RETURN .
ENDFORM .???????????????????? "FRM_POPUP_INFO
*&---------------------------------------------------------------------*
*&??????Form??FRM_DDHX_ZXF
*&---------------------------------------------------------------------*
*???????text
*----------------------------------------------------------------------*
*??-->??p1????????text
*??<--??p2????????text
*----------------------------------------------------------------------*
FORM?FRM_DDHX_ZXF? .
?? DATA? :?LV_RETURNCODE ,
?????????LV_DAT???????? TYPE?ERDAT ,
?????????LV_BZ????????? TYPE?ZE_ZBEIZ .
?? DATA? :?LT_HXMX? TYPE? STANDARD? TABLE? OF?ZSD_HXMX ,
?????????LW_HXMX? TYPE?ZSD_HXMX .
*------會計憑證
?? DATA :I_HEADER? LIKE??BKPF ,
???????IT_ITEM?? LIKE? TABLE? OF??ZFS_BSED? WITH? HEADER? LINE ,
??????? RETURN??? LIKE? TABLE? OF?BAPIRET2? WITH? HEADER? LINE .
?? CLEAR?LV_RETURNCODE .
?? PERFORM?FRM_GET_CHANGED? CHANGING??LV_DAT??LV_BZ?LV_RETURNCODE .
?? IF?LV_RETURNCODE? IS? INITIAL .
???? LOOP? AT?GT_DETAL? ASSIGNING?<DETAL>? WHERE? CHECK? =? 'X' .
?????? "已經核銷的需要剔除
?????? IF?<DETAL> -HXDDT?<>? '00000000' .
???????? CONTINUE .
?????? ENDIF .
?????? IF?<DETAL> -DDZX? =? 0 .
???????? CONTINUE .
?????? ENDIF .
??????<DETAL> -HXDDT? =?LV_DAT .
?????? IF?<DETAL> -HXDDT? =? '' .
????????<DETAL> -HXDDT? =?SY -DATUM .
?????? ENDIF .
??????<DETAL> -HXDDB? =?LV_BZ .
?????? "生成會計憑證
?????? "借:應收賬款-客戶,貸:其他應付-開票單位
?????? CLEAR :I_HEADER .
?????? REFRESH? :?IT_ITEM[] ,
????????????????RETURN[] .
??????I_HEADER -BUKRS? =?<DETAL> -HXBUR .
??????I_HEADER -GJAHR? =?<DETAL> -HXGJR .
??????I_HEADER -BLDAT? =?SY -DATUM .
??????I_HEADER -BUDAT? =?SY -DATUM .
??????I_HEADER -MONAT? =?SY -DATUM+4 ( 2 ) .
??????I_HEADER -BLART? =? 'SA' .
??????I_HEADER -BKTXT? =? '代墊力費1票' .
??????I_HEADER -XBLNR? =?<DETAL> -VBELN_VL?&&? '/'?&&?<DETAL> -POSNR_VL .
??????I_HEADER -WAERS? =?<DETAL> -WAERK .
?????? CLEAR? :?IT_ITEM .
??????IT_ITEM -BUZEI? =? 1 .
??????IT_ITEM -UMSKZ? =? '' .
?????? IF?<DETAL> -DDZX?>? 0 .
????????IT_ITEM -BSCHL? =? '01' .
????????IT_ITEM -SHKZG? =? 'S' .
?????? ELSE .
????????IT_ITEM -BSCHL? =? '12' .
????????IT_ITEM -SHKZG? =? 'H' .
?????? ENDIF .
??????IT_ITEM -DMBTR? =? ABS (?<DETAL> -DDZX? ) .
??????IT_ITEM -PRCTR? =? '' .
*??????IT_ITEM-ZUONR?=?<DETAL>-VBELN_VL?&&?'/'?&&?<DETAL>-POSNR_VL.
??????IT_ITEM -SGTXT? =? '代墊力費1票' .
??????IT_ITEM -KUNNR? =?<DETAL> -KUNNR .
??????IT_ITEM -KOART? =? 'D' .
?????? APPEND?IT_ITEM .
?????? CLEAR? :?IT_ITEM .
??????IT_ITEM -BUZEI? =? 2 .
??????IT_ITEM -UMSKZ? =? 'U' .
?????? IF?<DETAL> -DDZX?>? 0 .
????????IT_ITEM -BSCHL? =? '39' .
????????IT_ITEM -SHKZG? =? 'H' .
?????? ELSE .
????????IT_ITEM -BSCHL? =? '29' .
????????IT_ITEM -SHKZG? =? 'S' .
?????? ENDIF .
??????IT_ITEM -DMBTR? =? ABS (?<DETAL> -DDZX? ) .
??????IT_ITEM -PRCTR? =? '' .
*??????IT_ITEM-ZUONR?=?<DETAL>-VBELN_VL?&&?'/'?&&?<DETAL>-POSNR_VL.
??????IT_ITEM -SGTXT? =? '代墊力費1票' .
??????IT_ITEM -LIFNR? =? '1090' .
??????IT_ITEM -KOART? =? 'K' .
?????? APPEND?IT_ITEM .
?????? CALL? FUNCTION? 'ZDOCUMENT_BILL_EXCHANG_POST'
???????? EXPORTING
??????????I_HEADER? =?I_HEADER
??????????LW_PRCTR? =? ''
???????? IMPORTING
??????????E_BELNR?? =?I_HEADER -BELNR
??????????E_GJAHR?? =?I_HEADER -GJAHR
???????? TABLES
??????????IT_ITEM?? =?IT_ITEM
?????????? RETURN??? =? RETURN .
?????? IF?I_HEADER -BELNR? IS? INITIAL .
???????? REFRESH?GT_BAPIRET[] .
????????GT_BAPIRET[]? =?RETURN[] .
???????? PERFORM?DISPLAY_ERROR .
???????? CONTINUE .
?????? ELSE .
????????<DETAL> -HXDOC? =?I_HEADER -BELNR .
????????<DETAL> -HXGJR? =?I_HEADER -GJAHR .
????????<DETAL> -HXBUR? =?I_HEADER -BUKRS .
?????? ENDIF .
?????? CLEAR? :?LW_HXMX .
?????? MOVE-CORRESPONDING?<DETAL>? TO?LW_HXMX .
??????LW_HXMX -VBELN? =?<DETAL> -VBELN_VL .
??????LW_HXMX -POSNR? =?<DETAL> -POSNR_VL .
??????LW_HXMX -Z003? =?<DETAL> -ZXHJ .
??????LW_HXMX -Z005? =?<DETAL> -DDZX .
??????LW_HXMX -KF01? =?<DETAL> -YFHJ .
*??????LW_HXMX-HXZXT?=?<DETAL>-HXZXT.
*??????LW_HXMX-HXZXB?=?<DETAL>-HXZXB.
*??????LW_HXMX-HXYFT?=?<DETAL>-HXYFT.
*??????LW_HXMX-HXYFB?=?<DETAL>-HXYFB.
?????? APPEND?LW_HXMX? TO?LT_HXMX .
???? ENDLOOP .
???? IF?LT_HXMX? IS? NOT? INITIAL .
?????? MODIFY?ZSD_HXMX? FROM? TABLE?LT_HXMX .
?????? IF?SY -SUBRC? =? 0? .
???????? COMMIT? WORK .
???????? MESSAGE? '代墊裝卸費開票核銷成功!'? TYPE? 'S' .
?????? ELSE .
???????? ROLLBACK? WORK .
???????? MESSAGE? '代墊裝卸費開票核銷失敗!'? TYPE? 'E' .
?????? ENDIF .
???? ELSE .
?????? MESSAGE? '沒有需要核銷的項目!'? TYPE? 'E' .
???? ENDIF .
?? ENDIF .
ENDFORM .
*&---------------------------------------------------------------------*
*&??????Form??DISPLAY_ERROR
*&---------------------------------------------------------------------*
*???????顯示錯誤
*----------------------------------------------------------------------*
*??-->??p1????????text
*??<--??p2????????text
*----------------------------------------------------------------------*
FORM?DISPLAY_ERROR? .
?? DATA :?GR_TABLE?? TYPE? REF? TO?CL_SALV_TABLE .
?? DATA :?LR_COLUMNS? TYPE? REF? TO?CL_SALV_COLUMNS .
?? TRY .
??????CL_SALV_TABLE =>FACTORY (
?????? IMPORTING
????????R_SALV_TABLE? =?GR_TABLE
?????? CHANGING
????????T_TABLE?????? =?GT_BAPIRET? ) .
???? CATCH?CX_SALV_MSG .?????????????????????????????????? "#EC?NO_HANDLER
?? ENDTRY .
??LR_COLUMNS? =?GR_TABLE ->GET_COLUMNS (? ) .
??LR_COLUMNS ->SET_OPTIMIZE (? 'X'? ) .
??GR_TABLE ->SET_SCREEN_POPUP (
??START_COLUMN? =? 1
??END_COLUMN??? =? 100
??START_LINE??? =? 1
??END_LINE????? =? 20? ) .
??GR_TABLE ->DISPLAY (? ) .
ENDFORM .
*&---------------------------------------------------------------------*
*&??????Form??FRM_DDDY_ZXF
*&---------------------------------------------------------------------*
*???????text
*----------------------------------------------------------------------*
*??-->??p1????????text
*??<--??p2????????text
*----------------------------------------------------------------------*
FORM?FRM_DDDY_ZXF? .
?? DATA :?FM_NAME??????????? TYPE?RS38L_FNAM ,
????????LS_CONTROL_PARAM?? TYPE?SSFCTRLOP ,
????????LS_COMPOSER_PARAM? TYPE?SSFCOMPOP ,
????????OUTOPT???????????? TYPE?SSFCRESOP ,
????????L_JOB_OUTPUT_INFO? TYPE?SSFCRESCL .
?? DATA :?LT_HEADER? TYPE? TABLE? OF?ZVS_HX_HEAD ,
????????L_HEADER?? TYPE?ZVS_HX_HEAD ,
????????LT_ITEM??? TYPE?ZVS_HX_DETAIL_T? WITH? HEADER? LINE .
?? DATA? :?LT_HXMX? TYPE? STANDARD? TABLE? OF?ZSD_HXMX ,
?????????LW_HXMX? TYPE?ZSD_HXMX .
?? DATA :?LV_LINE?? TYPE? I ,
????????EV_MONEY? TYPE?STRING ,
????????IV_MONEY? TYPE?BF_DMBTR ,
????????L_LAST??? TYPE?USER_ADDR -NAME_LAST ,
????????L_FIRST?? TYPE?USER_ADDR -NAME_FIRST .
??LS_CONTROL_PARAM -NO_OPEN? =? 'X' .
??LS_CONTROL_PARAM -NO_CLOSE? =? 'X' .
?? CALL? FUNCTION? 'SSF_OPEN'
???? EXPORTING
??????CONTROL_PARAMETERS? =?LS_CONTROL_PARAM
??????OUTPUT_OPTIONS????? =?LS_COMPOSER_PARAM
???? IMPORTING
??????JOB_OUTPUT_OPTIONS? =?OUTOPT
???? EXCEPTIONS
??????FORMATTING_ERROR??? =? 1
??????INTERNAL_ERROR????? =? 2
??????SEND_ERROR????????? =? 3
??????USER_CANCELED?????? =? 4
?????? OTHERS????????????? =? 5 .
?? "打印的頁數
?? LOOP? AT?GT_DETAL? INTO?GW_DETAL? WHERE? CHECK? =? 'X' .
???? MOVE-CORRESPONDING?GW_DETAL? TO?L_HEADER .
???? COLLECT?L_HEADER? INTO?LT_HEADER .
?? ENDLOOP .
?? SORT?LT_HEADER? BY?KUNNR .
?? LOOP? AT?LT_HEADER? INTO?L_HEADER .
???? REFRESH :?LT_ITEM[] .
???? "打印人
????L_HEADER -USNAM? =?SY -UNAME .
???? CLEAR :?L_LAST ,L_FIRST .
???? SELECT? SINGLE?NAME_LAST?NAME_FIRST
???? INTO? (L_LAST ,L_FIRST? )
?????? FROM?USER_ADDR
?????? WHERE?BNAME? =?L_HEADER -USNAM .
???? CONCATENATE?L_LAST?L_FIRST? INTO?L_HEADER -KAIDR .
???? "金額大寫
????IV_MONEY? =?L_HEADER -DDZX .
???? CALL? FUNCTION? 'ZFUC_NUMERIC_TO_CHINESE'
?????? EXPORTING
????????IV_MONEY???? =?IV_MONEY
?????? IMPORTING
????????EV_MONEY???? =?EV_MONEY
?????? EXCEPTIONS
????????WRONG_MONEY? =? 1
???????? OTHERS?????? =? 2 .
???? IF?SY -SUBRC? =? 0 .
??????L_HEADER -DDZX_C? =?EV_MONEY .
???? ENDIF .
???? "明細
???? LOOP? AT?GT_DETAL? INTO?GW_DETAL? WHERE? CHECK? =? 'X'? AND?KUNNR? =?L_HEADER -KUNNR .
?????? MOVE-CORRESPONDING?GW_DETAL? TO?LT_ITEM .
?????? APPEND?LT_ITEM .
?????? CLEAR?LT_ITEM .
???? ENDLOOP .
???? "小于10行補足十行
???? DESCRIBE? TABLE?LT_ITEM? LINES?LV_LINE .
???? IF?LV_LINE?<? 12? .
??????LV_LINE? =? 12? -?LV_LINE .
?????? DO?LV_LINE? TIMES .
???????? CLEAR?LT_ITEM .
???????? APPEND?LT_ITEM .
?????? ENDDO .
???? ENDIF .
???? CALL? FUNCTION? 'SSF_FUNCTION_MODULE_NAME'
?????? EXPORTING
????????FORMNAME??????????? =? 'ZSD_HXDDZXF_PRINT'
?????? IMPORTING
????????FM_NAME???????????? =?FM_NAME
?????? EXCEPTIONS
????????NO_FORM???????????? =? 1
????????NO_FUNCTION_MODULE? =? 2
???????? OTHERS????????????? =? 3 .
???? CALL? FUNCTION?FM_NAME
?????? EXPORTING
????????CONTROL_PARAMETERS? =?LS_CONTROL_PARAM
????????OUTPUT_OPTIONS????? =?LS_COMPOSER_PARAM
????????I_HEAD????????????? =?L_HEADER
?????? TABLES
????????IT_ITEM???????????? =?LT_ITEM[]
?????? EXCEPTIONS
????????FORMATTING_ERROR??? =? 1
????????INTERNAL_ERROR????? =? 2
????????SEND_ERROR????????? =? 3
????????USER_CANCELED?????? =? 4
???????? OTHERS????????????? =? 5 .
?? ENDLOOP .
?? CALL? FUNCTION? 'SSF_CLOSE'
???? IMPORTING
??????JOB_OUTPUT_INFO?? =?L_JOB_OUTPUT_INFO
???? EXCEPTIONS
??????FORMATTING_ERROR? =? 1
??????INTERNAL_ERROR??? =? 2
??????SEND_ERROR??????? =? 3
?????? OTHERS??????????? =? 4 .
?? IF?SY -SUBRC? =? 0? .
???? IF?L_JOB_OUTPUT_INFO -OUTPUTDONE? =? 'X' .? "是否輸出到打印機
?????? LOOP? AT?GT_DETAL? ASSIGNING?<DETAL>? WHERE? CHECK? =? 'X' .
????????<DETAL> -FLAG? =? 'X' .
???????? CLEAR? :?LW_HXMX .
???????? MOVE-CORRESPONDING?<DETAL>? TO?LW_HXMX .
????????LW_HXMX -VBELN? =?<DETAL> -VBELN_VL .
????????LW_HXMX -POSNR? =?<DETAL> -POSNR_VL .
????????LW_HXMX -Z003? =?<DETAL> -ZXHJ .
????????LW_HXMX -Z005? =?<DETAL> -DDZX .
????????LW_HXMX -KF01? =?<DETAL> -YFHJ .
???????? APPEND?LW_HXMX? TO?LT_HXMX .
?????? ENDLOOP .
?????? IF?LT_HXMX? IS? NOT? INITIAL .
???????? MODIFY?ZSD_HXMX? FROM? TABLE?LT_HXMX .
???????? IF?SY -SUBRC? =? 0? .
?????????? COMMIT? WORK .
?????????? MESSAGE? '代墊裝卸費開票打印成功!'? TYPE? 'S' .
???????? ELSE .
?????????? ROLLBACK? WORK .
?????????? MESSAGE? '代墊裝卸費開票打印失敗!'? TYPE? 'E' .
???????? ENDIF .
?????? ELSE .
???????? MESSAGE? '沒有需要打印的項目!'? TYPE? 'E' .
?????? ENDIF .
???? ENDIF .
?? ENDIF .
ENDFORM .
總結
以上是生活随笔為你收集整理的销售单据条件价格明细表的全部內容,希望文章能夠幫你解決所遇到的問題。