批量获取长文本

在这里插入图片描述

TYPES:BEGIN OF ty_text, "解压的文本
        tdobject TYPE stxl-tdobject,
        tdid     TYPE stxl-tdid,
        tdname   TYPE stxl-tdname,
        tdline   TYPE string,
        matnr    TYPE matnr,
      END OF ty_text.
DATA: gt_stxh TYPE TABLE OF stxh WITH HEADER LINE, "抬头
      gt_text TYPE TABLE OF ty_text WITH HEADER LINE.
*取物料描述长文本,MM03采购订单文本
  CLEAR :gt_text ,gt_text[] .
  PERFORM get_long_rmaktx  .
*&---------------------------------------------------------------------*
FORM get_long_rmaktx  .
* 批量读取长文本
  TYPES: BEGIN OF ty_stxl, "项目
           tdobject TYPE stxl-tdobject,
           tdid     TYPE stxl-tdid,
           tdname   TYPE stxl-tdname,
           clustr   TYPE stxl-clustr,
           clustd   TYPE stxl-clustd,
         END OF ty_stxl.

  TYPES: BEGIN OF ty_stxl_raw, "压缩的文本
           clustr TYPE stxl-clustr,
           clustd TYPE stxl-clustd,
         END OF ty_stxl_raw.

  DATA:
    gt_stxl     TYPE  TABLE OF ty_stxl WITH HEADER LINE, "项目
    gt_stxl_raw TYPE TABLE OF ty_stxl_raw WITH HEADER LINE,
    gt_tline    TYPE STANDARD TABLE OF tline WITH HEADER LINE.

  FREE gt_stxl.
  IF  gt_stxh[]  IS NOT INITIAL .
    SELECT tdobject tdid tdname clustr clustd
    INTO CORRESPONDING FIELDS OF TABLE gt_stxl
    FROM stxl
    FOR ALL ENTRIES IN gt_stxh "WITH APPLICATION DATA AND TDNAME
    WHERE relid    = 'TX'          "standard text
    AND tdobject = 'MATERIAL'
    AND tdname   = gt_stxh-tdname
    AND tdid     = 'BEST'
    AND tdspras  = sy-langu.
  ENDIF.

  LOOP AT gt_stxl.
    CLEAR:gt_stxl_raw,gt_stxl_raw[], gt_tline,gt_tline[],gt_text.
    gt_stxl_raw-clustr = gt_stxl-clustr.
    gt_stxl_raw-clustd = gt_stxl-clustd.
    APPEND gt_stxl_raw.
    "使用系统标准函数READ_TEXT中的代码,将文本解析出来
    IMPORT tline = gt_tline FROM INTERNAL TABLE gt_stxl_raw.

    LOOP AT gt_tline.
      gt_text-tdline = gt_text-tdline && gt_tline-tdline.
    ENDLOOP.
    gt_text-tdobject = gt_stxl-tdobject.
    gt_text-tdid = gt_stxl-tdid.
    gt_text-tdname = gt_stxl-tdname.
    gt_text-matnr = gt_stxl-tdname.
    APPEND gt_text.
  ENDLOOP.

  SORT gt_text BY  tdname.

ENDFORM.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值