IDOC日志查询报表

当不知道IDOC同步的具体时间,而WE02数据量过大时;

当某条IDOC记录中数据量过大,找不到具体某条数据时;

可采用自开发程序查找,具体代码如下:

"-----------------------------------------@斌将军--------------------------------------------
REPORT ZIDOC_LOG.
*----------------------------------------------------------------------*
*表声明
*----------------------------------------------------------------------*
TABLES:SSCRFIELDS,EDIDC."

*----------------------------------------------------------------------*
*类型池声明
*----------------------------------------------------------------------*
TYPE-POOLS:SLIS.

*----------------------------------------------------------------------*
* 类型定义
*----------------------------------------------------------------------*
TYPES:BEGIN OF TY_IDOC,
        DOCNUM    TYPE EDIDC-DOCNUM, "IDoc 号码
        STATUS    TYPE EDIDC-STATUS, "状态
        RCVPOR    TYPE EDIDC-RCVPOR, "接收方端口
        SNDPOR    TYPE EDIDC-SNDPOR, "发件人端口
        SNDPRN    TYPE EDIDC-SNDPRN, "发送者伙伴编号
        CREDAT    TYPE EDIDC-CREDAT, "创建日期
        CRETIM    TYPE EDIDC-CRETIM, "创建时间
        MESTYP    TYPE EDIDC-MESTYP, "消息类型
        IDOCTP    TYPE EDIDC-IDOCTP, "基本类型
        UPDDAT    TYPE EDIDC-UPDDAT, "更改日期
        UPDTIM    TYPE EDIDC-UPDTIM, "更改时间
        MAXSEGNUM TYPE EDIDC-MAXSEGNUM, "数据记录的数目

        SEGNUM    TYPE EDID4-SEGNUM, "SAP 段编号
        SEGNAM    TYPE EDID4-SEGNAM, "SAP 段名
        SDATA     TYPE STRING, "应用程序数据
      END OF TY_IDOC.

TYPES:BEGIN OF TY_EDID4,
        DOCNUM  TYPE EDID4-DOCNUM, "IDoc 号码
        COUNTER TYPE EDID4-COUNTER, "簇表的计数器
        SEGNUM  TYPE EDID4-SEGNUM, "SAP 段编号
        SEGNAM  TYPE EDID4-SEGNAM, "SAP 段名
        SDATA   TYPE STRING, "应用程序数据
      END OF TY_EDID4.

TYPES:BEGIN OF TY_SEGNAM,
        SEGNAM TYPE EDID4-SEGNAM, "SAP 段名,
      END OF TY_SEGNAM.

DATA:GT_SEGNAM_HASH TYPE HASHED TABLE OF TY_SEGNAM WITH UNIQUE KEY SEGNAM,
     GS_SEGNAM_HASH TYPE TY_SEGNAM.

*----------------------------------------------------------------------*
* 声明内表和工作区
*----------------------------------------------------------------------*
DATA:GT_IDOC  TYPE TABLE OF TY_IDOC,
     GS_IDOC  TYPE TY_IDOC,
     GT_ALV   TYPE TABLE OF TY_IDOC,
     GS_ALV   TYPE TY_IDOC,
     GT_EDID4 TYPE TABLE OF EDIDD,
     GS_EDID4 TYPE EDIDD.

DATA: TIME_0  LIKE EDIDC-UPDTIM VALUE '000000',
      TIME_24 LIKE EDIDC-UPDTIM VALUE '240000'.

FIELD-SYMBOLS:<GS_IDOC>   TYPE TY_IDOC,
              <DYN_ALV>   TYPE STANDARD TABLE,
              <DYN_WA>,
              <GS_FIELD>  TYPE LVC_S_FCAT,
              <DYN_FIELD>.
DATA:DY_TABLE TYPE REF TO DATA,
     GS_LINE  TYPE REF TO DATA.

DATA:GT_ROW    TYPE LVC_T_ROW,
     GS_ROW    TYPE LVC_S_ROW,
     GT_ROW_NO TYPE LVC_T_ROID.
*----------------------------------------------------------------------*
*ALV参数声明
*----------------------------------------------------------------------*

