SAP PS 第12节 PS常用BAPI调用示例

SAP PS BAPI篇


从项目定义,到WBS,到网络,到活动,到物料组件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1项目定义

序号 业务分类 作用类别 主要作用
1 项目定义 查询类 BAPI_PROJECTDEF_GETLIST 生成选择标准的项目定义的清单
2 项目定义 查询类 BAPI_PROJECTDEF_GETDETAIL 读取项目定义的细节
3 项目定义 查询类 BAPI_BUS2001_GETDATA 项目定义的详细数据
4 项目定义 查询类 BAPI_PROJECTDEF_EXISTENCECHECK 检查对象是否存在
5 项目定义 查询类 BAPI_BUS2001_GET_GUID_FROM_KEY 从键值获取GUID
6 项目定义 查询类 BAPI_BUS2001_GET_KEY_FROM_GUID 从 GUID 获取键值
7 项目定义 查询类 BAPI_BUS2001_GET_STATUS 读取BUS2001状态 (项目定义)
8 项目定义 新建类 BAPI_PROJECTDEF_CREATE BAPI: 创建项目定义
9 项目定义 新建类 BAPI_BUS2001_CREATE 使用 BAPI来创建项目定义,得增强字段了
10 项目定义 修改类 BAPI_PROJECTDEF_UPDATE 使用 BAPI来修改项目定义信息
11 项目定义 修改类 BAPI_BUS2001_CHANGE 使用 BAPI来修改项目定义信息,可使用增强字段
12 项目定义 修改类 BAPI_BUS2001_SET_STATUS 设置项目状态
13 项目定义 修改类 BAPI_BUS2001_DELETE 删除项目

1.1 查询

1.1.1 BAPI_PROJECTDEF_GETLIST生成选择标准的项目定义的清单

*&---------------------------------------------------------------------*
*& Report ZLGZBAPI_PROJECTDEF_GETLIST
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZLGZBAPI_PROJECTDEF_GETLIST.


TABLEs:vbak,proj.
"第一步,定义变量
data: iv_max_rows type BAPIF4A-MAX_ROWS.
data: lt_PROJECT_DEFINITION_LIST TYPE TABLE of BAPIPREXP."定义的对外显示的信息



"第二步,定义range

"二种定义函数中range方法
*选项介绍:
*1.SIGN  值为I和E I包含 E是排除 一般使用I
*2.OPTION 如果HIGH 为空  为单值选择 有 EQ、NE、GT、LE、LT等逻辑操作  对于*的  CP包含  NP是排除
*         如果HIGH 不为空 为区间选择 有BT,NB可选
*3.LOW     低值
*4.HIGH    高值


"方法一,查找函数range的LOW和HIGH的类型,采用type RANGE OF 不过这种方式,已经跳到函数内部了,失去了函数封装的意义了,下面就是例如针对结构BAPI_2002_PD_RANGE的示例

*DATA lt_pspid TYPE RANGE OF PS_PSPID."项目定义ID
*DATA wa_pspid LIKE LINE OF lt_pspid.




"    wa_pspid-sign   = 'I'.
"    wa_pspid-option = 'BT'.
"    wa_pspid-low    = 'PSCN02_2020001'.
"    wa_pspid-high    = 'PSCN02_2020003'.
"  APPEND wa_pspid TO lt_pspid.




"方法二,直接用data引用封装好的range

data lt_pd_range type table of BAPI_2002_PD_RANGE."这个是封装的项目编号range
data wa_pd_range type BAPI_2002_PD_RANGE.


data lt_descr_range type table of BAPI_2002_DESCR_RANGE."这个是封装的项目描述range
data wa_descr_range type BAPI_2002_DESCR_RANGE.




"第三步,定义选择条件
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
  PARAMETERS p_p1 TYPE BAPIF4A-MAX_ROWS .
SELECTION-SCREEN END OF BLOCK b1.


SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-001.

  SELECT-OPTIONS: range0 for  proj-PSPID DEFAULT '0' TO 'PSCN02_2020003' OPTION BT.
  SELECT-OPTIONS: range1 FOR  proj-POST1 DEFAULT 'ZCN02基建项目' TO 'ZCN02基建项目' OPTION BT.

  "也可以根据定义的range结构定义选择条件
* SELECT-OPTIONS: range0 for  wa_pd_range DEFAULT '0' TO 'PSCN02_2020003' OPTION BT.
* SELECT-OPTIONS: range1 FOR  wa_descr_range DEFAULT 'ZCN02基建项目' TO 'ZCN02基建项目' OPTION BT.
SELECTION-SCREEN END OF BLOCK b2.



