批量生成PO

TYPE-POOLS: SLIS.
TYPE-POOLS: ICON.

*订单类型+採购组织+公司代码+採购组+工厂+供应商+合并标记同样

TYPES: BEGIN OF TY_PO,
BSART TYPE EKKO-BSART, "订单类型
EKORG TYPE EKKO-EKORG, "採购组织
BUKRS TYPE EKKO-BUKRS, "公司代码
EKGRP TYPE EKKO-EKGRP, "採购组
WERKS TYPE EKPO-WERKS, "工厂
LIFNR TYPE EKKO-LIFNR, "供应商
HBBJ(3), "合并标记
PSTYP TYPE EKPO-PSTYP, "行项目类别
MATNR TYPE EKPO-MATNR, "物料号
MENGE(13), " TYPE EKPO-MENGE, "数量
EINDT TYPE EKET-EINDT, "交货期
END OF TY_PO.

DATA:IT_PO TYPE TABLE OF TY_PO WITH HEADER LINE,
WA_PO TYPE TY_PO.

TYPES: BEGIN OF TY_PO_RESULT,
BSART TYPE EKKO-BSART, "订单类型
EKORG TYPE EKKO-EKORG, "採购组织
BUKRS TYPE EKKO-BUKRS, "公司代码
EKGRP TYPE EKKO-EKGRP, "採购组
WERKS TYPE EKPO-WERKS, "工厂
LIFNR TYPE EKKO-LIFNR, "供应商
PSTYP TYPE EKPO-PSTYP, "行项目类别
MATNR TYPE EKPO-MATNR, "物料号
MENGE(13), " TYPE EKPO-MENGE, "数量
EINDT TYPE EKET-EINDT, "交货期
HBBJ(1), "合并标记
EBELN TYPE EKPO-EBELN,
EBELP TYPE EKPO-EBELP,
FLAG(1),
MESSAGE(200),
END OF TY_PO_RESULT.

DATA:IT_PO_RESULT TYPE TABLE OF TY_PO_RESULT WITH HEADER LINE,
TIT_PO_RESULT TYPE TABLE OF TY_PO_RESULT WITH HEADER LINE.

DATA:LV_MESSAGE TYPE STRING.

DATA:LV_EBELN TYPE EKPO-EBELN.

DATA IT_FLDTAB TYPE TPIT_T_FNAME WITH HEADER LINE.
DATA: L_IRC TYPE I,L_LINE TYPE I.

DATA:L_TEXT(200).

DATA:IT_MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
DATA:G_INFO TYPE STRING.

----------------------------------------------------------------------

  • CONSTANTS *
    ----------------------------------------------------------------------
    CONSTANTS: “”"上传数据准备
    C_BEGIN_ROW TYPE I VALUE 1, "BEGINNING ROW OF EXCEL FILE
    C_BEGIN_COL TYPE I VALUE 1, "BEGINNING COLUMN OF EXCEL FILE
    C_END_ROW TYPE I VALUE 50000, "ENDING ROW OF EXCEL FILE
    C_END_COL TYPE I VALUE 100. "ENDING COLUMN OF EXCEL FILE

*DATA:LV_DTYPE(1).
**ALV
DATA:GT_EVENT_EXIT TYPE SLIS_T_EVENT_EXIT.
DATA:GS_EVENT_EXIT TYPE SLIS_EVENT_EXIT.

DATA:GT_FIELDCAT TYPE LVC_T_FCAT WITH HEADER LINE.
DATA:GC_GLAY TYPE LVC_S_GLAY.
DATA:GS_LAYOUT TYPE LVC_S_LAYO, "SLIS_LAYOUT_ALV,
WK_REPID LIKE SY-REPID.
DATA:GS_GRID TYPE LVC_S_GLAY.
DATA:TEM_GRID TYPE REF TO CL_GUI_ALV_GRID.
DATA:GT_EVENTS TYPE SLIS_T_EVENT.
DATA:GS_EVENTS LIKE LINE OF GT_EVENTS.

DATA:LV_DATUM TYPE SY-DATUM.