DATA: GT_FIELDCAT TYPE LVC_T_FCAT, "字段目录内表
      GS_FIELDCAT TYPE LVC_S_FCAT, "字段目录工作区
      GT_FIELD    TYPE LVC_T_FCAT, "字段目录内表
      GS_FIELD    TYPE LVC_S_FCAT, "字段目录工作区
      GS_LAYOUT   TYPE LVC_S_LAYO. "用于定义ALV表单的相关格式、属性

*----------------------------------------------------------------------*
*选 择 屏 幕 定 义 块
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK BLK0 WITH FRAME.
PARAMETERS:P_IDOCTP TYPE EDIDC-IDOCTP OBLIGATORY."基本类型
SELECT-OPTIONS:S_CREDAT FOR EDIDC-CREDAT DEFAULT SY-DATUM TO SY-DATUM OBLIGATORY."创建日期
SELECT-OPTIONS:S_CRETIM FOR EDIDC-CRETIM DEFAULT TIME_0 TO TIME_24 OBLIGATORY."创建时间
SELECTION-SCREEN END OF BLOCK BLK0.
*&---------------------------------------------------------------------*
* 初始化
*&---------------------------------------------------------------------*
SELECTION-SCREEN:
FUNCTION KEY 1."定义按钮1

*&---------------------------------------------------------------------*
* INITIALIZATION:启动程序开始执行,初始话数据
*&---------------------------------------------------------------------*
INITIALIZATION.


AT SELECTION-SCREEN.

*&---------------------------------------------------------------------*
*&  AT SELECTION-SCREEN OUTPUT:在屏幕输出前
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.

*----------------------------------------------------------------------*
* ALV逻辑流
*----------------------------------------------------------------------*
START-OF-SELECTION.

  "获取数据
  PERFORM FRM_GET_DATA.

  "设置输出格式
  PERFORM FRM_SET_LAYOUT.

  "设置字段属性
  PERFORM FRM_SET_FIELDCAT.

  "创建动态内表
  PERFORM FRM_CREATE_TABLE.

  "显示ALV
  PERFORM FRM_DISPLAY_ALV.
*&---------------------------------------------------------------------*
*&      Form  FRM_CHECK_SRCEEN
*&---------------------------------------------------------------------*
*       text 检查必输字段
*----------------------------------------------------------------------*
FORM FRM_CHECK_SRCEEN.

ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  FRM_CHECK_AUTHORITY
*&---------------------------------------------------------------------*
*       text 权限检查
*----------------------------------------------------------------------*
FORM FRM_CHECK_AUTHORITY.
*  DATA:LV_MESSAGE TYPE CHAR200.
*
*  AUTHORITY-CHECK OBJECT 'M_MSEG_WMB' ID 'WERKS' FIELD P_WERKS.
*  IF SY-SUBRC <> 0.
*    CONCATENATE '你没有' P_WERKS '工厂的权限' INTO LV_MESSAGE.
*    MESSAGE LV_MESSAGE TYPE 'S' DISPLAY LIKE 'E'.
*    STOP.
*  ENDIF.
ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  FRM_GET_DATA
*&---------------------------------------------------------------------*
*       text 获取数据
*----------------------------------------------------------------------*
FORM FRM_GET_DATA.
  DATA:LV_CHECK TYPE CHAR1.

  SELECT
    DOCNUM"IDoc 号码
    STATUS"状态
    RCVPOR"接收方端口
    SNDPOR"发件人端口
    SNDPRN"发送者伙伴编号
    CREDAT"创建日期
    CRETIM"创建时间
    MESTYP"消息类型
    IDOCTP"基本类型
    UPDDAT"更改日期
    UPDTIM"更改时间
    MAXSEGNUM"数据记录的数目
  FROM EDIDC
  INTO TABLE GT_IDOC
  WHERE IDOCTP = P_IDOCTP
    AND CREDAT IN S_CREDAT
    AND CRETIM IN S_CRETIM.

  IF GT_IDOC IS NOT INITIAL.
    SELECT
      *
    FROM EDID4
    INTO CORRESPONDING FIELDS OF TABLE GT_EDID4
    FOR ALL ENTRIES IN GT_IDOC
    WHERE DOCNUM = GT_IDOC-DOCNUM.

    SORT GT_EDID4 BY DOCNUM SEGNUM.

    LOOP AT GT_IDOC ASSIGNING <GS_IDOC>.
