SAP通过函数READ_TEXT读取长文本

后勤模块的数据例如采购订单、销售订单等都涉及到表头文本,但是表头文本不存在底表中,这时如果想取表头文本需要用到READ_TEXT函数。下面以取采购订单表头文本为例。

输入事务代码:ME23N。选中表头中文本tab页的抬头文本部分,然后双击下图红色框部分;

在菜单栏选中转到-->表头。其他凭证,如销售订单的表头文本获取方法类似。

read_text完整示例

REPORT ztest05.
 
TYPES : BEGIN OF ty_ekko ,
          ebeln  TYPE ekko-ebeln,
          tdline TYPE tline-tdline,
        END OF ty_ekko.
 
DATA:lt_ekko TYPE TABLE OF ty_ekko,
     ls_ekko TYPE ty_ekko.
 
DATA: il_tline LIKE tline OCCURS 0 WITH HEADER LINE.
 
SELECT
  ebeln  "采购凭证号
  INTO  TABLE lt_ekko
  FROM ekko
  UP TO 20 ROWS.
 
DATA : vl_tdname LIKE thead-tdname.
 
LOOP AT lt_ekko INTO ls_ekko.
 
  vl_tdname = ls_ekko-ebeln.
 
  CALL FUNCTION 'READ_TEXT'
    EXPORTING
      client                  = sy-mandt
      id                      = 'F01'            " 文本ID的值
      language                = '1'              " 语言的值  1表示中文
      name                    = vl_tdname        " 文本名的值
      object                  = 'EKKO'           " 文本对象的值
    TABLES
      lines                   = il_tline
    EXCEPTIONS
      " EXCEPTIONS必须写,否则表头文本为空时程序将dump
      id                      = 1
      language                = 2
      name                    = 3
      not_found               = 4
      object                  = 5
      reference_check         = 6
      wrong_access_to_archive = 7
      OTHERS                  = 8.
 
  IF sy-subrc <> 0.
 
  ELSE.
 
    LOOP AT il_tline.
      CONCATENATE ls_ekko-tdline il_tline-tdline INTO ls_ekko-tdline.
    ENDLOOP.
    MODIFY lt_ekko FROM ls_ekko.
 
  ENDIF.
 
ENDLOOP.
 
SORT lt_ekko BY ebeln.
 
* 输出
DATA: i_table      TYPE REF TO cl_salv_table.
DATA: lr_columns   TYPE REF TO cl_salv_columns_table.
DATA: lr_functions TYPE REF TO cl_salv_functions.
 
TRY.
    cl_salv_table=>factory(
      IMPORTING
        r_salv_table = i_table
      CHANGING
        t_table      = lt_ekko ).
  CATCH cx_salv_msg.
ENDTRY.
 
" 功能按钮
lr_functions = i_table->get_functions( ).
lr_functions->set_all( abap_true ).
 
" 列自适应
lr_columns = i_table->get_columns( ).
lr_columns->set_optimize( 'X').
 
" alv输出
i_table->display( ).


-END-

  更多经验请关注公众号“菜鸟之家”,每周分享顾问经验,绝对干货满满!

长按二维码关注我们,收获更多干货满满的SAP教学。

小手点一点关注,顾问路上不迷路!

图文来源:Lisa

图文编辑:Yannick

精选知识

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值