网转 mm IOS 报表
B01?正常庫存?8?8
B02?訂單庫存?8?8
E01?查詢條件?8?8
E04?會計期間?8?8
?
?
P_DD?訂單庫存
P_JS?重新運算
P_LGORT?庫存地點
P_MATKL?物料組
P_MATNR?物料
P_MONTH?過帳期間
P_MTART?物料類型
P_WERKS?工廠
P_YEAR??...
P_ZC?正常庫存
*&---------------------------------------------------------------------*
*& Report? YMMR0108
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT? ymmr0108 MESSAGE-ID 1000.
INCLUDE y_alv_func.
INCLUDE zabap_public.
TABLES:mara,marc,mard,mkpf,mseg,mbew,s032,s031,mardh,mska.
DATA : it_show LIKE TABLE OF yios WITH HEADER LINE.
*TYPES:BEGIN OF t_mseg,
* matnr LIKE mseg-matnr,
* lgort LIKE mseg-lgort,
* shkzg LIKE mseg-shkzg,
* menge LIKE mseg-menge,
* maxbudat LIKE mkpf-budat,
*? minbudat LIKE mkpf-budat,
*END OF t_mseg.
DATA:it_s032 TYPE HASHED TABLE OF s032 WITH UNIQUE KEY mandt
ssour
vrsio
werks
lgort
matnr.
DATA:wa_s032 TYPE s031.
**最近24月用量
DATA:dat24 LIKE sy-datum.
*DATA: it_mseg TYPE? HASHED TABLE OF t_mseg? WITH UNIQUE KEY?? matnr lgort .
*DATA: wa_mseg TYPE t_mseg.
DATA:it_s031 TYPE HASHED TABLE OF s031 WITH UNIQUE KEY matnr? .
DATA:wa_s031 TYPE s031.
**最近庫存結余期間到本月的業務量總和
DATA:it_s031b TYPE HASHED TABLE OF s031 WITH UNIQUE KEY matnr lgort.
DATA:wa_s031b TYPE s031.
**物料所有期間的收發量
DATA:it_s031c TYPE HASHED TABLE OF s031 WITH UNIQUE KEY matnr lgort.
**上月結余庫存
DATA:it_mardh TYPE HASHED TABLE OF mardh WITH UNIQUE KEY matnr lgort.
DATA:wa_mardh TYPE mardh.
**訂單庫存
DATA:BEGIN OF it_mska OCCURS 0.
??????? INCLUDE STRUCTURE? yios .
DATA:
kalab LIKE? mska-kalab,"非限制使用的估價的庫存
kains LIKE? mska-kains,"質量檢驗中的庫存
kaspe LIKE? mska-kaspe."凍結的庫存
DATA:END OF it_mska.
**本月訂單庫存
DATA:it_mska1 TYPE HASHED TABLE OF mska WITH UNIQUE KEY matnr lgort.
**本月前所有庫存
DATA:it_mska2 TYPE HASHED TABLE OF mska WITH UNIQUE KEY matnr lgort.
DATA:wa_mska TYPE?? mska? .
**物料評估歷史
DATA:wa_mbew TYPE mbew.
DATA: v_waers?? LIKE t001-waers,
????? v_fr_date TYPE d,???? "查詢期間第一天
????? v_to_date TYPE d,???? "查詢期間月底日
????? v_edate?? TYPE d.???? "上月最后一天,用于取上月期初
DATA: e_buper LIKE? t009b-poper,??????????????????????????? "24個期間前月
e_gjahr LIKE? t009b-bdatj.????????????????????????????????? "24個期間前度
DATA: p_buper LIKE? t009b-poper," 上期間月
p_gjahr LIKE? t009b-bdatj. " 上期間年度
DATA:datnow LIKE sy-datum."當前日期
**最后收發時間
*DATA: it_mseg1 TYPE? HASHED TABLE OF t_mseg? WITH UNIQUE KEY?? matnr lgort shkzg.
*it_mska
**當前訂單評估
SELECTION-SCREEN BEGIN OF BLOCK erblock WITH FRAME TITLE text-e01.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(31) text-e04 FOR FIELD p_year.
PARAMETERS: p_year LIKE t009b-bdatj OBLIGATORY DEFAULT sy-datum(4).
PARAMETERS: p_month LIKE bkpf-monat OBLIGATORY DEFAULT sy-datum+4(2).
SELECTION-SCREEN END?? OF LINE.
PARAMETERS: p_werks LIKE s032-werks DEFAULT 'LN01' OBLIGATORY .
SELECT-OPTIONS:p_lgort FOR? s032-lgort.
SELECT-OPTIONS:p_mtart FOR mara-mtart.
SELECT-OPTIONS:p_matkl FOR mara-matkl.
SELECT-OPTIONS:p_matnr FOR mara-matnr.
SELECTION-SCREEN BEGIN OF LINE.
*正常庫存
PARAMETERS:p_zc TYPE c RADIOBUTTON GROUP g1? .
SELECTION-SCREEN COMMENT 3(15) text-b01 FOR FIELD p_zc .
SELECTION-SCREEN POSITION 20.
*訂單庫存
PARAMETERS:p_dd TYPE c RADIOBUTTON GROUP g1???? .
SELECTION-SCREEN COMMENT 23(15) text-b02 FOR FIELD p_dd.
SELECTION-SCREEN POSITION 40.
SELECTION-SCREEN END?? OF LINE.
.
PARAMETERS: p_js TYPE c AS CHECKBOX.
SELECTION-SCREEN END?? OF BLOCK erblock.
INITIALIZATION .
? p_zc = 'X'.
AT SELECTION-SCREEN .
*? IF p_month < 1 OR p_month > 12.
*??? MESSAGE '月份錯誤' TYPE 'E'.
*??? EXIT.
*? ENDIF.
AT SELECTION-SCREEN OUTPUT.
START-OF-SELECTION.
? PERFORM check_authority_value.
? IF p_zc = 'X'."正常庫存
??? CLEAR it_show[].
??? IF p_js <> 'X'.
????? SELECT * FROM yios INTO CORRESPONDING FIELDS OF TABLE it_show
??????? WHERE matnr IN p_matnr
????? AND mtart IN p_mtart
????? AND lgort IN p_lgort
????? AND werks = p_werks
????? AND bdatj = p_year
????? AND bumon = p_month.
??? ENDIF.
??? IF it_show[] IS INITIAL.
????? PERFORM get_data.
????? PERFORM pro_data.
??? ENDIF.
??? PERFORM show_data.
? ELSE."訂單庫存
??? my_exit '此功能尚未開發' 'I' .
*??? PERFORM? get_dd_data.
? ENDIF.
*
*&---------------------------------------------------------------------*
*&????? Form? GET_DATA
*&---------------------------------------------------------------------*
*?????? text
*----------------------------------------------------------------------*
*? -->? p1??????? text
*? <--? p2??????? text
*----------------------------------------------------------------------*
FORM get_data .
? DATA: fr_spmon LIKE s031-spmon.
? DATA: to_spmon LIKE s031-spmon.
? DATA:month LIKE p_month.
? month = e_buper+1(2).
? CONCATENATE e_gjahr e_buper INTO fr_spmon.
? CONCATENATE p_year p_month INTO to_spmon.
? SELECT
? marc~werks
? s032~lgort
? mara~matkl
? mara~mtart
? mara~matnr
? s032~basme
? s032~letztzug
? s032~letztabg
? s032~letztbew
? s032~letztver
? marc~loggr
? marc~lgfsb
? marc~lgpro
? mara~mstae
? mara~ersda
? makt~maktx
? mbew~vprsv
? mbew~verpr
? mbew~stprs
? mbew~peinh
? INTO CORRESPONDING FIELDS OF TABLE it_show
? FROM? s032
? INNER JOIN mara ON s032~matnr = mara~matnr? AND s032~mandt = mara~mandt
? INNER JOIN marc ON? s032~matnr = marc~matnr AND???? s032~werks = marc~werks AND s032~mandt = marc~mandt
? INNER JOIN mbew ON? s032~matnr = mbew~matnr AND? s032~werks =? mbew~bwkey AND s032~mandt = mbew~mandt
? INNER JOIN makt ON mara~matnr = makt~matnr AND spras = 1? AND s032~mandt = makt~mandt
?? WHERE mara~matnr IN p_matnr
? AND mara~mtart IN p_mtart
? AND mara~matkl IN p_matkl
? AND marc~werks = p_werks
? AND s032~lgort IN p_lgort
? AND mara~lvorm NE 'X'
? AND marc~lvorm NE 'X'
*? AND s032~lgort NE ''
? .
? IF it_show[] IS INITIAL .
??? my_exit '沒有找到物料信息' ''.
? ENDIF.
**查詢所有物料的收發歷史
? SELECT? matnr lgort
? SUM( mzubb ) AS mzubb"評估的庫存收貨數
? SUM( wzubb ) AS wzubb"估價的庫存收貨值
? SUM( magbb ) AS magbb"估價庫存發貨的數量
? SUM( wagbb ) AS wagbb"已發貨的估價的庫存值
? SUM( magkb ) AS magkb"已發出的寄售庫存數量
? SUM( mgvbr ) AS mgvbr"全部使用數量
? SUM( wgvbr ) AS wgvbr"總使用值
? SUM( muvbr ) AS muvbr"未計劃的用途數量
? SUM( wuvbr ) AS wuvbr"未計劃的用途數值
? FROM? s031? INTO CORRESPONDING FIELDS OF TABLE?? it_s031c
?? WHERE matnr?? IN p_matnr
? AND werks = p_werks
? AND lgort IN p_lgort
*? AND mandt = sy-mandt
*????? AND spmon BETWEEN fr_spmon AND to_spmon
? AND spmon <= to_spmon
??? GROUP BY matnr lgort.
*
******本月業務量
**
? SELECT matnr lgort
? mzubb"評估的庫存收貨數
? wzubb"估價的庫存收貨值
? magbb"估價庫存發貨的數量
? wagbb"已發貨的估價的庫存值
? magkb"已發出的寄售庫存數量
? mgvbr"全部使用數量
? wgvbr"總使用值
? muvbr"未計劃的用途數量
? wuvbr"未計劃的用途數值
? FROM? s031? INTO CORRESPONDING FIELDS OF TABLE it_s031b
? WHERE matnr?? IN p_matnr
? AND werks = p_werks
? AND lgort IN p_lgort
? AND spmon = to_spmon
? .
****最近24個月用量
? SELECT matnr "lgort
? SUM( mzubb ) AS mzubb"評估的庫存收貨數
? SUM( wzubb ) AS wzubb"估價的庫存收貨值
? SUM( magbb ) AS magbb"估價庫存發貨的數量
? SUM( wagbb ) AS wagbb"已發貨的估價的庫存值
? SUM( magkb ) AS magkb"已發出的寄售庫存數量
? SUM( mgvbr ) AS mgvbr"全部使用數量
? SUM( wgvbr ) AS wgvbr"總使用值
? SUM( muvbr ) AS muvbr"未計劃的用途數量
? SUM( wuvbr ) AS wuvbr"未計劃的用途數值
? FROM? s031? INTO CORRESPONDING FIELDS OF TABLE it_s031
? WHERE matnr?? IN p_matnr
? AND werks = p_werks
? AND lgort IN p_lgort
? AND spmon BETWEEN fr_spmon AND to_spmon
? GROUP BY matnr. "lgort.
? CLEAR:it_mska1[],it_mska2[].
***總訂單庫存
*? SELECT
*?? mska~lgort
*?? mska~matnr
*?? SUM(? kalab ) AS kalab "非限制使用的估價的庫存
*?? SUM(? kains ) AS kains "質量檢驗中的庫存
*?? SUM(? kaspe ) AS kaspe "凍結的庫存
*?? INTO CORRESPONDING FIELDS OF TABLE it_mska1
*?? FROM? mska
*?? WHERE mska~matnr IN p_matnr
*?? AND? mska~werks = p_werks
*?? AND? mska~lgort IN p_lgort
*
*?? AND mska~lfgja <= p_year
*?? AND mska~lfmon <= p_month
*??? GROUP BY lgort matnr
*?? .
**本月訂單庫存
*? SELECT
*?? mska~lgort
*?? mska~matnr
*?? mska~kalab"非限制使用的估價的庫存
*?? mska~kains"質量檢驗中的庫存
*?? mska~kaspe"凍結的庫存
*?? INTO CORRESPONDING FIELDS OF TABLE it_mska2
*?? FROM? mska
*?? WHERE mska~matnr IN p_matnr
*?? AND? mska~werks = p_werks
*?? AND? mska~lgort IN p_lgort
*?? AND mska~lfgja = p_year
*?? AND mska~lfmon = p_month
? .
ENDFORM.??????????????????? " GET_DATA
*&---------------------------------------------------------------------*
*&????? Form? PRO_DATA
*&---------------------------------------------------------------------*
*?????? text
*----------------------------------------------------------------------*
*? -->? p1??????? text
*? <--? p2??????? text
*----------------------------------------------------------------------*
FORM pro_data .
? DATA:date1 TYPE d.
? DATA:itemp TYPE int4.
? LOOP AT it_show.
??? it_show-bdatj =? p_year.
??? it_show-bumon =? p_month.
??? CLEAR: wa_s031,wa_s031b,itemp,wa_mardh,wa_mska .
*??? DATA: fr_spmon LIKE s031-spmon.
*??? DATA: to_spmon LIKE s031-spmon.
**??? CONCATENATE wa_mardh-lfgja wa_mardh-lfmon INTO fr_spmon.
*??? CONCATENATE p_year p_month INTO to_spmon.
***begin 查詢期間庫存
** 查詢上月結余
*??? READ TABLE it_mardh WITH TABLE KEY? matnr = it_show-matnr lgort = it_show-lgort? INTO wa_mardh.
*??? IF sy-subrc <> 0."如果上月沒有結余說明本月沒有業務移動,庫存=最近一次月結庫存(凍結庫存+非限制+質檢庫存)
*????? SELECT * FROM mardh
*????? UP TO 1 ROWS
*????? INTO CORRESPONDING FIELDS OF wa_mardh
*????? WHERE matnr? = it_show-matnr
*????? AND werks = p_werks
*????? AND lgort? = it_show-lgort
*????? AND (
*??????? lfgja < p_gjahr OR ( lfgja = p_gjahr AND? lfmon < p_buper ) )
*????? ORDER BY lfgja DESCENDING lfmon DESCENDING
*????? .
*????? ENDSELECT.
*????? IF sy-subrc <> 0.
*??????? DELETE it_show.
*??????? CONTINUE.
*????? ENDIF.
*????? it_show-mbwbest =? wa_mardh-labst + wa_mardh-insme + wa_mardh-speme.
*????? SELECT
*????? SUM( mzubb ) AS mzubb"評估的庫存收貨數
*????? SUM( wzubb ) AS wzubb"估價的庫存收貨值
*????? SUM( magbb ) AS magbb"估價庫存發貨的數量
*????? SUM( wagbb ) AS wagbb"已發貨的估價的庫存值
*????? SUM( magkb ) AS magkb"已發出的寄售庫存數量
*????? SUM( mgvbr ) AS mgvbr"全部使用數量
*????? SUM( wgvbr ) AS wgvbr"總使用值
*????? SUM( muvbr ) AS muvbr"未計劃的用途數量
*????? SUM( wuvbr ) AS wuvbr"未計劃的用途數值
*????? FROM? s031? INTO CORRESPONDING FIELDS OF?? wa_s031
*????? WHERE matnr? = it_show-matnr
*????? AND werks = p_werks
*????? AND lgort? = it_show-lgort
**????? AND spmon BETWEEN fr_spmon AND to_spmon
*????? AND spmon <= to_spmon
*?????? .
??? IF it_show-lgort IS INITIAL.
*????? SELECT SUM( lbkum )
*?????? SUM( salk3 ) FROM ebew
*????? INTO (it_show-LBKUM,it_show-SALK3)
*????? WHERE matnr = it_show-matnr .
*????? IF sy-subrc <> 0 .
*??????? DELETE it_show.
*??????? CONTINUE.
*????? ENDIF.
*
*????? it_show-mbwbest = it_show-LBKUM.
*????? it_show-wbwbest = it_show-SALK3.
????? EXEC SQL .
??????? select SUM( case when SHKZG = 'S' THEN MENGE ELSE -1*MENGE END ) as LBKUM
?????? ,SUM( case when SHKZG = 'S' THEN DMBTR ELSE -1*DMBTR END )? as salk3
??????? from mseg
??????? into :it_show-LBKUM,:it_show-salk3
??????? WHERE matnr = :it_show-matnr
??????? and exists (
??????? select mblnr from mkpf
??????? where BUDAT <= :v_to_date
??????? and mkpf.mblnr = mseg.mblnr
??????? and mkpf.MJAHR = mseg.MJAHR
??????? and mkpf.mandt = mseg.mandt
??????? )
??????? and SOBKZ = 'E'
??????? and mseg.mandt? = :sy-mandt
????? ENDEXEC.
*????? IF sy-subrc <> 0 .
*??????? DELETE it_show.
*??????? CONTINUE.
*????? ENDIF.
*????? it_show-mbwbest = it_show-lbkum.
*????? it_show-salk3 =?? it_show-lbkum * it_show-verpr / it_show-peinh.
*????? it_show-wbwbest =? it_show-salk3 .
??? ENDIF.
*???? READ TABLE?? it_mska1 WITH TABLE KEY matnr = it_show-matnr lgort = it_show-lgort? INTO wa_mska.
??? READ TABLE? it_s031c WITH TABLE KEY matnr = it_show-matnr lgort = it_show-lgort? INTO wa_s031.
??? IF sy-subrc = 0 .
????? it_show-mbwbest =?? wa_s031-mzubb - wa_s031-magbb? ."+ wa_mska-kalab + wa_mska-kains + wa_mska-kaspe..
????? it_show-wbwbest =?? wa_s031-wzubb - wa_s031-wagbb .
??? ENDIF.
??? CLEAR? wa_mska.
*??? READ TABLE?? it_mska2 WITH TABLE KEY matnr = it_show-matnr lgort = it_show-lgort? INTO wa_mska.
*??? READ TABLE? it_s031b WITH TABLE KEY matnr = it_show-matnr lgort = it_show-lgort? INTO wa_s031b.
*??? IF sy-subrc = 0 .
*????? it_show-sqkc? =?? wa_s031b-mzubb + wa_s031b-magbb .
*??? ENDIF.
*??? IF? it_show-mbwbest IS INITIAL AND? it_show-lbkum IS INITIAL.
??? IF it_show-lgort IS INITIAL.
????? IF it_show-lgfsb IS NOT INITIAL.
??????? it_show-lgort = it_show-lgfsb.
????? ELSE.
??????? it_show-lgort = it_show-lgpro.
????? ENDIF.
*????? DELETE it_show.
*????? CONTINUE.
??? ENDIF.
*??? ELSE."如果上月有結余庫存,庫存 = 上月結余(凍結庫存+非限制+質檢庫存) + 本月收貨總數 - 本月發貨總數。
**上期庫存 = 當前庫存 - 減去本月收 + 減去本月發
*??? CLEAR:wa_s031b.
*??? READ TABLE? it_s031b WITH TABLE KEY matnr = it_show-matnr lgort = it_show-lgort? INTO wa_s031b.
*??? it_show-mbwbest =? wa_mardh-labst + wa_mardh-insme + wa_mardh-speme + wa_s031b-mzubb - wa_s031b-magbb.
*??? it_show-sqkc = wa_mardh-labst + wa_mardh-insme + wa_mardh-speme.
??? IF? it_show-mbwbest = 0 AND? it_show-lbkum? = 0? AND? it_show-wbwbest = 0.
????? DELETE it_show.
????? CONTINUE.
??? ENDIF.
*??? ENDIF.
*** 期間庫存價值
*??? SELECT SINGLE vprsv
*????? verpr
*????? stprs
*????? peinh
*????? bklas FROM mbew
*??? INTO CORRESPONDING FIELDS OF wa_mbew
*??? WHERE matnr? = it_show-matnr
*????? AND bwkey = p_werks
*????? AND lfmon = wa_mardh-lfmon
*????? AND lfgja = wa_mardh-lfgja
??? .
*??? IF sy-subrc <> 0 .
*????? DELETE it_show.
*????? CONTINUE.
*??? ENDIF.
*??? IF it_show-vprsv = 'S'.
*????? it_show-wbwbest = it_show-wbwbest +? it_show-mbwbest * it_show-stprs / it_show-peinh .
**????? it_show-sqkcje =? it_show-sqkcje? + it_show-sqkc * it_show-stprs / it_show-peinh.
*
*??? ELSE.
*????? it_show-wbwbest =? it_show-wbwbest + it_show-mbwbest * it_show-verpr / it_show-peinh .
**????? it_show-sqkcje =? it_show-sqkcje +? it_show-sqkc * it_show-verpr / it_show-peinh.
**
*??? ENDIF.
*??? READ TABLE? it_s031b WITH TABLE KEY matnr = it_show-matnr lgort = it_show-lgort? INTO wa_s031.
***end 查詢期間庫存
*** 最近24個月用量
??? CLEAR: wa_s031,itemp .
??? READ TABLE? it_s031 WITH TABLE KEY matnr = it_show-matnr? INTO wa_s031. "lgort = it_show-lgort
*?? SUM( mgvbr ) AS mgvbr"全部使用數量
*?? SUM( wgvbr ) AS wgvbr"總使用值
??? it_show-l24u = wa_s031-mgvbr .
??? it_show-l24v = wa_s031-wgvbr.
**新物料
??? itemp = datnow - it_show-ersda.
??? IF itemp < 365 .
????? it_show-xwl = 'X'.
??? ENDIF.
** 收貨呆滯天數
??? IF? it_show-letztzug IS INITIAL OR? it_show-letztzug = '99991231'.
????? it_show-shdzts = 366.
??? ELSE.
????? it_show-shdzts = datnow? - it_show-letztzug.
??? ENDIF.
**發貨呆滯天數
??? IF? it_show-letztabg IS INITIAL OR? it_show-letztabg = '99991231'.
????? IF it_show-xwl = 'X'.
??????? it_show-fhdzts = 1.
????? ELSE.
??????? IF? it_show-shdzts > 365.
????????? it_show-fhdzts = 365.
??????? ELSE.
????????? it_show-fhdzts = it_show-shdzts.
??????? ENDIF.
????? ENDIF.
??? ELSE.
????? it_show-fhdzts = datnow? - it_show-letztabg.
??? ENDIF.
**呆滯天數取收貨和發貨呆滯天數中小的減一天
??? IF it_show-shdzts >? it_show-fhdzts .
????? it_show-dzts =???? it_show-fhdzts - 1.
??? ELSE.
????? it_show-dzts =???? it_show-shdzts - 1.
??? ENDIF.
**obsolete
??? PERFORM sub_obsolete.
**inactive
??? PERFORM sub_inactive.
**surplus
??? PERFORM sub_surplus.
??? SHIFT it_show-matnr LEFT DELETING LEADING '0'.
??? MODIFY it_show.
? ENDLOOP.
ENDFORM.??????????????????? " PRO_DATA
*&---------------------------------------------------------------------*
*&????? Form? SUB_OBSOLETE
*&---------------------------------------------------------------------*
*?????? text
*----------------------------------------------------------------------*
*? -->? p1??????? text
*? <--? p2??????? text
*----------------------------------------------------------------------*
FORM sub_obsolete .
? DATA:mbwbest LIKE it_show-mbwbest,
? wbwbest LIKE it_show-wbwbest.
? mbwbest = it_show-mbwbest + it_show-lbkum.
? wbwbest = it_show-wbwbest + it_show-salk3? .
? IF it_show-mstae IS NOT INITIAL"停用標志
??? OR? it_show-maktx CA '停用'"描述中有停用
??? OR it_show-lgort = '1002' "電工材料壞料倉
??? OR it_show-lgort = '1010' "電工OEM不良品專
??? OR it_show-lgort = '1102' "照明材料壞料倉
??? OR it_show-lgort = '1203' "變賣廢品專用倉
??? .
*oqty TYPE p LENGTH 12 DECIMALS 3?? ,"? Obsolete Qty
*oamt TYPE p LENGTH 12 DECIMALS 3?? ,"?? Obsolete Amount
??? it_show-oqty =? mbwbest.
??? it_show-oamt =? wbwbest.
? ENDIF.
ENDFORM.??????????????????? " SUB_OBSOLETE
*&---------------------------------------------------------------------*
*&????? Form? sub_inactive
*&---------------------------------------------------------------------*
*?????? text
*----------------------------------------------------------------------*
FORM sub_inactive.
*iqty TYPE p LENGTH 12 DECIMALS 3?? ,"? Inactive Qty
*iamt TYPE p LENGTH 12 DECIMALS 3?? ,"? Inactive Amount
? DATA:mbwbest LIKE it_show-mbwbest,
? wbwbest LIKE it_show-wbwbest.
? mbwbest = it_show-mbwbest + it_show-lbkum.
? wbwbest = it_show-wbwbest + it_show-salk3? .
? IF? it_show-xwl IS NOT INITIAL
? AND it_show-oqty = 0
? AND it_show-oamt = 0
? AND
? ( it_show-dzts > 365
? OR it_show-lgort = '1003'"電工物料呆滯倉
? OR it_show-lgort = '1014'"電工成品呆滯倉
? OR it_show-lgort = '1103'"照明物料呆滯倉
? OR it_show-lgort = '1114'"照明成品呆滯倉
? OR it_show-lgort = '1205'"OEM成品呆滯倉
? )
? .
??? it_show-iqty =? mbwbest.
??? it_show-iamt =? wbwbest.
? ENDIF.
ENDFORM.??????????????????? "sub_inactive
*&---------------------------------------------------------------------*
*&????? Form? SUB_SURPLUS
*&---------------------------------------------------------------------*
*?????? text
*----------------------------------------------------------------------*
*? -->? p1??????? text
*? <--? p2??????? text
*----------------------------------------------------------------------*
FORM sub_surplus .
? DATA:mbwbest LIKE it_show-mbwbest,
? wbwbest LIKE it_show-wbwbest.
? mbwbest = it_show-mbwbest + it_show-lbkum.
? wbwbest = it_show-wbwbest + it_show-salk3? .
* New Material is only calculate quatity.
? IF? it_show-xwl = 'X'.
*splusqty TYPE p LENGTH 12 DECIMALS 3?? ,"? surplus qty
*splusrsv TYPE p LENGTH 12 DECIMALS 3?? ,"?? surplus reserve
??? it_show-splusqty =?? mbwbest.
? ENDIF.
* store-quantity - obsolate - inactive > 24mUes
? IF it_show-oqty = 0 AND it_show-iqty = 0 AND? mbwbest > it_show-l24u.
??? it_show-splusqty? =? mbwbest.
? ENDIF.
? IF it_show-oamt = 0 AND it_show-iamt = 0 AND? wbwbest > it_show-l24v.
??? it_show-splusrsv? =? wbwbest.
? ENDIF.
ENDFORM.??????????????????? " SUB_SURPLUS
*&---------------------------------------------------------------------*
*&????? Form? SHOW_DATA
*&---------------------------------------------------------------------*
*?????? text
*----------------------------------------------------------------------*
*? -->? p1??????? text
*? <--? p2??????? text
*----------------------------------------------------------------------*
FORM show_data .
? DATA:v_title TYPE string.
? v_title = LINES( it_show ).
? CONCATENATE '數據條數:' v_title INTO v_title.
? alv_set_status.
*? alv_set_title? v_title.
? alv_clear_data.
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'WERKS' '工廠' ."工廠
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'LGORT' '實際倉位' ."倉位
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'MTART' '物料類型' ."物料類型
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'MATNR' '物料' ."物料
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'MAKTX' '物料描述' ."物料描述
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'BASME' '單位' ."單位
*? alv_add_data 'IT_SHOW'? 'X' ' ' '' 'X' 'CHAR' 'SQKC' '上前庫存數量' ."
*? alv_add_data 'IT_SHOW'? 'X' ' ' '' 'X' 'CHAR' 'SQKCJE' '上前庫存金額' .
? alv_add_data 'IT_SHOW'? 'X' ' ' '' 'X' 'CHAR' 'MBWBEST' '當前庫存數量' ."
? alv_add_data 'IT_SHOW'? 'X' ' ' '' 'X' 'CHAR' 'WBWBEST' '當前庫存金額' .
*
? alv_add_data 'IT_SHOW'? 'X' ' ' '' 'X' 'CHAR' 'LBKUM' '訂單庫存' ."
? alv_add_data 'IT_SHOW'? 'X' ' ' '' 'X' 'CHAR' 'SALK3' '訂單庫存金額' .
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR'? 'LETZTBEW' '最近移動'? ."最后一次收貨
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'LETZTZUG' '最后一次收貨' ."最后一次收貨
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'LETZTABG' '最后一次發貨' ."最后一次發貨
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'LETZTVER' '最后一次消耗' ."最后一次消耗
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'DZTS' '呆滯天數' ."呆滯天數
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'XWL' 'New 物料' ."New 物料
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'SHDZTS' 'Aging Days(收)' ."Aging Days(收)
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'FHDZTS' 'Aging Days(發)' ."Aging Days(發)
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'OQTY' 'Obsolete Qty' ."Obsolete Qty
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'OAMT' 'Obsolete Amount' ."Obsolete Amount
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'IQTY' 'Inactive Qty' ."Inactive Qty
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'IAMT' 'Inactive Amount' ."Inactive Amount
? alv_add_data 'IT_SHOW'? 'X' ' ' '' 'X' 'CHAR' 'L24U' '最近24個月用量' ."Last 24m Usage
? alv_add_data 'IT_SHOW'? 'X' ' ' '' 'X' 'CHAR' 'L24V' '最近24個月用值' ."Last 24m Usage
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'AFTIOQTY' 'Qty After IO' ."Qty After IO
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'SPLUSQTY' 'surplus qty' ."surplus qty
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'SPLUSRSV' 'surplus reserve' ."surplus reserve
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'LSTPRC' 'Latest Price' ."Latest Price
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'PRCCST' 'Price vs. Cost' ."Price vs. Cost
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'LCM' 'LCM' ."LCM
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'ZP' '展品(Y)' ."展品(Y)
? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'RMK(200)' 'Remark' ."Remark
*? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'VPRSV' '價格控制' ."
*? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'VERPR' '移動平均價' ."
*? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'STPRS' '標準價' .
*? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'PEINH' '價格單位' ."
*? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'LGFSB' '采購倉位' ."
*? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'LGPRO' '自制倉位' ."
*? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'LVORM' '刪除標記' ."刪除
*? alv_add_data 'IT_SHOW'? '' ' ' '' 'X' 'CHAR' 'MSTAE' '停用狀態' ."
? alv_show_data it_show.
ENDFORM.??????????????????? " SHOW_DATA
*&---------------------------------------------------------------------*
*&????? Form? user_command
*&---------------------------------------------------------------------*
*?????? text? 處理雙擊事件
*----------------------------------------------------------------------*
*????? -->R_UCOMM????? text
*????? -->RS_SELFIELD? text
*----------------------------------------------------------------------*
FORM user_command? USING r_ucomm LIKE sy-ucomm
?????????????????????????? rs_selfield TYPE slis_selfield.
*
? CASE r_ucomm.
??? WHEN '&IC1'.
*????? CASE rs_selfield-sel_tab_field.
*??????? WHEN? 'ITAB-VBELN'.
*????????? SET PARAMETER ID 'AUN' FIELD rs_selfield-value.
*????????? CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
*??????? WHEN? 'ITAB2-VBELN'.
*????????? SET PARAMETER ID 'AUN' FIELD rs_selfield-value.
*????????? CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
*????? ENDCASE.
??? WHEN '&SAV'.
????? IF p_dd = 'X'.
??????? my_exit '訂單庫存查詢時不能保存!' 'I'.
????? ENDIF.
????? DATA count TYPE i.
????? SELECT COUNT( * ) FROM yios INTO count
????? WHERE?? bdatj = p_year
??????? AND bumon = p_month.
????? IF? count > 0 .
??????? CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
????????? EXPORTING
??????????? defaultoption? = 'Y'
??????????? textline1????? = '此期間存在數據,保存將覆蓋,點擊"是"確認保存,點擊"否" 取消保存'
??????????? textline2????? = ''
??????????? titel????????? = '保存提示'
??????????? start_column?? = 25
??????????? start_row????? = 6
??????????? cancel_display = ''
????????? IMPORTING
??????????? answer???????? = ucomm.
??????? IF ucomm NE 'N'.
????????? PERFORM save_data.
??????? ELSE.
????????? MESSAGE '操作被取消' TYPE 'S'.
??????? ENDIF.
????? ELSE.
??????? PERFORM save_data.
????? ENDIF.
??? WHEN OTHERS.
? ENDCASE.
ENDFORM.??????????????????? "user_command
*
FORM set_pf_status USING rt_extab TYPE slis_t_extab.
? SET PF-STATUS 'ZSTANDARD' .
ENDFORM.??????????????????? "set_pf_status
*&---------------------------------------------------------------------*
*&????? Form? SAVE_DATA
*&---------------------------------------------------------------------*
*?????? text
*----------------------------------------------------------------------*
*? -->? p1??????? text
*? <--? p2??????? text
*----------------------------------------------------------------------*
FORM save_data .
? MODIFY yios FROM TABLE?? it_show.
? msg = LINES( it_show ).
? CONCATENATE '成功保存:' msg '條數據!' INTO msg.
? MESSAGE msg TYPE 'S'.
ENDFORM.??????????????????? " SAVE_DATA
?
**************************< 以下是過程 >********************************
*&---------------------------------------------------------------------*
*&????? Form? CHECK_AUTHORITY_VALUE
*&---------------------------------------------------------------------*
FORM check_authority_value .
? DATA: lv_monat(3) TYPE n, v_periv LIKE t001-periv.
? AUTHORITY-CHECK OBJECT 'YREPORT'
??? ID 'BUKRS' FIELD 'HL01'
??? ID 'WERKS' FIELD 'LN01'.
? IF sy-subrc NE 0.
??? MESSAGE e005(ymess) WITH 'No Authorization!'.
? ENDIF.
*? CONCATENATE p_gjahr p_monat '01' INTO v_fr_date.?????? "得到本期間第一天?? ZHOUXU V1.0 DEL
? lv_monat = p_month.
? SELECT SINGLE waers periv FROM t001
???????? INTO (v_waers,v_periv)
???????? WHERE bukrs = 'HL01'.
*------------------ 得到期間第一天--------------------
? CALL FUNCTION 'FIRST_DAY_IN_PERIOD_GET'???????????????? "取本月期間第一天
??? EXPORTING
????? i_gjahr = p_year???????????????????????????????????? "會計年度
????? i_periv = v_periv???????????????????????????????????? "會計年度變式K4
????? i_poper = lv_monat??????????????????????????????????? "期間(3位N)''
??? IMPORTING
????? e_date? = v_fr_date.
*----------------begin 得到24個月的前的會計年度和月份-----------
? v_edate = v_fr_date - 1.
? DATA:dat TYPE d,???? "上個月的第一天,臨時變量
? i TYPE i.
? dat = v_edate.
? CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'???????????????? "得到上期間會計年度和月份
???? EXPORTING
???????? i_date? = dat
???????? i_periv = v_periv
???? IMPORTING
???????? e_buper = p_buper
???????? e_gjahr = p_gjahr.
? WHILE i < 24.
??? i? = i + 1 .
??? CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'???????????????? "得到上期間會計年度和月份
???? EXPORTING
???????? i_date? = dat
???????? i_periv = v_periv
???? IMPORTING
???????? e_buper = e_buper
???????? e_gjahr = e_gjahr.
??? CALL FUNCTION 'FIRST_DAY_IN_PERIOD_GET'???????????????? "取本月期間第一天
??? EXPORTING
????? i_gjahr =? e_gjahr???????????????????????????????????? "會計年度
????? i_periv = v_periv???????????????????????????????????? "會計年度變式K4
????? i_poper = e_buper???????????????????????????????????? "期間(3位N)''
??? IMPORTING
????? e_date? = dat.
??? dat? = dat - 1 .
? ENDWHILE.
*----------------END?? 得到24個月的前的會計年度和月份-----------
? CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'???????????????? "取本月最后一天
??? EXPORTING
????? i_gjahr = p_year?????????????????????????????????? "會計年度
????? i_periv = v_periv???????????????????????????????????? "會計年度變式K4
????? i_poper = lv_monat??????????????????????????????????? "期間(3位N)''
??? IMPORTING
????? e_date? = v_to_date.
? IF v_edate = 0.
??? MESSAGE '[會計年度] 或 [會計期間] 輸入錯誤, 請檢查輸入!' TYPE? 'S' .
??? STOP.
? ENDIF.
? "得到上月末
? IF v_edate(6) < '200808'.
??? MESSAGE '[會計年度] 或 [會計期間] 不能早于上線時間:2008年9月, 請檢查輸入!' TYPE? 'S' .
??? STOP.
? ENDIF.
? IF v_to_date > sy-datum.
??? datnow =? sy-datum.
? ELSE.
??? datnow =? v_to_date .
? ENDIF.
? CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
??? EXPORTING
????? text = '程序正在運行中,請稍候...'.
ENDFORM.??????????????????? " CHECK_AUTHORITY_VALUE
*&---------------------------------------------------------------------*
*&????? Form? APPEND_MSEG
*&---------------------------------------------------------------------*
*?????? text
*----------------------------------------------------------------------*
*? -->? p1??????? text
*? <--? p2??????? text
*----------------------------------------------------------------------*
*FORM append_mseg .
*? INSERT wa_mseg INTO TABLE it_mseg?? .
*ENDFORM.??????????????????? " APPEND_MSEG
總結
以上是生活随笔為你收集整理的网转 mm IOS 报表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 逻辑数据库读取bseg
- 下一篇: 怎么将SAP数据传输到其他系统(Tran