*      LV_CHECK = ''.
      LOOP AT GT_EDID4 INTO GS_EDID4 WHERE DOCNUM = <GS_IDOC>-DOCNUM.
        <GS_IDOC>-SEGNUM = GS_EDID4-SEGNUM.
        <GS_IDOC>-SEGNAM = GS_EDID4-SEGNAM.
        <GS_IDOC>-SDATA = GS_EDID4-SDATA.
*        LV_CHECK = 'X'.
        CLEAR:GS_SEGNAM_HASH.
        GS_SEGNAM_HASH-SEGNAM = GS_EDID4-SEGNAM.
        INSERT GS_SEGNAM_HASH INTO TABLE GT_SEGNAM_HASH.

        APPEND <GS_IDOC> TO GT_ALV.
        CLEAR:GS_EDID4.
      ENDLOOP.

*      IF LV_CHECK <> 'X'.
*        APPEND <GS_IDOC> TO GT_ALV.
*      ENDIF.
    ENDLOOP.
  ENDIF.

  IF GT_ALV IS INITIAL.
    MESSAGE '系统中无相关数据' TYPE 'S' DISPLAY LIKE 'E'.
    STOP.
  ELSE.
    SORT GT_ALV BY DOCNUM SEGNUM.
  ENDIF.
ENDFORM. " FRM_GET_DATA

*&---------------------------------------------------------------------*
*&      Form  FRM_SET_LAYOUT
*&---------------------------------------------------------------------*
*       text  界面格式属性
*----------------------------------------------------------------------*
FORM FRM_SET_LAYOUT .
  CLEAR GS_LAYOUT.
  GS_LAYOUT-SEL_MODE   = 'A'.     "选择行模式
  GS_LAYOUT-CWIDTH_OPT = 'A'.     "优化列宽设置
  GS_LAYOUT-ZEBRA      = 'X'.     "设置斑马线
*  GS_LAYOUT-BOX_FNAME = 'CHECKBOX'.
ENDFORM. " FRM_SET_LAYOUT

*&---------------------------------------------------------------------*
*&      Form  FRM_SET_FIELDCAT
*&---------------------------------------------------------------------*
*       text 字段属性定义
*----------------------------------------------------------------------*
FORM FRM_SET_FIELDCAT.

  DATA:LT_ALV         TYPE TABLE OF TY_IDOC,
       LS_ALV         TYPE TY_IDOC,
*       LT_SEGNAM_HASH TYPE HASHED TABLE OF TY_SEGNAM WITH UNIQUE KEY SEGNAM,
       LT_SEGNAM_HASH TYPE TABLE OF TY_SEGNAM,
       LS_SEGNAM_HASH TYPE TY_SEGNAM,
       LT_FIELD       TYPE LVC_T_FCAT, "字段目录内表
       LS_FIELD       TYPE LVC_S_FCAT. "字段目录工作区.

  DATA:CL_TABLE   TYPE REF TO CL_ABAP_TABLEDESCR,
       CL_STRUCT  TYPE REF TO CL_ABAP_STRUCTDESCR,
       LV_LINES   TYPE I,
       LV_TABNAME TYPE DD02L-TABNAME.

  FIELD-SYMBOLS:<GS_TEMP>  TYPE ANY,
                <LV_VALUE> TYPE ANY.

  REFRESH GT_FIELDCAT.
  DEFINE  INIT_FILL_FCAT.
    CLEAR gs_fieldcat.
    gs_fieldcat-fieldname  = &1.
    gs_fieldcat-coltext    = &2.
    gs_fieldcat-scrtext_l  = &2.
    gs_fieldcat-scrtext_m  = &2.
    gs_fieldcat-scrtext_s  = &2.
    gs_fieldcat-reptext    = &2.
    gs_fieldcat-ref_table = &3.
    gs_fieldcat-ref_field = &4.
    gs_fieldcat-no_zero = &5.
    gs_fieldcat-ICON   = &6.
    gs_fieldcat-hotspot = &7.
    gs_fieldcat-datatype  = &8.
    gs_fieldcat-inttype  = &9.
    APPEND gs_fieldcat TO gt_fieldcat.
  END-OF-DEFINITION.

  INIT_FILL_FCAT 'DOCNUM' 'IDoc 号码' 'EDIDC' 'DOCNUM' '' '' 'X' '' ''.
  INIT_FILL_FCAT 'SEGNUM' '段编号' 'EDID4' 'SEGNUM' '' '' '' '' ''.
  INIT_FILL_FCAT 'STATUS' '状态' 'EDIDC' 'STATUS' '' '' '' '' ''.
  INIT_FILL_FCAT 'RCVPOR' '接收方端口' 'EDIDC' 'RCVPOR' '' '' '' '' ''.
  INIT_FILL_FCAT 'SNDPOR' '发件人端口' 'EDIDC' 'SNDPOR' '' '' '' '' ''.
