SAP 通用获取汇率

这是一个ABAP程序,用于处理物料凭证和销售订单的数据,包括筛选、合并和计算。程序首先定义了一系列的内部表类型来存储数据,然后在选择屏幕中获取用户输入的日期范围和机台号等信息。接着,从数据库表中提取相关数据,进行数据处理,如计算单价、总金额和比例用量等。最后,程序使用ALV显示处理后的数据报表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码如下:

REPORT ZPPR0035.

TABLES: MKPF,

MSEG,CRHD.

**---Initial table it_mkpf

TYPES: BEGIN OF STR_MKPF,

MBLNR LIKE MKPF-MBLNR, "物料凭证编号

MJAHR LIKE MKPF-MJAHR, "物料凭证年度

BUDAT LIKE MKPF-BUDAT, "凭证中的记帐日期

END OF STR_MKPF.

DATA: WA_MKPF TYPE STR_MKPF,

IT_MKPF TYPE TABLE OF STR_MKPF.

**---Initial table it_mseg

TYPES: BEGIN OF STR_MSEG,

MBLNR LIKE MSEG-MBLNR, "物料凭证编号

ZEILE LIKE MSEG-ZEILE,

MJAHR LIKE MSEG-MJAHR, "物料凭证年度

SGTXT LIKE MSEG-SGTXT, "项目文本

AUFNR LIKE MSEG-AUFNR, "订单编码

MATNR LIKE MSEG-MATNR, "物料号

MENGE LIKE MSEG-MENGE, "数量

MEINS LIKE MSEG-MEINS, "基本计量单位

BWART LIKE MSEG-BWART, "移动类型 (库存管理)

WAERS LIKE MSEG-WAERS, "货币代码

CHARG LIKE MSEG-CHARG,

END OF STR_MSEG.

DATA: WA_MSEG TYPE STR_MSEG,

IT_MSEG TYPE TABLE OF STR_MSEG.

DATA: WA_MSEG2 TYPE STR_MSEG,

IT_MSEG2 TYPE TABLE OF STR_MSEG.

**---Initial table it_afpo

TYPES: BEGIN OF STR_AFPO,

AUFNR LIKE AFPO-AUFNR, "订单编码

KDAUF LIKE AFPO-KDAUF, "销售订单号

KDPOS LIKE AFPO-KDPOS, "销售订单行项

WEMNG LIKE AFPO-WEMNG, "此订单项的收货数量

MEINS LIKE AFPO-MEINS, "

END OF STR_AFPO.

DATA: WA_AFPO TYPE STR_AFPO,

IT_AFPO TYPE TABLE OF STR_AFPO.

**---Initial table it_aufm

TYPES: BEGIN OF STR_AUFM,

AUFNR LIKE AUFM-AUFNR, "订单编码

MATNR LIKE AUFM-MATNR, "物料号

BWART LIKE AUFM-BWART, "移动类型 (库存管理)

MENGE LIKE AUFM-MENGE, "数量

MEINS LIKE AUFM-MEINS, "基本计量单位

WERKS LIKE AUFM-WERKS, "plant

BUDAT LIKE AUFM-BUDAT,

MBLNR LIKE AUFM-MBLNR,

MJAHR LIKE AUFM-MJAHR,

ZEILE LIKE AUFM-ZEILE,

END OF STR_AUFM.

DATA: WA_AUFM TYPE STR_AUFM,

IT_AUFM TYPE TABLE OF STR_AUFM.

**---Initial table it_mbew

TYPES: BEGIN OF STR_MBEW,

MATNR LIKE MBEW-MATNR, "物料号

STPRS LIKE MBEW-STPRS, "标准价格

END OF STR_MBEW.

DATA: WA_MBEW TYPE STR_MBEW,

IT_MBEW TYPE TABLE OF STR_MBEW.

**---Initial table it_mbewh

TYPES: BEGIN OF STR_MBEWH,

MATNR LIKE MBEWH-MATNR, "物料号

LFGJA LIKE MBEWH-LFGJA,

LFMON LIKE MBEWH-LFMON,

BWKEY LIKE MBEWH-BWKEY,

STPRS LIKE MBEWH-STPRS, "标准价格

END OF STR_MBEWH.

DATA: WA_MBEWH TYPE STR_MBEWH,

IT_MBEWH TYPE TABLE OF STR_MBEWH.

**---Initial table it_abap

TYPES: BEGIN OF STR_VBAP,

VBELN LIKE VBAP-VBELN, "销售凭证

POSNR LIKE VBAP-POSNR, "销售凭证 Item

UMVKN LIKE VBAP-UMVKN, "销售量转换为SKU的值(除数)

UMVKZ LIKE VBAP-UMVKZ, "销售数量转换成SKU的分子(因子)

VRKME LIKE VBAP-VRKME, "销售单位

GEWEI LIKE VBAP-GEWEI, "重量单位

KWMENG LIKE VBAP-KWMENG, "定单重量

NETWR LIKE VBAP-NETWR, "净价值

WAERK LIKE VBAP-WAERK, "SD 凭证货币

KNUMV LIKE VBAK-KNUMV,

END OF STR_VBAP.

DATA: WA_VBAP TYPE STR_VBAP,

IT_VBAP TYPE TABLE OF STR_VBAP.