"第四步,将选择条件的值赋值给range

"屏幕选择的操作
iv_max_rows = p_p1."将输入显示行数赋值给参数1iv_max_rows
*wa_descr_range = range0.  "直接将range0复制到wa_pd_range貌似把高的值无法复制过来,那就强行赋值了,给第一个range赋值
clear wa_pd_range.
wa_pd_range-sign = range0-sign.
wa_pd_range-option = range0-option.
wa_pd_range-low = range0-low.
wa_pd_range-high = range0-high.
APPEND wa_pd_range to lt_pd_range.



*wa_pd_range = range1.  "直接将range0复制到wa_pd_range貌似把高的值无法复制过来,那就强行赋值了
clear wa_descr_range.
wa_descr_range-sign = range1-sign.
wa_descr_range-option = range1-option.
wa_descr_range-low = range1-low.
wa_descr_range-high = range1-high.
APPEND wa_descr_range to lt_descr_range.



"未赋值判断

IF p_p1 is  INITIAL.
    MESSAGE '最好选择行数,不然撑爆' type 'I'.
ENDIF.


"第五步,调用BAPI


"调用函数
CALL FUNCTION 'BAPI_PROJECTDEF_GETLIST'
 EXPORTING
   MAX_ROWS                       = iv_max_rows
* IMPORTING
*   RETURN                         =
  TABLES
    project_definition_list        = lt_PROJECT_DEFINITION_LIST
    PROJECT_DEFINITION_RANGE       = lt_pd_range
    "DESCRIPTION_RANGE              = lt_descr_range
          .


"第六步,显示
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
 EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                =
*   I_BUFFER_ACTIVE                   =
*   I_CALLBACK_PROGRAM                = ' '
*   I_CALLBACK_PF_STATUS_SET          = ' '
*   I_CALLBACK_USER_COMMAND           = ' '
*   I_CALLBACK_TOP_OF_PAGE            = ' '
*   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*   I_CALLBACK_HTML_END_OF_LIST       = ' '
   I_STRUCTURE_NAME                  = 'BAPIPREXP'
*   I_BACKGROUND_ID                   = ' '
*   I_GRID_TITLE                      =
*   I_GRID_SETTINGS                   =
*   IS_LAYOUT_LVC                     =
*   IT_FIELDCAT_LVC                   =
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS_LVC             =
*   IT_SORT_LVC                       =
*   IT_FILTER_LVC                     =
*   IT_HYPERLINK                      =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
*   I_SAVE                            = ' '
*   IS_VARIANT                        =
*   IT_EVENTS                         =
*   IT_EVENT_EXIT                     =
*   IS_PRINT_LVC                      =
*   IS_REPREP_ID_LVC                  =
*   I_SCREEN_START_COLUMN             = 0
*   I_SCREEN_START_LINE               = 0
*   I_SCREEN_END_COLUMN               = 0
*   I_SCREEN_END_LINE                 = 0
*   I_HTML_HEIGHT_TOP                 =
*   I_HTML_HEIGHT_END                 =
*   IT_ALV_GRAPHICS                   =
*   IT_EXCEPT_QINFO_LVC               =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
  TABLES
    t_outtab                          = lt_PROJECT_DEFINITION_LIST
* EXCEPTIONS
*   PROGRAM_ERROR                     = 1
*   OTHERS                            = 2
          .
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

调用示例:

在这里插入图片描述

在这里插入图片描述

1.1.2 BAPI_PROJECTDEF_GETDETAIL读取项目定义的细节

*&---------------------------------------------------------------------*
*& Report ZLGZBAPI_PROJECTDEF_GETDETAIL
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZLGZBAPI_PROJECTDEF_GETDETAIL.


"第一步,定义变量
data: WA_PROJECT_DEFI type BAPI_PROJ_KEY-PROJECT_DEFI."项目定义编号
data: WA_PROJ_KEY_INT TYPE BAPI_PROJ_KEY-PROJ_KEY_INT."项目内部编号

data: LT_PROJECT_DEFINITION_EX type TABLE of BAPI_PROJECT_DEFINITION_EX."定义输出变量
data: WA_PROJECT_DEFINITION_EX type BAPI_PROJECT_DEFINITION_EX."定义输出变量


"第二步,定义屏幕参数

PARAMETERS p_p1 TYPE PROJ-PSPID.

PARAMETERS p_p2 TYPE PROJ-PSPNR.