*  INIT_FILL_FCAT 'SNDPRN' '发送者伙伴编号' 'EDIDC' 'SNDPRN' '' '' '' '' ''.
  INIT_FILL_FCAT 'MESTYP' '消息类型' 'EDIDC' 'MESTYP' '' '' '' '' ''.
  INIT_FILL_FCAT 'IDOCTP' '基本类型' 'EDIDC' 'IDOCTP' '' '' 'X' '' ''.
  INIT_FILL_FCAT 'SEGNAM' 'SAP 段名' 'EDID4' 'SEGNAM' '' '' '' '' ''.
  INIT_FILL_FCAT 'CREDAT' '创建日期' 'EDIDC' 'CREDAT' '' '' '' '' ''.
  INIT_FILL_FCAT 'CRETIM' '创建时间' 'EDIDC' 'CRETIM' '' '' '' '' ''.
  INIT_FILL_FCAT 'UPDDAT' '更改日期' 'EDIDC' 'UPDDAT' '' '' '' '' ''.
  INIT_FILL_FCAT 'UPDTIM' '更改时间' 'EDIDC' 'UPDTIM' '' '' '' '' ''.

*  REFRESH:LT_ALV.
*  LT_ALV = GT_ALV.
*
*  SORT LT_ALV BY SEGNUM SEGNAM.
*  DELETE ADJACENT DUPLICATES FROM LT_ALV COMPARING SEGNUM SEGNAM.

*  LOOP AT LT_ALV INTO LS_ALV.
*    CLEAR:LS_SEGNAM_HASH.
*    LS_SEGNAM_HASH-SEGNAM = LS_ALV-SEGNAM.
*    INSERT LS_SEGNAM_HASH INTO TABLE LT_SEGNAM_HASH.
*    CLEAR:LS_ALV.
*  ENDLOOP.
  REFRESH:LT_SEGNAM_HASH.
  LT_SEGNAM_HASH = GT_SEGNAM_HASH.
*  SORT LT_ALV BY DOCNUM SEGNUM.

  CLEAR:LV_LINES.
*  DESCRIBE TABLE LT_ALV LINES LV_LINES.
  DESCRIBE TABLE LT_SEGNAM_HASH LINES LV_LINES.

  REFRESH:GT_FIELD.
  IF LV_LINES > 1.
*    LOOP AT LT_ALV INTO LS_ALV.
    LOOP AT LT_SEGNAM_HASH INTO LS_SEGNAM_HASH.