SELECTION-SCREEN: FUNCTION KEY 1. "激活下载模板button
**选择屏幕
SELECTION-SCREEN BEGIN OF BLOCK MAIN WITH FRAME TITLE TEXT-001.

  • SELECT-OPTIONS:S_BUKRS FOR BKPF-BUKRS.
  • SELECT-OPTIONS:S_BUDAT FOR BKPF-BUDAT.
  • SELECT-OPTIONS:S_BELNR FOR BKPF-BELNR.

PARAMETERS:P_FILE LIKE RLGRAP-FILENAME . "DEFAULT ‘C:\USERS\ADMINISTRATOR\DESKTOP\计划独立需求的批量导入模板.XLS’. "上载文件路径

SELECTION-SCREEN END OF BLOCK MAIN.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
PERFORM FRM_GET_FILENAME USING P_FILE.

AT SELECTION-SCREEN.

  • LOOP AT S_WERKS.
  •    AUTHORITY-CHECK OBJECT 'Z_MM_003'
    
  •                        ID 'WERKS' FIELD S_WERKS-LOW.
    
  •    IF SY-SUBRC <> 0.
    
  •        MESSAGE E019(ZMM001) WITH S_WERKS-LOW.
    
  •    ENDIF.
    
  • ENDLOOP.

AT SELECTION-SCREEN OUTPUT.

**主程序
START-OF-SELECTION.

PERFORM FRM_RETRIVE_DATA.
PERFORM FRM_BAPI_CREATE_PO .
PERFORM FRM_DOWNLOAD_DATA.

&---------------------------------------------------------------------
*& FORM FRM_BAPI_CREATE_PO
&---------------------------------------------------------------------

  •   TEXT
    