"第三步,赋值


WA_PROJECT_DEFI = p_p1.
WA_PROJ_KEY_INT = p_p2.




"第四步,调用函数

CALL FUNCTION 'BAPI_PROJECTDEF_GETDETAIL'
  EXPORTING
    currentexternalproje          = WA_PROJECT_DEFI
    currentinternalproje          = WA_PROJ_KEY_INT
 IMPORTING
   PROJECT_DEFINITION_STRU       = WA_PROJECT_DEFINITION_EX
*   RETURN                        =
          .

APPEND WA_PROJECT_DEFINITION_EX TO LT_PROJECT_DEFINITION_EX.

"第五步,ALV输出

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
 EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                =
*   I_BUFFER_ACTIVE                   =
*   I_CALLBACK_PROGRAM                = ' '
*   I_CALLBACK_PF_STATUS_SET          = ' '
*   I_CALLBACK_USER_COMMAND           = ' '
*   I_CALLBACK_TOP_OF_PAGE            = ' '
*   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*   I_CALLBACK_HTML_END_OF_LIST       = ' '
   I_STRUCTURE_NAME                  = 'BAPI_PROJECT_DEFINITION_EX'
*   I_BACKGROUND_ID                   = ' '
*   I_GRID_TITLE                      =
*   I_GRID_SETTINGS                   =
*   IS_LAYOUT_LVC                     =
*   IT_FIELDCAT_LVC                   =
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS_LVC             =
*   IT_SORT_LVC                       =
*   IT_FILTER_LVC                     =
*   IT_HYPERLINK                      =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
*   I_SAVE                            = ' '
*   IS_VARIANT                        =
*   IT_EVENTS                         =
*   IT_EVENT_EXIT                     =
*   IS_PRINT_LVC                      =
*   IS_REPREP_ID_LVC                  =
*   I_SCREEN_START_COLUMN             = 0
*   I_SCREEN_START_LINE               = 0
*   I_SCREEN_END_COLUMN               = 0
*   I_SCREEN_END_LINE                 = 0
*   I_HTML_HEIGHT_TOP                 =
*   I_HTML_HEIGHT_END                 =
*   IT_ALV_GRAPHICS                   =
*   IT_EXCEPT_QINFO_LVC               =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
  TABLES
    t_outtab                          = LT_PROJECT_DEFINITION_EX
* EXCEPTIONS
*   PROGRAM_ERROR                     = 1
*   OTHERS                            = 2
          .
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

在这里插入图片描述

在这里插入图片描述

1.1.3 BAPI_BUS2001_GETDATA 项目定义的详细数据

再看看新版的项目定义,有哪些区别,可增强,自定义字段按需获取。至于扩展字段的查询稍后再演示。

*&---------------------------------------------------------------------*
*& Report ZLGZBAPI_BUS2001_GETDATA
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZLGZBAPI_BUS2001_GETDATA.


"第一步,定义变量
"输出和输入
DATA:
ld_e_project_definition	 TYPE BAPI_BUS2001_DETAIL ,
lt_e_project_definition	 TYPE STANDARD TABLE OF BAPI_BUS2001_DETAIL ,
ld_i_project_definition	 TYPE BAPI_BUS2001_DETAIL-PROJECT_DEFINITION ,


"返回变量
it_et_return   TYPE STANDARD TABLE OF BAPIRET2 ,
wa_et_return   LIKE LINE OF it_et_return,

"语言
ld_i_language	 TYPE BAPI_BUS2001_DETAIL-LANGU_ISO ,


"扩展的输入变量,扩展字段使用
it_extensionin   TYPE STANDARD TABLE OF BAPIPAREX ,
wa_extensionin   LIKE LINE OF it_extensionin,

"扩展的输出变量,扩展字段使用
it_extensionout	 TYPE STANDARD TABLE OF BAPIPAREX ,
wa_extensionout	 LIKE LINE OF it_extensionout.


"第二步,赋值
ld_i_project_definition = 'LGZXS002'.
"populate fields of struture and append to itab
append wa_et_return to it_et_return.


ld_i_language = 'ZH'.


"populate fields of struture and append to itab
append wa_extensionin to it_extensionin.


"populate fields of struture and append to itab
append wa_extensionout to it_extensionout.
.



"第三步,调用函数及lvc展示
CALL FUNCTION 'BAPI_BUS2001_GETDATA'
  EXPORTING
    i_project_definition =       ld_i_project_definition
*   i_language =                 ld_i_language
  IMPORTING
    e_project_definition =       ld_e_project_definition