**---Initial table it_vbak

TYPES: BEGIN OF STR_VBAK,

KNUMV LIKE VBAK-KNUMV,

VBELN LIKE VBAK-VBELN,

END OF STR_VBAK.

DATA: WA_VBAK TYPE STR_VBAK,

IT_VBAK TYPE TABLE OF STR_VBAK.

**---initial table it_vbkd

TYPES: BEGIN OF STR_VBKD,

VBELN LIKE VBKD-VBELN, "销售凭证

POSNR LIKE VBKD-POSNR, "销售凭证 Item

PRSDT LIKE VBKD-PRSDT, "定价日期

KURSK LIKE VBKD-KURSK, "汇率

END OF STR_VBKD.

DATA: WA_VBKD TYPE STR_VBKD,

IT_VBKD TYPE TABLE OF STR_VBKD.

**---Initial table it_konv

TYPES: BEGIN OF STR_KONV,

KNUMV LIKE KONV-KNUMV, "单据条件数

KBETR LIKE KONV-KBETR, "金额

WAERS LIKE KONV-WAERS, "货币代码

KPOSN LIKE KONV-KPOSN,

END OF STR_KONV.

DATA: WA_KONV TYPE STR_KONV,

IT_KONV TYPE TABLE OF STR_KONV.

DATA: WA_KONV2 TYPE STR_KONV,

IT_KONV2 TYPE TABLE OF STR_KONV.

**---Initial table it_tab

TYPES: BEGIN OF STR_TAB,

BUDAT LIKE MKPF-BUDAT, "凭证中的记帐日期

ZEILE LIKE AUFM-ZEILE,

WERKS LIKE AUFM-WERKS, "plant

MBLNR LIKE MSEG-MBLNR, "物料凭证编号

MJAHR LIKE MSEG-MJAHR, "物料凭证年度

SGTXT LIKE MSEG-SGTXT, "项目文本

* AUFNR LIKE MSEG-AUFNR, "订单编码

MATNR LIKE MSEG-MATNR, "物料号

MENGE LIKE MSEG-MENGE, "数量

MEINS LIKE MSEG-MEINS, "基本计量单位

BWART LIKE MSEG-BWART, "移动类型 (库存管理)

WAERS LIKE MSEG-WAERS, "货币代码

KDAUF LIKE AFPO-KDAUF, "销售订单号

KDPOS LIKE AFPO-KDPOS, "销售订单行项

WEMNG LIKE AFPO-WEMNG, "此订单项的收货数量

AUFNR LIKE AUFM-AUFNR, "订单编码

MATNR_M LIKE AUFM-MATNR, "物料号

MENGE_M LIKE AUFM-MENGE, "数量

MEINS_M LIKE AUFM-MEINS, "基本计量单位

STPRS LIKE MBEW-STPRS, "标准价格

UMVKN LIKE VBAP-UMVKN, "销售量转换为SKU的值(除数)

UMVKZ LIKE VBAP-UMVKZ, "销售数量转换成SKU的分子(因子)

VRKME LIKE VBAP-VRKME, "销售单位

GEWEI LIKE VBAP-GEWEI, "重量单位

KWMENG LIKE VBAP-KWMENG, "定单重量

NETWR LIKE VBAP-NETWR, "净价值

WAERK LIKE VBAP-WAERK, "SD 凭证货币

KSCHL LIKE KONV-KSCHL, "条件类型

KBETR LIKE KONV-KBETR, "金额

WAERS_S LIKE KONV-WAERS, "货币代码

KURSK LIKE VBKD-KURSK, "汇率

XSDDJ TYPE P DECIMALS 3, "销售单单价

BZ TYPE P DECIMALS 3,

BZJE TYPE P DECIMALS 3,

CPJE TYPE P DECIMALS 3,

END OF STR_TAB.

DATA: WA_TAB TYPE STR_TAB,

IT_TAB TYPE TABLE OF STR_TAB.

DATA: WA_TAB2 TYPE STR_TAB,

IT_TAB2 TYPE TABLE OF STR_TAB.

DATA: WA_TAB3 TYPE STR_TAB,

IT_TAB3 TYPE TABLE OF STR_TAB.

DATA: DAT_L LIKE MKPF-BUDAT.

DATA: MY_UKURS LIKE TCURR-UKURS.

DATA: MY_GDATU LIKE TCURR-GDATU.

DATA: DAT1(4),

DAT2(2).

* Type-pools

TYPE-POOLS: SLIS.

TYPE-POOLS: IBXX, IBCO2.

TYPES: IBCO2_VALUE_REC LIKE IBVALUE0.

TYPES: IBCO2_VALUE_TAB TYPE IBCO2_VALUE_REC OCCURS 0.

DATA: V_SAVE(1) TYPE C,

V_EXIT(1) TYPE C,

V_VARIANT1 LIKE DISVARIANT,

V_VARIANT2 LIKE DISVARIANT.

DATA C_PROG LIKE SY-REPID.

DATA:FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

FIELDCAT_LN LIKE LINE OF FIELDCAT,

SORTCAT TYPE SLIS_T_SORTINFO_ALV,

LS_SORT TYPE SLIS_SORTINFO_ALV,

GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,