*    CLEAR:LV_TABNAME.
*    LV_TABNAME = LS_ALV-SEGNAM.
      REFRESH:LT_FIELD.
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
        EXPORTING
          I_STRUCTURE_NAME = LS_SEGNAM_HASH-SEGNAM "这里也可以是表名
        CHANGING
          CT_FIELDCAT      = LT_FIELD.

      LOOP AT LT_FIELD INTO LS_FIELD.
        CLEAR:GS_FIELD.
        GS_FIELD = LS_FIELD.
        GS_FIELD-FIELDNAME = LS_SEGNAM_HASH-SEGNAM && '-' && GS_FIELD-FIELDNAME.
        GS_FIELD-TABNAME = LS_SEGNAM_HASH-SEGNAM.
        GS_FIELD-REF_TABLE = LS_SEGNAM_HASH-SEGNAM.
        GS_FIELD-REF_FIELD = LS_FIELD-FIELDNAME.
        APPEND GS_FIELD TO GT_FIELD.
        CLEAR:LS_FIELD.
      ENDLOOP.
    ENDLOOP.
  ELSE.
    READ TABLE LT_SEGNAM_HASH INTO LS_SEGNAM_HASH INDEX 1.
    IF SY-SUBRC EQ 0.
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
        EXPORTING
          I_STRUCTURE_NAME = LS_SEGNAM_HASH-SEGNAM "这里也可以是表名
        CHANGING
          CT_FIELDCAT      = GT_FIELD.
    ENDIF.

    LOOP AT GT_FIELD ASSIGNING <GS_FIELD>.
      <GS_FIELD>-TABNAME = LS_SEGNAM_HASH-SEGNAM.
      <GS_FIELD>-REF_TABLE = LS_SEGNAM_HASH-SEGNAM.
      <GS_FIELD>-REF_FIELD = <GS_FIELD>-FIELDNAME.
    ENDLOOP.
  ENDIF.

*  DELETE ADJACENT DUPLICATES FROM GT_FIELD COMPARING FIELDNAME.

  LOOP AT GT_FIELD INTO GS_FIELD.
*    INIT_FILL_FCAT GS_FIELD-FIELDNAME GS_FIELD-FIELDNAME GS_ALV-SEGNAM GS_FIELD-FIELDNAME '' '' '' '' ''.
    INIT_FILL_FCAT GS_FIELD-FIELDNAME GS_FIELD-FIELDNAME GS_FIELD-REF_TABLE GS_FIELD-REF_FIELD '' '' '' '' ''.
    CLEAR:GS_FIELD.
  ENDLOOP.

ENDFORM. " FRM_SET_FIELDCAT

*&---------------------------------------------------------------------*
*&      Form  frm_create_table
*&---------------------------------------------------------------------*
*      创建动态内表
*----------------------------------------------------------------------*
FORM FRM_CREATE_TABLE.

  DATA:LV_FIELDNAME TYPE CHAR5,
       LV_LENGTH    TYPE I,
       LV_START     TYPE I,
       LV_WIDTH     TYPE I.

  CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
    EXPORTING
      IT_FIELDCATALOG = GT_FIELDCAT
    IMPORTING
      EP_TABLE        = DY_TABLE.
  "用表类型指针 <dyn_table> 指向 数据对象的内容.
  ASSIGN DY_TABLE->* TO <DYN_ALV>.
  "建立一个与动态内表结构相同的数据对象,且数据对象为是一个结构
  CREATE DATA GS_LINE LIKE LINE OF <DYN_ALV>.
  "用<dyn_wa>指针指向该结构
  ASSIGN GS_LINE->* TO <DYN_WA>.

  LOOP AT GT_ALV INTO GS_ALV.

    MOVE-CORRESPONDING GS_ALV TO <DYN_WA>.

    CLEAR:LV_LENGTH.
    LV_LENGTH = STRLEN( GS_ALV-SDATA )."日志字段值得长度
    LOOP AT GT_FIELD INTO GS_FIELD WHERE TABNAME = GS_ALV-SEGNAM.
      IF LV_LENGTH > 0.
        ASSIGN COMPONENT GS_FIELD-FIELDNAME OF STRUCTURE <DYN_WA> TO <DYN_FIELD>.
        CLEAR:LV_START,LV_WIDTH.
        LV_WIDTH = GS_FIELD-INTLEN."当前字段的长度
        <DYN_FIELD> = GS_ALV-SDATA.
        LV_LENGTH = LV_LENGTH - LV_WIDTH."总长度 - 截取的长度
        IF LV_LENGTH > 0.
          GS_ALV-SDATA = GS_ALV-SDATA+LV_WIDTH(LV_LENGTH)."日志字段值截掉已赋值的长度
        ENDIF.

      ENDIF.
    ENDLOOP.

    APPEND <DYN_WA> TO <DYN_ALV>.
    CLEAR:GS_ALV,<DYN_WA>.
  ENDLOOP.