----------------------------------------------------------------------

  • –> P1 TEXT

  • <-- P2 TEXT
    ----------------------------------------------------------------------
    FORM FRM_BAPI_CREATE_PO .
    DATA: POHEADER LIKE TABLE OF BAPIMEPOHEADER WITH HEADER LINE ,
    POHEADERX LIKE TABLE OF BAPIMEPOHEADERX WITH HEADER LINE,
    RETURN LIKE TABLE OF BAPIRET2 WITH HEADER LINE,
    POITEM LIKE TABLE OF BAPIMEPOITEM WITH HEADER LINE,
    POITEMX LIKE TABLE OF BAPIMEPOITEMX WITH HEADER LINE,
    POSCHEDULE LIKE TABLE OF BAPIMEPOSCHEDULE WITH HEADER LINE,
    POSCHEDULEX LIKE TABLE OF BAPIMEPOSCHEDULX WITH HEADER LINE,
    POTEXTITEM LIKE TABLE OF BAPIMEPOTEXT WITH HEADER LINE.
    CONSTANTS: CON VALUE ‘X’.
    DATA: LIFNR TYPE LFA1-LIFNR,
    NETPR TYPE EKPO-NETPR,
    ROW TYPE I,
    SCHEDULELINE TYPE I.
    DATA: EPO LIKE BAPIMEPOHEADER-PO_NUMBER.
    DATA: L_RETURN LIKE RETURN.

    DATA: LV_ERROR(1).

    DATA: LV_AA TYPE STRING,
    LV_TYPE TYPE DD01V-DATATYPE.

    REFRESH IT_PO_RESULT.
    CLEAR IT_PO_RESULT.

    REFRESH TIT_PO_RESULT.
    CLEAR TIT_PO_RESULT.

    SORT IT_PO BY BSART EKORG BUKRS EKGRP WERKS LIFNR HBBJ.

    LOOP AT IT_PO.
    CLEAR WA_PO.

      MOVE-CORRESPONDING IT_PO  TO WA_PO.
    
      AT  NEW HBBJ.
          REFRESH TIT_PO_RESULT.
          CLEAR TIT_PO_RESULT.
    
          CLEAR LIFNR.
         LIFNR = WA_PO-LIFNR.
    
    
          CLEAR LV_AA.
          CLEAR LV_TYPE.
    
          CALL  FUNCTION  'NUMERIC_CHECK'
            EXPORTING
             STRING_IN  = LIFNR
            IMPORTING
             STRING_OUT = LV_AA
             HTYPE      = LV_TYPE.
    
          IF LV_TYPE =  'NUMC'.
              CALL  FUNCTION  'CONVERSION_EXIT_ALPHA_INPUT'
                    EXPORTING
                       INPUT = LIFNR
                    IMPORTING
                       OUTPUT = LIFNR.
          ENDIF.
         POHEADER-DOC_TYPE     = WA_PO-BSART.
         POHEADER-VENDOR       = LIFNR.
         POHEADER-PURCH_ORG    = WA_PO-EKORG.
         POHEADER-PUR_GROUP    = WA_PO-EKGRP.
         POHEADER-COMP_CODE    = WA_PO-BUKRS.
         POHEADER-DOC_DATE     = SY-DATUM.
    
    
         POHEADERX-DOC_TYPE    = CON.
         POHEADERX-VENDOR      = CON.
         POHEADERX-PURCH_ORG   = CON.
         POHEADERX-PUR_GROUP   = CON.
         POHEADERX-COMP_CODE   = CON.
         POHEADERX-DOC_DATE    = CON.
    
    
      ENDAT.
    
     ROW = ROW +  10.
     POITEM-PO_ITEM = ROW.           "採购凭证的项目编号
     POITEM-QUANTITY = WA_PO-MENGE.  "採购订单数量
     POITEM-MATERIAL = WA_PO-MATNR.
     POITEM-PLANT = WA_PO-WERKS.     "工厂
    
      IF WA_PO-PSTYP <>  ''.
         SELECT  SINGLE
               PSTYP
                INTO POITEM-ITEM_CAT
                FROM T163Y
                WHERE SPRAS =  '1'
                   AND EPSTP = WA_PO-PSTYP.
      ELSE.
        POITEM-ITEM_CAT = WA_PO-PSTYP.
      ENDIF.
    
      IF WA_PO-BSART =  'ZNPI'.
        POITEM-FREE_ITEM =  'X'.
      ENDIF.
    
      APPEND POITEM.
      CLEAR POITEM.
    
     POITEMX-PO_ITEM = ROW .   "採购凭证的项目编号
     POITEMX-QUANTITY = CON.   "採购订单数量
     POITEMX-MATERIAL = CON.
     POITEMX-PLANT = CON.      "工厂
     POITEMX-ITEM_CAT = CON.
    
      IF WA_PO-BSART =  'ZNPI'.
        POITEMX-FREE_ITEM = CON.
      ENDIF.
      APPEND POITEMX.
      CLEAR POITEMX.
    
      MOVE-CORRESPONDING WA_PO  TO TIT_PO_RESULT.
     TIT_PO_RESULT-EBELP = ROW.
      APPEND TIT_PO_RESULT.
      CLEAR TIT_PO_RESULT.
    
     SCHEDULELINE = SCHEDULELINE +  1.
     POSCHEDULE-PO_ITEM = ROW .  "採购凭证的项目编号
     POSCHEDULE-SCHED_LINE = SCHEDULELINE .  "採购凭证的项目编号
     POSCHEDULE-DEL_DATCAT_EXT =  'D'. "交货日期的类别
     POSCHEDULE-DELIVERY_DATE = WA_PO-EINDT. "交货日期
     POSCHEDULE-QUANTITY  = WA_PO-MENGE. "採购订单数量
    
      APPEND POSCHEDULE.
      CLEAR POSCHEDULE.
    
     POSCHEDULEX-PO_ITEM = ROW .  "採购凭证的项目编号
     POSCHEDULEX-SCHED_LINE = SCHEDULELINE .  "採购凭证的项目编号
     POSCHEDULEX-DEL_DATCAT_EXT = CON. "交货日期的类别
     POSCHEDULEX-DELIVERY_DATE = CON. "交货日期
     POSCHEDULEX-QUANTITY  = CON. "採购订单数量
    
      APPEND POSCHEDULEX.
      CLEAR POSCHEDULEX.
      AT  END  OF HBBJ.
    
          CALL  FUNCTION  'BAPI_PO_CREATE1'
          EXPORTING
         POHEADER               = POHEADER
         POHEADERX              = POHEADERX
    
  •                 POADDRVENDOR           =
    
  •                 TESTRUN                =
    
  •                 MEMORY_UNCOMPLETE      =
    
  •                 MEMORY_COMPLETE        =
    
  •                 POEXPIMPHEADER         =
    
  •                 POEXPIMPHEADERX        =
    
  •                 VERSIONS               =
    
  •                 NO_MESSAGING           =
    
  •                 NO_MESSAGE_REQ         =
    
  •                 NO_AUTHORITY           =
    
  •                 NO_PRICE_FROM_PO       =
           IMPORTING
          EXPPURCHASEORDER       = EPO
    
  •                 EXPHEADER              =
    
  •                 EXPPOEXPIMPHEADER      =
           TABLES
           RETURN =  RETURN
          POITEM                 = POITEM
          POITEMX                = POITEMX
    
  •                 POADDRDELIVERY         =
          POSCHEDULE             = POSCHEDULE
          POSCHEDULEX            = POSCHEDULEX
    
  •                 POACCOUNT              =  POACCOUNT
    
  •                 POACCOUNTPROFITSEGMENT =
    
  •                 POACCOUNTX             = POACCOUNTX
    
  •                 POCONDHEADER           =
    
  •                 POCONDHEADERX          =
    
  •                 POCOND                 =
    
  •                 POCONDX                =
    
  •                 POLIMITS               =
    
  •                 POCONTRACTLIMITS       =
    
  •                 POSERVICES             =
    
  •                 POSRVACCESSVALUES      =
    
  •                 POSERVICESTEXT         =
    
  •                 EXTENSIONIN            =
    
  •                 EXTENSIONOUT           =
    
  •                 POEXPIMPITEM           =
    
  •                 POEXPIMPITEMX          =
    
  •                 POTEXTHEADER           =
    
  •                 POTEXTITEM             =  POTEXTITEM
    
  •                 ALLVERSIONS            =
    
  •                 POPARTNER              =
    
  •                 POCOMPONENTS           =
    
  •                 POCOMPONENTSX          =
    
  •                 POSHIPPING             =
    
  •                 POSHIPPINGX            =
    
  •                 POSHIPPINGEXP          =
          .
    
           CLEAR LV_ERROR.
           LOOP  AT  RETURN  INTO L_RETURN  WHERE  TYPE =  'E' .
               LV_ERROR =  '1'.
                EXIT.
           ENDLOOP.
    
           IF LV_ERROR =  '1'.
               CALL  FUNCTION  'BAPI_TRANSACTION_ROLLBACK'.
    
               CLEAR LV_MESSAGE.
               LOOP  AT  RETURN  INTO L_RETURN  WHERE  TYPE =  'E' .
                     CONCATENATE LV_MESSAGE L_RETURN-MESSAGE  ';'  INTO LV_MESSAGE.
               ENDLOOP.
    
               LOOP  AT TIT_PO_RESULT.
                    TIT_PO_RESULT-FLAG =  'E'.
                     CONCATENATE  '创建PO失败:' LV_MESSAGE  INTO TIT_PO_RESULT-MESSAGE.
                     MODIFY TIT_PO_RESULT.
                     CLEAR TIT_PO_RESULT.
               ENDLOOP.
           ELSE.
               CALL  FUNCTION  'BAPI_TRANSACTION_COMMIT'
                   EXPORTING
                     WAIT =  'X'.
    
               CLEAR LV_EBELN.
               LOOP  AT  RETURN  INTO L_RETURN  WHERE  TYPE =  'S'  AND  ID =  '06'  AND  NUMBER =  '017'.
                    LV_EBELN = L_RETURN-MESSAGE_V2.
               ENDLOOP.
    
               LOOP  AT TIT_PO_RESULT.
                    TIT_PO_RESULT-FLAG =  'S'.
                    TIT_PO_RESULT-MESSAGE =  '创建PO成功!'.
                    TIT_PO_RESULT-EBELN = LV_EBELN.
                     MODIFY TIT_PO_RESULT.
                     CLEAR TIT_PO_RESULT.
               ENDLOOP.
           ENDIF.
    
           LOOP  AT TIT_PO_RESULT.
                MOVE-CORRESPONDING TIT_PO_RESULT  TO IT_PO_RESULT.
                APPEND IT_PO_RESULT.
                CLEAR IT_PO_RESULT.
           ENDLOOP.
    
    
           REFRESH: POITEM,POITEMX,POSCHEDULE,POSCHEDULEX,POHEADER,POHEADERX, RETURN.
           CLEAR: IT_PO, WA_PO, ROW, POITEM,POITEMX,POSCHEDULE,POSCHEDULEX,POHEADER,POHEADERX, RETURN.
    
       ENDAT.
    

    ENDLOOP.