GS_LAYOUT TYPE SLIS_LAYOUT_ALV,

GT_EVENTS TYPE SLIS_T_EVENT,

G_REPID LIKE SY-REPID .

DATA: SC_TITLE(70) TYPE C.

*&---------------------------------------------------------------------*

**Selection-screen

*&---------------------------------------------------------------------*

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS: S_BUDAT FOR MKPF-BUDAT OBLIGATORY NO-EXTENSION,

S_ARBPL FOR CRHD-ARBPL OBLIGATORY .

* S_SGTXT FOR MSEG-SGTXT.

SELECTION-SCREEN END OF BLOCK B1.

SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-004.

PARAMETERS: P_GR1 RADIOBUTTON GROUP G1,

P_GR2 RADIOBUTTON GROUP G1 DEFAULT 'X'.

SELECTION-SCREEN END OF BLOCK B3.

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-003.

PARAMETERS: P_VARIN LIKE DISVARIANT-VARIANT.

SELECTION-SCREEN END OF BLOCK B2.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARIN.

PERFORM F4_FOR_VARIANT.

*&---------------------------------------------------------------------*

**Start-of-selection

*&---------------------------------------------------------------------*

START-OF-SELECTION.

PERFORM SELECT_DATA.

PERFORM SELECT_DATA_MATERIAL.

PERFORM GET_DATA.

PERFORM GET_LAST_DATA.

**---显示汇总报表

IF P_GR2 = 'X'.

PERFORM GET_TOTAL_DATA.

ENDIF.

**---得到标题

PERFORM GET_TITLE.

*&---------------------------------------------------------------------*

*&End-of-selection

*&---------------------------------------------------------------------*

END-OF-SELECTION.

C_PROG = SY-REPID.

PERFORM INITIALIZE_VARIANT.

IF P_GR2 = 'X'.

PERFORM SUB_FIELD_OUT_ALV2 CHANGING FIELDCAT.

ELSE.

PERFORM SUB_FIELD_OUT_ALV CHANGING FIELDCAT.

ENDIF.

PERFORM SUB_LAYOUT_OUT_ALV CHANGING GS_LAYOUT.

PERFORM CALL_ALV_DATA_OUTPUT.


*&---------------------------------------------------------------------*

*& Form Select_data

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*----------------------------------------------------------------------*

FORM SELECT_DATA .

SELECT MBLNR MJAHR BUDAT

INTO CORRESPONDING FIELDS OF TABLE IT_MKPF

FROM MKPF

WHERE BUDAT IN S_BUDAT.

IF NOT IT_MKPF IS INITIAL.

SELECT MBLNR MJAHR ZEILE SGTXT AUFNR MATNR MENGE MEINS BWART WAERS

CHARG

INTO CORRESPONDING FIELDS OF TABLE IT_MSEG

FROM MSEG

FOR ALL ENTRIES IN IT_MKPF

WHERE MBLNR = IT_MKPF-MBLNR

AND MJAHR = IT_MKPF-MJAHR

AND ( BWART = '101' OR BWART = '102' )

* OR BWART = 'Z31' OR BWART = 'Z32'

* OR BWART = '531' OR BWART = '532')

AND SGTXT LIKE 'S%'.

ENDIF.

LOOP AT IT_MSEG INTO WA_MSEG.

**---取SGTXT前3位作为机台号

WA_MSEG-SGTXT = WA_MSEG-SGTXT+0(3).

**---移动类型为102 数量取负

IF WA_MSEG-BWART = '102'.

WA_MSEG-MENGE = 0 - WA_MSEG-MENGE.

ENDIF.

MODIFY IT_MSEG FROM WA_MSEG.

CLEAR WA_MSEG.

ENDLOOP.

**--删除不符合条件的机台号

DELETE IT_MSEG WHERE NOT SGTXT IN S_ARBPL.

***---合并生产定单中的数量

REFRESH IT_MSEG2.

* IT_MSEG2[] = IT_MSEG[].

LOOP AT IT_MSEG INTO WA_MSEG.

MOVE: WA_MSEG-SGTXT TO WA_MSEG2-SGTXT,

WA_MSEG-AUFNR TO WA_MSEG2-AUFNR,

WA_MSEG-MATNR TO WA_MSEG2-MATNR,

WA_MSEG-MENGE TO WA_MSEG2-MENGE,

WA_MSEG-MEINS TO WA_MSEG2-MEINS,

WA_MSEG-WAERS TO WA_MSEG2-WAERS.

COLLECT WA_MSEG2 INTO IT_MSEG2.

CLEAR:WA_MSEG,WA_MSEG2.

ENDLOOP.

ENDFORM. " Select_data

*&---------------------------------------------------------------------*

*& Form select_data_material

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*----------------------------------------------------------------------*

FORM SELECT_DATA_MATERIAL .

IF NOT IT_MSEG2 IS INITIAL.

SELECT AUFNR KDAUF KDPOS WEMNG

INTO CORRESPONDING FIELDS OF TABLE IT_AFPO

FROM AFPO

FOR ALL ENTRIES IN IT_MSEG2

WHERE AUFNR = IT_MSEG2-AUFNR.

SELECT AUFNR MATNR BWART MENGE MEINS BUDAT MBLNR MJAHR ZEILE WERKS