ENDFORM. "
*&---------------------------------------------------------------------*
*&      Form  FRM_DISPLAY_ALV
*&---------------------------------------------------------------------*
*       text  界面显示
*----------------------------------------------------------------------*
FORM FRM_DISPLAY_ALV .

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      I_CALLBACK_PROGRAM      = SY-REPID
      IS_LAYOUT_LVC           = GS_LAYOUT
*     I_CALLBACK_PF_STATUS_SET = 'FRM_SET_STATUS'
      I_CALLBACK_USER_COMMAND = 'FRM_USER_COMMAND'
      IT_FIELDCAT_LVC         = GT_FIELDCAT
      I_SAVE                  = 'A'
    TABLES
      T_OUTTAB                = <DYN_ALV>
    EXCEPTIONS
      PROGRAM_ERROR           = 1
      OTHERS                  = 2.
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM. " FRM_DISPLAY_ALV

*&---------------------------------------------------------------------*
*&      Form  FRM_SET_STATUS
*&---------------------------------------------------------------------*
*       text  状态栏
*----------------------------------------------------------------------*
FORM FRM_SET_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.

ENDFORM. " FRM_SET_STATUS

*&---------------------------------------------------------------------*
*&      Form  USER_COMMAND
*&---------------------------------------------------------------------*
*       text 用户操作
*----------------------------------------------------------------------*
FORM FRM_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
      RS_SELFIELD TYPE SLIS_SELFIELD.
  DATA:REF_GRID TYPE REF TO CL_GUI_ALV_GRID.

  RANGES:DOCNUM  FOR EDIDC-DOCNUM,
          IDOCTP  FOR EDIDC-IDOCTP,
          CREDAT FOR EDIDC-CREDAT.

  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      E_GRID = REF_GRID.  "获取全局变量

  CALL METHOD REF_GRID->CHECK_CHANGED_DATA. "获取响应事件

  REFRESH:GT_ROW.
  CALL METHOD REF_GRID->GET_SELECTED_ROWS "获取选择的行
    IMPORTING
      ET_INDEX_ROWS = GT_ROW
      ET_ROW_NO     = GT_ROW_NO.

  CASE R_UCOMM.
    WHEN '&IC1'. "ALV中双击事件代码
      CLEAR GS_ALV.
      READ TABLE GT_ALV INTO GS_ALV INDEX RS_SELFIELD-TABINDEX.
      IF SY-SUBRC = 0.
        CASE RS_SELFIELD-FIELDNAME.
          WHEN 'DOCNUM'.
            REFRESH:DOCNUM.
            DOCNUM-SIGN = 'I'.
            DOCNUM-OPTION = 'EQ'.
            DOCNUM-LOW = GS_ALV-DOCNUM.
            APPEND DOCNUM.

            SUBMIT RSEIDOC2
              WITH CRETIM IN S_CRETIM
              WITH CREDAT IN CREDAT
              WITH DOCNUM IN DOCNUM
              AND RETURN.
          WHEN 'IDOCTP'.
            REFRESH:IDOCTP.
            IDOCTP-SIGN = 'I'.
            IDOCTP-OPTION = 'EQ'.
            IDOCTP-LOW = GS_ALV-IDOCTP.
            APPEND IDOCTP.

            SUBMIT RSEIDOC2
              WITH CRETIM IN S_CRETIM
              WITH CREDAT IN S_CREDAT
              WITH IDOCTP IN IDOCTP
              AND RETURN.
        ENDCASE.
      ENDIF.
    WHEN '&BACK'.
      LEAVE TO SCREEN 0.
    WHEN '&EXIT'.
      LEAVE PROGRAM.
  ENDCASE.

  RS_SELFIELD-REFRESH = 'X'."刷新界面

ENDFORM. "USER_COMMAND
"-----------------------------------------@斌将军--------------------------------------------

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值