ENDFORM. " FRM_BAPI_CREATE_PO

&---------------------------------------------------------------------
*& FORM FRM_GET_FILENAME
&---------------------------------------------------------------------

  •   TEXT
    

----------------------------------------------------------------------

  •  -->P_P_FILE  TEXT
    

----------------------------------------------------------------------
FORM FRM_GET_FILENAME USING P_FILE.
DATA: L_FILETAB TYPE FILETABLE,
L_RC TYPE I.
CLEAR L_FILETAB.
REFRESH L_FILETAB.

  • OPEN DIALOG
    CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
    EXPORTING
    WINDOW_TITLE = ‘选择上传的文件’
  • DEFAULT_EXTENSION    =
    DEFAULT_FILENAME     =  '*.XLS'
    
  • FILE_FILTER          = '*.XLS'
    INITIAL_DIRECTORY    =  'C:\'
    MULTISELECTION       =  ''
    
    CHANGING
    FILE_TABLE = L_FILETAB
    RC = L_RC
    EXCEPTIONS
    CNTL_ERROR = 1
    ERROR_NO_GUI = 2
    NOT_SUPPORTED_BY_GUI = 3
    OTHERS = 4.
  • GET FILE PATH
    CHECK L_RC EQ 1.
    READ TABLE L_FILETAB INDEX 1 INTO P_FILE.
    ENDFORM. " FRM_GET_FILENAME