INTO CORRESPONDING FIELDS OF TABLE IT_AUFM

FROM AUFM

FOR ALL ENTRIES IN IT_MSEG2

WHERE AUFNR = IT_MSEG2-AUFNR

AND ( BWART = '261' OR BWART = '262'

* ).

OR BWART = 'Z31' OR BWART = 'Z32').

IF NOT IT_AUFM IS INITIAL.

SELECT MATNR STPRS

INTO CORRESPONDING FIELDS OF TABLE IT_MBEW

FROM MBEW

FOR ALL ENTRIES IN IT_AUFM

WHERE MATNR = IT_AUFM-MATNR

AND BWKEY = IT_AUFM-WERKS.

ENDIF.

IF NOT IT_AFPO IS INITIAL.

SELECT VBELN POSNR UMVKN UMVKZ VRKME

GEWEI KWMENG NETWR WAERK

INTO CORRESPONDING FIELDS OF TABLE IT_VBAP

FROM VBAP

FOR ALL ENTRIES IN IT_AFPO

WHERE VBELN = IT_AFPO-KDAUF

AND POSNR = IT_AFPO-KDPOS.

SELECT VBELN KNUMV

INTO CORRESPONDING FIELDS OF TABLE IT_VBAK

FROM VBAK

FOR ALL ENTRIES IN IT_AFPO

WHERE VBELN = IT_AFPO-KDAUF.

SELECT VBELN POSNR PRSDT KURSK

INTO CORRESPONDING FIELDS OF TABLE IT_VBKD

FROM VBKD

FOR ALL ENTRIES IN IT_AFPO

WHERE VBELN = IT_AFPO-KDAUF.

ENDIF.

LOOP AT IT_VBAP INTO WA_VBAP.

READ TABLE IT_VBAK INTO WA_VBAK WITH KEY VBELN = WA_VBAP-VBELN.

IF SY-SUBRC = 0.

MOVE WA_VBAK-KNUMV TO WA_VBAP-KNUMV.

MODIFY IT_VBAP FROM WA_VBAP TRANSPORTING KNUMV.

ENDIF.

ENDLOOP.

IF NOT IT_VBAP IS INITIAL.

SELECT KNUMV KSCHL KBETR WAERS KPOSN

INTO CORRESPONDING FIELDS OF TABLE IT_KONV

FROM KONV

FOR ALL ENTRIES IN IT_VBAP

WHERE KNUMV = IT_VBAP-KNUMV

AND KPOSN = IT_VBAP-POSNR

AND ( KSCHL = 'ZVA1' OR KSCHL = 'ZKF0' ).

ENDIF.

ENDIF.

LOOP AT IT_VBKD INTO WA_VBKD.

IF WA_VBKD-KURSK = '1.00000'.

**---计算输入日期的最后一天

CALL FUNCTION 'LAST_DAY_OF_MONTHS'

EXPORTING

DAY_IN = WA_VBKD-PRSDT

IMPORTING

LAST_DAY_OF_MONTH = WA_VBKD-PRSDT

EXCEPTIONS

DAY_IN_NO_DATE = 1

OTHERS = 2.

**--从汇率表中重新取汇率,取该月月末的汇率

CALL FUNCTION 'READ_EXCHANGE_RATE'

EXPORTING

DATE = WA_VBKD-PRSDT

FOREIGN_CURRENCY = 'USD'

LOCAL_CURRENCY = 'CNY'

TYPE_OF_RATE = 'M'

IMPORTING

EXCHANGE_RATE = MY_UKURS

EXCEPTIONS

NO_RATE_FOUND = 1

NO_FACTORS_FOUND = 2

NO_SPREAD_FOUND = 3

DERIVED_2_TIMES = 4

OVERFLOW = 5

ZERO_RATE = 6

OTHERS = 7.

MOVE MY_UKURS TO WA_VBKD-KURSK.

MODIFY IT_VBKD FROM WA_VBKD TRANSPORTING KURSK.

CLEAR WA_VBKD.

ENDIF.

ENDLOOP.

ENDFORM. " select_data_material

*&---------------------------------------------------------------------*

*& Form GET_DATA

*&---------------------------------------------------------------------*

* 整理数据

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*----------------------------------------------------------------------*

FORM GET_DATA .

**---运费+印花税

REFRESH IT_KONV2.

LOOP AT IT_KONV INTO WA_KONV.

MOVE-CORRESPONDING WA_KONV TO WA_KONV2.

COLLECT WA_KONV2 INTO IT_KONV2.

CLEAR: WA_KONV2, WA_KONV.

ENDLOOP.

REFRESH IT_TAB.

SORT IT_AUFM BY AUFNR.

LOOP AT IT_AUFM INTO WA_AUFM.

MOVE: WA_AUFM-AUFNR TO WA_TAB-AUFNR,

WA_AUFM-MATNR TO WA_TAB-MATNR_M,

WA_AUFM-MEINS TO WA_TAB-MEINS_M.

* WA_AUFM-BUDAT TO WA_TAB-BUDAT,

* WA_AUFM-MBLNR TO WA_TAB-MBLNR,

* WA_AUFM-MJAHR TO WA_TAB-MJAHR,

* WA_AUFM-ZEILE TO WA_TAB-ZEILE.