* TABLES
*   et_return =                  it_et_return
*   extensionin =                it_extensionin
*   extensionout =               it_extensionout
    .  "  BAPI_BUS2001_GETDATA

IF SY-SUBRC EQ 0.
  APPEND ld_e_project_definition to lt_e_project_definition.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
 EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                =
*   I_BUFFER_ACTIVE                   =
*   I_CALLBACK_PROGRAM                = ' '
*   I_CALLBACK_PF_STATUS_SET          = ' '
*   I_CALLBACK_USER_COMMAND           = ' '
*   I_CALLBACK_TOP_OF_PAGE            = ' '
*   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*   I_CALLBACK_HTML_END_OF_LIST       = ' '
   I_STRUCTURE_NAME                  = 'BAPI_BUS2001_DETAIL'
*   I_BACKGROUND_ID                   = ' '
*   I_GRID_TITLE                      =
*   I_GRID_SETTINGS                   =
*   IS_LAYOUT_LVC                     =
*   IT_FIELDCAT_LVC                   =
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS_LVC             =
*   IT_SORT_LVC                       =
*   IT_FILTER_LVC                     =
*   IT_HYPERLINK                      =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
*   I_SAVE                            = ' '
*   IS_VARIANT                        =
*   IT_EVENTS                         =
*   IT_EVENT_EXIT                     =
*   IS_PRINT_LVC                      =
*   IS_REPREP_ID_LVC                  =
*   I_SCREEN_START_COLUMN             = 0
*   I_SCREEN_START_LINE               = 0
*   I_SCREEN_END_COLUMN               = 0
*   I_SCREEN_END_LINE                 = 0
*   I_HTML_HEIGHT_TOP                 =
*   I_HTML_HEIGHT_END                 =
*   IT_ALV_GRAPHICS                   =
*   IT_EXCEPT_QINFO_LVC               =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
  TABLES
    t_outtab                          = lt_e_project_definition
* EXCEPTIONS
*   PROGRAM_ERROR                     = 1
*   OTHERS                            = 2
          .
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDIF.

1.1.4 其他类查询

序号 业务分类 作用类别 主要作用
4 项目定义 查询类 BAPI_PROJECTDEF_EXISTENCECHECK 检查对象是否存在
5 项目定义 查询类 BAPI_BUS2001_GET_GUID_FROM_KEY 从键值获取GUID
6 项目定义 查询类 BAPI_BUS2001_GET_KEY_FROM_GUID 从 GUID 获取键值
7 项目定义 查询类 BAPI_BUS2001_GET_STATUS 读取BUS2001状态 (项目定义)
*&---------------------------------------------------------------------*
*& Report ZLGZBAPI_BUS2001_GET_STATUS
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZLGZBAPI_BUS2001_GET_STATUS.

DATA:
ld_return	 TYPE BAPIRETURN1 ,

ld_internalitemnumber	 TYPE BAPI_PRPS_KEY-INTERNALITEMNUMBER ,
ld_externalitemnumber	 TYPE BAPI_PRPS_KEY-EXTERNALITEMNUMBER .




ld_externalitemnumber = 'LGZXS00212'.

ld_internalitemnumber = ''.






CALL FUNCTION 'BAPI_PS_INITIALIZATION'.

CALL FUNCTION 'BAPI_PROJECT_EXISTENCECHECK'
  EXPORTING
    internalitemnumber =         ld_internalitemnumber
    externalitemnumber =         ld_externalitemnumber
  IMPORTING
    return =                     ld_return

    .  "  BAPI_PROJECT_EXISTENCECHECK

IF SY-SUBRC EQ 0.
  IF ld_return is INITIAL.
    WRITE:/ '存在该WBS,可以获取该WBS的状态了:'.
  ENDIF.
ENDIF.




"第一步:定义变量

DATA:

ld_project_definition	 TYPE BAPIPR-PROJECT_DEFINITION ,"项目定义输入条件

it_e_system_status   TYPE STANDARD TABLE OF BAPI_SYSTEM_STATUS ,"系统状态定义
wa_e_system_status   LIKE LINE OF it_e_system_status,


it_e_user_status   TYPE STANDARD TABLE OF BAPI_USER_STATUS ,"用户状态定义
wa_e_user_status   LIKE LINE OF it_e_user_status.


"第二步:初始化变量
ld_project_definition = 'LGZXS002'.




clear ld_return.