&---------------------------------------------------------------------
*& FORM FRM_RETRIVE_DATA
&---------------------------------------------------------------------

  •   TEXT
    

----------------------------------------------------------------------

  • –> P1 TEXT

  • <-- P2 TEXT
    ----------------------------------------------------------------------
    FORM FRM_RETRIVE_DATA.

    CALL FUNCTION ‘SAPGUI_PROGRESS_INDICATOR’
    EXPORTING
    TEXT = ‘数据处理中…’.

    DATA I_EXCEL TYPE KCDE_INTERN_STRUC OCCURS 0 WITH HEADER LINE.
    REFRESH I_EXCEL.
    CLEAR I_EXCEL.

*从已知文件名称读入内表
CALL FUNCTION ‘KCD_EXCEL_OLE_TO_INT_CONVERT’
EXPORTING
FILENAME = P_FILE
I_BEGIN_COL = 1
I_BEGIN_ROW = 1
I_END_COL = 20
I_END_ROW = 65535
TABLES
INTERN = I_EXCEL[]
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2
OTHERS = 3.

IF SY-SUBRC <> 0.
MESSAGE ‘打开文件错误,请检查文件,确保关闭文件!’ TYPE ‘E’.
STOP.
ENDIF.

REFRESH IT_PO.
CLEAR IT_PO.

LOOP AT I_EXCEL.
CASE I_EXCEL-COL.
WHEN ‘001’.
WRITE I_EXCEL-VALUE TO IT_PO-BSART.
WHEN ‘002’.
WRITE I_EXCEL-VALUE TO IT_PO-EKORG.
WHEN ‘003’.
WRITE I_EXCEL-VALUE TO IT_PO-BUKRS.
WHEN ‘004’.
WRITE I_EXCEL-VALUE TO IT_PO-EKGRP.
WHEN ‘005’.
WRITE I_EXCEL-VALUE TO IT_PO-WERKS.
WHEN ‘006’.
WRITE I_EXCEL-VALUE TO IT_PO-LIFNR.
WHEN ‘007’.
WRITE I_EXCEL-VALUE TO IT_PO-PSTYP.

   WHEN  '008'.
     WRITE I_EXCEL-VALUE  TO IT_PO-MATNR.

     CALL  FUNCTION  'CONVERSION_EXIT_ALPHA_INPUT'
         EXPORTING
            INPUT = IT_PO-MATNR
         IMPORTING
            OUTPUT = IT_PO-MATNR.


   WHEN  '009'.
     WRITE I_EXCEL-VALUE  TO IT_PO-MENGE.

   WHEN  '010'.
     WRITE I_EXCEL-VALUE  TO IT_PO-EINDT.
     IF I_EXCEL-VALUE <>  '交货期'.
         CALL  FUNCTION  'CONVERT_DATE_TO_INTERNAL'
              EXPORTING
                DATE_EXTERNAL = I_EXCEL-VALUE
              IMPORTING
                DATE_INTERNAL = IT_PO-EINDT.
     ENDIF.


   WHEN  '011'.
     WRITE I_EXCEL-VALUE  TO IT_PO-HBBJ.

 ENDCASE.
 AT  END  OF ROW.
   APPEND IT_PO.
   CLEAR  IT_PO.
 ENDAT.