IF WA_AUFM-BWART = '262' OR WA_AUFM-BWART = 'Z31'.

WA_TAB-MENGE_M = 0 - WA_AUFM-MENGE.

ELSE.

MOVE: WA_AUFM-MENGE TO WA_TAB-MENGE_M.

ENDIF.

**----计算物料的标准价格

PERFORM GET_BZJG_HISTORY USING WA_AUFM-BUDAT

WA_AUFM-MATNR

WA_AUFM-WERKS

CHANGING WA_TAB-STPRS.

**---如果价格为空,就去当月的标准价格

IF WA_TAB-STPRS = ''.

READ TABLE IT_MBEW INTO WA_MBEW WITH KEY MATNR = WA_TAB-MATNR_M.

IF SY-SUBRC = 0.

MOVE: WA_MBEW-STPRS TO WA_TAB-STPRS.

ENDIF.

ENDIF.

APPEND WA_TAB TO IT_TAB.

CLEAR: WA_TAB,WA_AUFM.

ENDLOOP.

LOOP AT IT_TAB INTO WA_TAB.

READ TABLE IT_AFPO INTO WA_AFPO WITH KEY AUFNR = WA_TAB-AUFNR.

IF SY-SUBRC = 0.

MOVE: WA_AFPO-KDAUF TO WA_TAB-KDAUF,

WA_AFPO-KDPOS TO WA_TAB-KDPOS,

WA_AFPO-WEMNG TO WA_TAB-WEMNG.

READ TABLE IT_VBAP INTO WA_VBAP WITH KEY VBELN = WA_AFPO-KDAUF

POSNR = WA_AFPO-KDPOS.

IF SY-SUBRC = 0.

MOVE:WA_VBAP-UMVKN TO WA_TAB-UMVKN,

WA_VBAP-UMVKZ TO WA_TAB-UMVKZ,

WA_VBAP-VRKME TO WA_TAB-VRKME,

WA_VBAP-GEWEI TO WA_TAB-GEWEI,

WA_VBAP-KWMENG TO WA_TAB-KWMENG,

WA_VBAP-NETWR TO WA_TAB-NETWR,

WA_VBAP-WAERK TO WA_TAB-WAERK.

ENDIF.

**---取汇率

READ TABLE IT_VBKD INTO WA_VBKD WITH KEY VBELN = WA_AFPO-KDAUF.

IF SY-SUBRC = 0.

MOVE: WA_VBKD-KURSK TO WA_TAB-KURSK.

ENDIF.

**---取运输费和印花税

READ TABLE IT_VBAP INTO WA_VBAP WITH KEY VBELN = WA_AFPO-KDAUF

POSNR = WA_AFPO-KDPOS.

IF SY-SUBRC = 0.

READ TABLE IT_KONV2 INTO WA_KONV2

WITH KEY KNUMV = WA_VBAP-KNUMV.

IF SY-SUBRC = 0.

MOVE: WA_KONV2-KBETR TO WA_TAB-KBETR,

WA_KONV2-WAERS TO WA_TAB-WAERS_S.

ENDIF.

ENDIF.

ENDIF.

READ TABLE IT_MSEG2 INTO WA_MSEG2 WITH KEY AUFNR = WA_TAB-AUFNR.

IF SY-SUBRC = 0.

MOVE:WA_MSEG2-SGTXT TO WA_TAB-SGTXT,

WA_MSEG2-MATNR TO WA_TAB-MATNR,

WA_MSEG2-MENGE TO WA_TAB-MENGE,

WA_MSEG2-MEINS TO WA_TAB-MEINS,

WA_MSEG2-BWART TO WA_TAB-BWART,

WA_MSEG2-WAERS TO WA_TAB-WAERS.

ENDIF.

**---计算成品数量/已交货数量*单个原料的数量

IF WA_TAB-WEMNG = 0.

* MESSAGE '已交货数量不能为0' TYPE 'E'.

* STOP.

ELSE.

WA_TAB-BZ = WA_TAB-MENGE / WA_TAB-WEMNG * WA_TAB-MENGE_M.

ENDIF.

MODIFY IT_TAB FROM WA_TAB.

CLEAR: WA_TAB,WA_AFPO,WA_MBEW,WA_MSEG2.

ENDLOOP.

ENDFORM. " GET_DATA

*&---------------------------------------------------------------------*

*& Form GET_LAST_DATA

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*----------------------------------------------------------------------*

FORM GET_LAST_DATA .

LOOP AT IT_TAB INTO WA_TAB.

**---若单位为'EA'的,成品的单价为0

IF WA_TAB-VRKME = 'EA'.

WA_TAB-XSDDJ = 0.

ELSE.

**---计算单价

IF WA_TAB-KWMENG = 0.

* MESSAGE '销售定单的数量不能为0' TYPE 'E'.

* STOP.

ELSE.

WA_TAB-XSDDJ = WA_TAB-NETWR / WA_TAB-KWMENG.

ENDIF.

**---减去运费和印花税

WA_TAB-XSDDJ = WA_TAB-XSDDJ - WA_TAB-KBETR.

**---转换成人民币/KG

IF WA_TAB-WAERK = 'USD'.

WA_TAB-XSDDJ = WA_TAB-XSDDJ * WA_TAB-KURSK