CALL FUNCTION 'BAPI_PS_INITIALIZATION'.
CALL FUNCTION 'BAPI_BUS2001_GET_STATUS'
  EXPORTING
    project_definition =         ld_project_definition
  IMPORTING
    return =                     ld_return
 TABLES
   e_system_status =            it_e_system_status
   e_user_status =              it_e_user_status
    .  "  BAPI_BUS2001_GET_STATUS

IF SY-SUBRC EQ 0.

    LOOP AT it_e_system_status into wa_e_system_status.
      IF wa_e_system_status is not INITIAL.
        WRITE:/ '输出系统状态:',wa_e_system_status-SYSTEM_STATUS.
      ENDIF.

    ENDLOOP.


    LOOP AT it_e_user_status into wa_e_user_status.
      IF wa_e_user_status is not INITIAL.
        WRITE:/ '输出用户状态:',wa_e_user_status-USER_STATUS.
      ENDIF.

    ENDLOOP.



ENDIF.

1.2 新增

1.2.1 BAPI_PROJECTDEF_CREATE旧的不可以增强的新增


*根据给出的流水号创建项目
  DATA:ls_stru   TYPE bapi_project_definition,
       lt_return TYPE TABLE OF bapi_meth_message WITH HEADER LINE,
       p_message type char1.
*FS上只标注了项目定义、描述、业务范围、成本控制范围、公司代码、工厂、负责人编号




  PARAMETERS p_char1 TYPE char40."项目定义
  PARAMETERS p_char2 TYPE char40."项目描述
  PARAMETERS p_char3 TYPE PROJ-VBUKR."公司代码
  PARAMETERS p_char4 TYPE PROJ-VKOKR."成本控制范围
  PARAMETERS p_char5 TYPE PROJ-PROFL."项目参数文件
  PARAMETERS p_char6 TYPE PROJ-WERKS."工厂
  PARAMETERS p_char7 TYPE PROJ-PRCTR."利润中心



  ls_stru-project_definition = p_char1.
  ls_stru-description        = p_char2.
  ls_stru-comp_code          = p_char3.
  ls_stru-controlling_area   = p_char4.
  ls_stru-project_profile    = p_char5.
  ls_stru-plant              = p_char6.
  ls_stru-PROFIT_CTR         = p_char7 .



  CALL FUNCTION 'BAPI_PROJECTDEF_CREATE'
    EXPORTING
      project_definition_stru = ls_stru
* IMPORTING
*     RETURN                  =
    TABLES
      e_message_table         = lt_return.

  READ TABLE lt_return WITH KEY message_type = 'E'.
  IF sy-subrc EQ 0.
    p_message = 'E'.
    MESSAGE '创建失败' TYPE 'S'.
  ELSE.
    p_message = 'S'.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait = 'X'.
    MESSAGE '创建成功' TYPE 'S'.
  ENDIF.

1.2.2 BAPI_BUS2001_CREATE项目定义新增,可扩展字段

*&---------------------------------------------------------------------*
*& Report ZLGZBAPI_BUS2001_CREATE
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zlgzbapi_bus2001_create.



DATA :is_proj TYPE proj.

"第一步,创建变量
  DATA:ls_return      TYPE bapi_meth_message,
       lt_stru_proj_define TYPE TABLE OF bapi_bus2001_new,
       wa_stru_proj_define TYPE  bapi_bus2001_new,


       lt_message TYPE TABLE OF bapiret2,
       wa_message TYPE  bapiret2.

*FS上只标注了项目定义、描述、业务范围、成本控制范围、公司代码、工厂、负责人编号


  "第二步,画参数

  "MOVE-CORRESPONDING ld_e_project_definition TO wa_stru_proj_define.

  PARAMETERS p_char1 TYPE char40 ."项目定义
  PARAMETERS p_char2 TYPE char40."项目描述
  PARAMETERS p_char3 TYPE proj-vbukr DEFAULT '6888'."公司代码
  PARAMETERS p_char4 TYPE proj-vkokr DEFAULT '6888'."成本控制范围
  PARAMETERS p_char5 TYPE proj-profl DEFAULT 'ZPS8802'."项目参数文件
  PARAMETERS p_char6 TYPE bapi_bus2001_new-plant DEFAULT '8810'."工厂
  PARAMETERS p_char7 TYPE bapi_bus2001_new-profit_ctr DEFAULT 'P6888001'."利润中心
  PARAMETERS p_char8 TYPE bapi_bus2001_new-start  DEFAULT '20210208'."开始日期
  PARAMETERS p_char9 TYPE bapi_bus2001_new-finish  DEFAULT 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值