ENDLOOP.

  • 删除表头
    DELETE IT_PO INDEX 1.

ENDFORM. " FRM_RETRIVE_DATA

&---------------------------------------------------------------------
*& Form FRM_DOWNLOAD_DATA
&---------------------------------------------------------------------

  •   下载数据到xls文件
    

----------------------------------------------------------------------
FORM FRM_DOWNLOAD_DATA .

 DATA:LV_FILENAME  TYPE STRING.

 DATA: BEGIN  OF T_FIELDNAMES   OCCURS  0,
        NAME  TYPE CHAR20,
      END  OF T_FIELDNAMES.


 REFRESH T_FIELDNAMES.
 CLEAR T_FIELDNAMES.

T_FIELDNAMES-NAME =  '订单类型'.
 APPEND T_FIELDNAMES.

T_FIELDNAMES-NAME =  '採购组织'.
 APPEND T_FIELDNAMES.

T_FIELDNAMES-NAME =  '公司代码'.
 APPEND T_FIELDNAMES.

T_FIELDNAMES-NAME =  '採购组'.
 APPEND T_FIELDNAMES.

T_FIELDNAMES-NAME =  '工厂'.
 APPEND T_FIELDNAMES.

T_FIELDNAMES-NAME =  '供应商'.
 APPEND T_FIELDNAMES.

T_FIELDNAMES-NAME =  '行项目类别'.
 APPEND T_FIELDNAMES.

T_FIELDNAMES-NAME =  '物料号'.
 APPEND T_FIELDNAMES.

T_FIELDNAMES-NAME =  '数量'.
 APPEND T_FIELDNAMES.

T_FIELDNAMES-NAME =  '交货期'.
 APPEND T_FIELDNAMES.

T_FIELDNAMES-NAME =  '合并标记'.
 APPEND T_FIELDNAMES.

T_FIELDNAMES-NAME =  '採购订单号'.
 APPEND T_FIELDNAMES.

T_FIELDNAMES-NAME =  '採购订单行项目'.
 APPEND T_FIELDNAMES.

T_FIELDNAMES-NAME =  '订单创建是否成功标记'.
 APPEND T_FIELDNAMES.

T_FIELDNAMES-NAME =  '订单创建返回信息'.
 APPEND T_FIELDNAMES.

 CLEAR LV_FILENAME.

 CONCATENATE  'C:\PO批导日志' SY-DATUM SY-UZEIT  '.XLS'  INTO LV_FILENAME.

 CALL  FUNCTION  'GUI_DOWNLOAD'
   EXPORTING
    FILENAME                        = LV_FILENAME  "'C:\1234.XLS'
    FILETYPE                        =  'DAT'
 "这里一般用DAT,假设用ASC则1000-不会显示为-1000,而DAT会显示为-1000,假设用DBF则不会有缩进,即字符前面的空格会被除去,并且字符的前导0也会输出。
    CODEPAGE                        =  '8404'
   TABLES
    DATA_TAB                        = IT_PO_RESULT
    FIELDNAMES                      = T_FIELDNAMES.

MESSAGE  '已完毕创建凭证,结果保存在C盘文件夹下,请查看!.'  TYPE  'I'.

ENDFORM. " FRM_DOWNLOAD_DATA

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值