/ ( WA_TAB-UMVKZ / WA_TAB-UMVKN ).

ELSEIF WA_TAB-WAERK = 'CNY'.

WA_TAB-XSDDJ = WA_TAB-XSDDJ

/ ( WA_TAB-UMVKZ / WA_TAB-UMVKN ).

ELSEIF WA_TAB-WAERK = ''.

WA_TAB-XSDDJ = 0.

ENDIF.

ENDIF.

**---去掉工单和销售单前面的0

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'

EXPORTING

INPUT = WA_TAB-AUFNR

IMPORTING

OUTPUT = WA_TAB-AUFNR.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'

EXPORTING

INPUT = WA_TAB-KDAUF

IMPORTING

OUTPUT = WA_TAB-KDAUF.

**---计算比例原料的金额

WA_TAB-BZJE = WA_TAB-BZ * WA_TAB-STPRS.

MODIFY IT_TAB FROM WA_TAB.

CLEAR WA_TAB.

ENDLOOP.

LOOP AT IT_TAB INTO WA_TAB.

MOVE: WA_TAB-AUFNR TO WA_TAB3-AUFNR,

WA_TAB-MATNR_M TO WA_TAB3-MATNR_M,

WA_TAB-MENGE_M TO WA_TAB3-MENGE_M,

WA_TAB-MEINS_M TO WA_TAB3-MEINS_M,

WA_TAB-BZ TO WA_TAB3-BZ,

WA_TAB-BZJE TO WA_TAB3-BZJE.

COLLECT WA_TAB3 INTO IT_TAB3.

CLEAR: WA_TAB,WA_TAB3.

ENDLOOP.

LOOP AT IT_TAB3 INTO WA_TAB3.

READ TABLE IT_TAB INTO WA_TAB WITH KEY AUFNR = WA_TAB3-AUFNR

MATNR_M = WA_TAB3-MATNR_M.

IF SY-SUBRC = 0.

MOVE: WA_TAB-SGTXT TO WA_TAB3-SGTXT,

WA_TAB-MENGE TO WA_TAB3-MENGE,

WA_TAB-MEINS TO WA_TAB3-MEINS,

WA_TAB-XSDDJ TO WA_TAB3-XSDDJ,

WA_TAB-KDAUF TO WA_TAB3-KDAUF,

WA_TAB-KDPOS TO WA_TAB3-KDPOS,

WA_TAB-MATNR TO WA_TAB3-MATNR,

WA_TAB-STPRS TO WA_TAB3-STPRS,

WA_TAB-KURSK TO WA_TAB3-KURSK.

ENDIF.

MODIFY IT_TAB3 FROM WA_TAB3.

CLEAR: WA_TAB,WA_TAB3.

ENDLOOP.

REFRESH IT_TAB.

IT_TAB[] = IT_TAB3[].

ENDFORM. " GET_LAST_DATA


*&---------------------------------------------------------------------*

*& Form INITIALIZE_VARIANT

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*----------------------------------------------------------------------*

FORM INITIALIZE_VARIANT .

CLEAR V_VARIANT1.

V_SAVE = 'A'.

V_VARIANT1-REPORT = C_PROG.

V_VARIANT2 = V_VARIANT1.

CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'

EXPORTING

I_SAVE = V_SAVE

CHANGING

CS_VARIANT = V_VARIANT2

EXCEPTIONS

NOT_FOUND = 2.

IF SY-SUBRC = 0.

P_VARIN = V_VARIANT2-VARIANT.

ENDIF.

ENDFORM. " INITIALIZE_VARIANT

*&---------------------------------------------------------------------*

*& Form SUB_FIELD_OUT_ALV

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* <--P_FIELDCAT text

*----------------------------------------------------------------------*

FORM SUB_FIELD_OUT_ALV CHANGING P_FIELDCAT.

* FIELDCAT_LN-FIELDNAME = 'BUDAT' .

* FIELDCAT_LN-KEY = 'X'.

* FIELDCAT_LN-SELTEXT_L = '记帐日期'.

* APPEND FIELDCAT_LN TO FIELDCAT.

*

* FIELDCAT_LN-FIELDNAME = 'MBLNR' .

* FIELDCAT_LN-KEY = 'X'.

* FIELDCAT_LN-SELTEXT_L = '物料凭证'.

* APPEND FIELDCAT_LN TO FIELDCAT.

*

* FIELDCAT_LN-FIELDNAME = 'MJAHR' .

* FIELDCAT_LN-KEY = 'X'.

* FIELDCAT_LN-SELTEXT_L = '年度'.

* APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'SGTXT' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '机台'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'AUFNR' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '订单编码'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'MATNR' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '物料号码(成品)'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'MENGE' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '物料数量(成品)'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'MEINS' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '单位(成品)'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'XSDDJ' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '成品单价(RMB/KG)'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'KDAUF' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '销售订单号'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'KDPOS' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '销售订单行项'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'MATNR_M' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '物料号码(原料)'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'MENGE_M' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '物料数量(原料)'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'MEINS_M' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '单位(原料)'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'STPRS' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '标准单价(原料)'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'BZ' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '比例用量(原料)'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'BZJE' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '比例金额(原料)'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'KURSK' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '汇率'.

