zl程序教程

您现在的位置是:首页 >  其他

当前栏目

ABAP 之 长文本READ_TEXT的使用方式

2023-02-19 12:20:06 时间

学习记录:  1 /365

HELLO,这里是百里,一个学习中的ABAPER, 这是坚持打卡文章,在学习工作中,我们可能会遇到某些长文本内容,比如交货单啊,比如销售订单啊这种都存在着,一些给用户存长文本的地方,然后用户会在这些长文本地方写入数据,一般的报表中是不要求体现长文本内容的,毕竟这么长的东西显示出来也会很丑.可能给用户做打印,ole的时候会用到显示客户的长文本备注.本篇文章讲的是,长文本的常用使用方式及一些该如何看懂函数的用法.

什么是长文本

长文本可以理解为其他语言的那种text的输入文本框,提供一个允许用户写入超级长的数据的地方,当然是字符串类型. 在sap中我们可以通过OO的操作方式创建长文本框,当然,百里目前是不会这个,以后会学, 本篇讲的是操作读取系统中读长文本的方法方式.以及调用方式.

技术解析

主要是通过调用funciton 函数'READ_TEXT'进行处理,当然这只是一种方式, 百里通过查询学习,发现还有一种直接查看底表的方式,进行查询,以后会详细讲解 .

如何查看当期操作的界面的id 及相关参数

我们这里以交货单的为例子. 进入交货单内,进入相关文本选项卡,双击文字内容

进入下一层后,点击上面的转到-->表头

这就是相关的参数,其中文本名是单号,语言如果是中文的可以写'1',

关键函数调用方式

CALL FUNCTION 'READ_TEXT'  
      EXPORTING  
        id                      = 业务id  
        language                = 语言环境  
        name                    = 单据号  
        object                  = '表'  
      TABLES  
        lines                   = 出口内表  
      EXCEPTIONS  
        id                      = 1  
        language                = 2  
        name                    = 3  
        not_found               = 4  
        object                  = 5  
        reference_check         = 6  
        wrong_access_to_archive = 7  
        OTHERS                  = 8.

实例

数据准备

注意: 一定要像我这样参照函数的内容定义,否则就会各种报错,说你长度不对啊,什么内容数据类型不匹配这这那那的.

data :     lv_language TYPE thead-tdspras VALUE '1',  
           lt_line     TYPE TABLE OF tline,  
               ls_line     TYPE tline,  
        lv_name     TYPE thead-tdname .  
  DATA:lv_str TYPE string .

调用函数

"    "获取项目备注文本  
    lv_name = '6000003402'.  
    CLEAR:lt_line.  
       CALL FUNCTION 'READ_TEXT'  
      EXPORTING  
        id                      = '0001'  
        language                = lv_language  
        name                    = lv_name  
        object                  = 'VBBK'  
      TABLES  
        lines                   = lt_line  
      EXCEPTIONS  
        id                      = 1  
        language                = 2  
        name                    = 3  
        not_found               = 4  
        object                  = 5  
        reference_check         = 6  
        wrong_access_to_archive = 7  
        OTHERS                  = 8.

结果数据与拼接

CLEAR:lv_str.  
    LOOP AT lt_line INTO ls_line.  
      lv_str = lv_str && ls_line-tdline.  
    ENDLOOP.  
  
    WRITE:  lv_str .

结果

我们通过循环就可以将数据进行拼接到一个字符串内,不过这也是存在着一定的风险,因为,字符串的长度是有限的. 所以一般在ALV内展示不推荐使用. 因为会很慢,也很难看.

技术总结

今天讲的是,长文本READ_TEXT 读取相关数据的使用方式的案例讲解,本篇文章通过解释READ_TEXT 的函数数据使用方式,调用方式,及如何了解参数使用入手,可以使用户快速的上手该项技术,达到即用即拿的方式.在工作中使用时一定要注意本文讲述的的注意点,避免出现alv数据量过大卡死的情况 .

百里鸡汤

生命里最重要的事情是要有个远大的目标,并借才能与坚毅来达成它。

这里是百里,一个努力的学习者. 努力学习好好记录,点滴进步,就是成功.