APPEND FIELDCAT_LN TO FIELDCAT.

ENDFORM. " SUB_FIELD_OUT_ALV

*&---------------------------------------------------------------------*

*& Form SUB_LAYOUT_OUT_ALV

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* <--P_GS_LAYOUT text

*----------------------------------------------------------------------*

FORM SUB_LAYOUT_OUT_ALV CHANGING P_GS_LAYOUT.

GS_LAYOUT-ZEBRA = 'X'. " 斑马线表示

GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'. " 最适合列宽

ENDFORM. " sub_layout_out_alv

*&---------------------------------------------------------------------*

*& Form CALL_ALV_DATA_OUTPUT

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*----------------------------------------------------------------------*

FORM CALL_ALV_DATA_OUTPUT .

IF P_GR2 = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = G_REPID

IS_LAYOUT = GS_LAYOUT

I_GRID_TITLE = SC_TITLE

IT_FIELDCAT = FIELDCAT

IT_SORT = SORTCAT

I_SAVE = 'A'

IS_VARIANT = V_VARIANT2

* IT_EVENTS = GT_EVENTS[]

TABLES

T_OUTTAB = IT_TAB2

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

IF SY-SUBRC NE 0.

WRITE: 'SY-SUBRC: ', SY-SUBRC,

'REUSE_ALV_GRID_DISPLAY'.

ENDIF.

ELSE.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = G_REPID

IS_LAYOUT = GS_LAYOUT

I_GRID_TITLE = SC_TITLE

IT_FIELDCAT = FIELDCAT

IT_SORT = SORTCAT

I_SAVE = 'A'

IS_VARIANT = V_VARIANT2

* IT_EVENTS = GT_EVENTS[]

TABLES

T_OUTTAB = IT_TAB

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

IF SY-SUBRC NE 0.

WRITE: 'SY-SUBRC: ', SY-SUBRC,

'REUSE_ALV_GRID_DISPLAY'.

ENDIF.

ENDIF.

ENDFORM. " CALL_ALV_DATA_OUTPUT

*&---------------------------------------------------------------------*

*& Form F4_FOR_VARIANT

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*----------------------------------------------------------------------*

FORM F4_FOR_VARIANT .

CALL FUNCTION 'REUSE_ALV_VARIANT_F4'

EXPORTING

IS_VARIANT = V_VARIANT1

I_SAVE = V_SAVE

IMPORTING

E_EXIT = V_EXIT

ES_VARIANT = V_VARIANT2

EXCEPTIONS

NOT_FOUND = 2.

IF SY-SUBRC = 2.

MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ELSE.

IF V_EXIT = SPACE.

P_VARIN = V_VARIANT2-VARIANT.

ENDIF.

ENDIF.

ENDFORM. " F4_FOR_VARIANT

*&---------------------------------------------------------------------*

*& Form get_total_data

*&---------------------------------------------------------------------*

* 输出汇总的报表

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*----------------------------------------------------------------------*

FORM GET_TOTAL_DATA .

REFRESH IT_TAB2.

LOOP AT IT_TAB INTO WA_TAB.

MOVE:

* WA_TAB-MBLNR TO WA_TAB2-MBLNR,

* WA_TAB-MJAHR TO WA_TAB2-MJAHR,

WA_TAB-SGTXT TO WA_TAB2-SGTXT,

WA_TAB-MATNR TO WA_TAB2-MATNR,

WA_TAB-WAERS TO WA_TAB2-WAERS,

WA_TAB-KDAUF TO WA_TAB2-KDAUF,

WA_TAB-KDPOS TO WA_TAB2-KDPOS,

WA_TAB-AUFNR TO WA_TAB2-AUFNR,

WA_TAB-BZJE TO WA_TAB2-BZJE,

WA_TAB-MENGE_M TO WA_TAB2-MENGE_M,

WA_TAB-MEINS_M TO WA_TAB2-MEINS_M,

WA_TAB-BZ TO WA_TAB2-BZ.

COLLECT WA_TAB2 INTO IT_TAB2.

CLEAR: WA_TAB,WA_TAB2.

ENDLOOP.

LOOP AT IT_TAB2 INTO WA_TAB2.

READ TABLE IT_TAB INTO WA_TAB WITH KEY

* MBLNR = WA_TAB2-MBLNR

* MJAHR = WA_TAB2-MJAHR

SGTXT = WA_TAB2-SGTXT

AUFNR = WA_TAB2-AUFNR

MATNR = WA_TAB2-MATNR.

IF SY-SUBRC = 0.

**---计算成品的总金额

WA_TAB2-CPJE = WA_TAB-MENGE * WA_TAB-XSDDJ.

**---合并

MOVE:WA_TAB-MENGE TO WA_TAB2-MENGE,

WA_TAB-MEINS TO WA_TAB2-MEINS,

WA_TAB-XSDDJ TO WA_TAB2-XSDDJ,

WA_TAB-KURSK TO WA_TAB2-KURSK.

ENDIF.

MODIFY IT_TAB2 FROM WA_TAB2.

ENDLOOP.

ENDFORM. " get_total_data

*&---------------------------------------------------------------------*

*& Form SUB_FIELD_OUT_ALV2

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* <--P_FIELDCAT text

*----------------------------------------------------------------------*

FORM SUB_FIELD_OUT_ALV2 CHANGING P_FIELDCAT.

* FIELDCAT_LN-FIELDNAME = 'MBLNR' .

* FIELDCAT_LN-KEY = 'X'.

* FIELDCAT_LN-SELTEXT_L = '物料凭证'.

* APPEND FIELDCAT_LN TO FIELDCAT.

*

* FIELDCAT_LN-FIELDNAME = 'MJAHR' .

* FIELDCAT_LN-KEY = 'X'.

* FIELDCAT_LN-SELTEXT_L = '年度'.

* APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'SGTXT' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '机台'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'AUFNR' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '订单编码'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'MATNR' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '物料号码(成品)'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'MENGE' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '物料数量(成品)'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'MEINS' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '单位(成品)'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'XSDDJ' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '成品单价(RMB/KG)'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'CPJE' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '成品总金额'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'KDAUF' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '销售订单号'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'KDPOS' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '销售订单行项'.

APPEND FIELDCAT_LN TO FIELDCAT.

* FIELDCAT_LN-FIELDNAME = 'MATNR_M' .

* FIELDCAT_LN-KEY = 'X'.

* FIELDCAT_LN-SELTEXT_L = '物料号码(原料)'.

* APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'MENGE_M' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '物料数量(原料)'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'MEINS_M' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '单位(原料)'.

APPEND FIELDCAT_LN TO FIELDCAT.

* FIELDCAT_LN-FIELDNAME = 'STPRS' .

* FIELDCAT_LN-KEY = 'X'.

* FIELDCAT_LN-SELTEXT_L = '标准单价(原料)'.

* APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'BZ' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '比例用量(原料)'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'BZJE' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '比例总金额(原料)'.

APPEND FIELDCAT_LN TO FIELDCAT.

FIELDCAT_LN-FIELDNAME = 'KURSK' .

FIELDCAT_LN-KEY = 'X'.

FIELDCAT_LN-SELTEXT_L = '汇率'.

ENDFORM. " SUB_FIELD_OUT_ALV2

*&---------------------------------------------------------------------*

*& Form GET_TITLE

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*----------------------------------------------------------------------*

FORM GET_TITLE .

DATA: DAT(28) TYPE C,

JT(20).

IF S_BUDAT IS INITIAL.

CONCATENATE '记帐日期:' '全部日期'INTO DAT.

ELSEIF S_BUDAT-LOW <> '' AND S_BUDAT-HIGH = ''.

CONCATENATE '记帐日期:' S_BUDAT-LOW INTO DAT.

ELSEIF S_BUDAT-LOW <> '' AND S_BUDAT-HIGH <> ''.

CONCATENATE '记帐日期:' S_BUDAT-LOW '~' S_BUDAT-HIGH INTO DAT.

ELSEIF S_BUDAT-LOW = '' AND S_BUDAT-HIGH <> ''.

CONCATENATE '记帐日期:' '00000000 ' '~' S_BUDAT-HIGH INTO DAT.

ENDIF.

IF S_ARBPL IS INITIAL.

CONCATENATE '机台号码:' '全部日期'INTO JT.

ELSEIF S_ARBPL-LOW <> '' AND S_ARBPL-HIGH = ''.

CONCATENATE '机台号码:' S_ARBPL-LOW INTO JT.

ELSEIF S_ARBPL-LOW <> '' AND S_ARBPL-HIGH <> ''.

CONCATENATE '机台号码:' S_ARBPL-LOW '~' S_ARBPL-HIGH INTO JT.

ELSEIF S_ARBPL-LOW = '' AND S_ARBPL-HIGH <> ''.

CONCATENATE '机台号码:' '00000000 ' '~' S_ARBPL-HIGH INTO JT.

ENDIF.

**---合并日期与机台

CONCATENATE DAT ' ' JT INTO SC_TITLE(70).

ENDFORM. " GET_TITLE


*&---------------------------------------------------------------------*

*& Form GET_BZJG_HISTORY

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* -->P_DAT text

* -->P_WA_TAB_MATNR_M text

* -->P_WA_TAB_WERKS text

* <--P_WA_TAB_STPRS text

*----------------------------------------------------------------------*

FORM GET_BZJG_HISTORY USING P_BUDAT LIKE AUFM-BUDAT

P_MATNR LIKE AUFM-MATNR

P_WERKS LIKE AUFM-WERKS

CHANGING P_STPRS LIKE MBEWH-STPRS.

**---计算输入日期的最后一天

CALL FUNCTION 'LAST_DAY_OF_MONTHS'

EXPORTING

DAY_IN = P_BUDAT

IMPORTING

LAST_DAY_OF_MONTH = DAT_L

EXCEPTIONS

DAY_IN_NO_DATE = 1

OTHERS = 2.

**---计算输入日期的下一个月

DAT_L = DAT_L + 1.

DAT1 = DAT_L+(4).

DAT2 = DAT_L+4(2).

**---取历史单价表里面的标准价格

SELECT SINGLE STPRS

INTO P_STPRS

FROM MBEWH

WHERE MATNR = P_MATNR

AND BWKEY = P_WERKS

AND LFGJA = DAT1

AND LFMON = DAT2.

ENDFORM. " GET_BZJG_HISTORY

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值