首页 > 其他分享 >获取长文本二三事

获取长文本二三事

时间:2023-04-03 19:32:06浏览次数:30  
标签:ltext raw 二三 获取 lt ls 文本 TYPE stxl

1、获取长文本

常用的方式就是通过READ_TEXT函数获取长文本,且每次只能获得一行数据,在报表中将会严重拖慢查询速度。

所以,此处介绍如何通过后台表查询长文本

"-----------------------------@斌将军-----------------------------
TYPES:BEGIN OF ty_stxl_raw,
        clustr TYPE stxl-clustr,
        clustd TYPE stxl-clustd,
      END OF ty_stxl_raw.

TYPES:BEGIN OF ty_ltext,
        tdname TYPE stxl-tdname,
        tdid   TYPE stxl-tdid,
        ltext  TYPE string,
      END OF ty_ltext.

TYPES:BEGIN OF ty_string,
        line TYPE char255,
      END OF ty_string.

DATA:lt_tline    TYPE TABLE OF tline,
     ls_tline    TYPE tline,
     lt_stxl_raw TYPE TABLE OF ty_stxl_raw,
     ls_stxl_raw TYPE ty_stxl_raw,
     lt_ltext    TYPE TABLE OF ty_ltext,
     ls_ltext    TYPE ty_ltext,
     lt_string   TYPE TABLE OF ty_string.

"查询长文本表
SELECT
 stxl~relid,
 stxl~tdobject,
 stxl~tdname,
 stxl~tdid,
 stxl~tdspras,
 stxl~srtf2,
 stxl~clustr,
 stxl~clustd
FROM stxh
INNER JOIN stxl ON stxh~tdobject = stxl~tdobject AND stxh~tdname = stxl~tdname
               AND stxh~tdid = stxl~tdid AND stxh~tdspras = stxl~tdspras
INTO TABLE @DATA(lt_stxl)
WHERE stxh~tdobject = 'EKPO'
  AND stxh~tdid IN ( 'F01','F03','F04' )
  AND stxh~tdspras = @sy-langu
  AND stxh~tdname = '410000148200010'
  AND stxl~relid = 'TX'.

"解码为字符串
LOOP AT lt_stxl INTO DATA(ls_stxl).

  REFRESH:lt_stxl_raw,lt_tline,lt_string.
  CLEAR:ls_stxl_raw.
  ls_stxl_raw-clustr = ls_stxl-clustr.
  ls_stxl_raw-clustd = ls_stxl-clustd.
  APPEND ls_stxl_raw TO lt_stxl_raw.

  "对长文本进行解码
  IMPORT tline = lt_tline FROM INTERNAL TABLE lt_stxl_raw.

  "对特殊符号的转换
  CALL FUNCTION 'CONVERT_ITF_TO_STREAM_TEXT'
    TABLES
      itf_text    = lt_tline
      text_stream = lt_string.

  "获得订单对应的多个长文本
  CLEAR:ls_ltext.
  LOOP AT lt_string INTO DATA(ls_string).
    ls_ltext-ltext = ls_ltext-ltext && ls_string-line.
  ENDLOOP.
  ls_ltext-tdname = ls_stxl-tdname.
  ls_ltext-tdid   = ls_stxl-tdid.
  APPEND ls_ltext TO lt_ltext.

  CLEAR:ls_stxl.
ENDLOOP.
"-----------------------------@斌将军-----------------------------

2、特殊符号

在长文本中如果出现"<"等特殊符号,会被转换成"<(><<)>",当遇到这些特殊符号被转换,取出后,可以通过函数CONVERT_ITF_TO_STREAM_TEXT处理一下,使用方法参考上面代码获取长文本二三事_长文本

 3、底表查不到长文本

有时会发现,长文本框中分明有值,但是在STXH、STXL中找不到对应的记录,READ_TEXT函数也查询不到结果,

但是在下边有一行说明,“从何处采用文本”获取长文本二三事_长文本_02

 这是因为配置了此长文本默认从采购订单中带出对应的物料描述,可以通过事务代码:SPRO确认配置,路径如图所示获取长文本二三事_长文本_03

 选择对应的长文本类型,可以看到从以下地方自动获取文本作为长文本获取长文本二三事_长文本_04

标签:ltext,raw,二三,获取,lt,ls,文本,TYPE,stxl
From: https://blog.51cto.com/BinGeneral/6167104

相关文章

  • js 获取dom的绝对位置,相对于浏览器显示界面
    //获取左边functiongetElementLeft(element){varactualLeft=element.offsetLeft;varcurrent=element.offsetParent;while(current!==null){actualLeft+=current.offsetLeft;current=current.offsetParent;......
  • k8s work节点重新获取token
    在master节点重新生成token命令,然后在node子节点中执行kubuadmjoin命令kubeadmtokencreate--print-join-command如果网忘了证书的秘钥,可以在master节点执行以下命令opensslx509-pubkey-in/etc/kubernetes/pki/ca.crt|opensslrsa-pubin-outformder2>/dev/null......
  • DHCP自动获取IP地址
    拓扑图:推荐步骤:Centos01安装dhcp服务器,配置地址池范围192.168.100.100~192.168.199,默认网关为192.168.100.10,首选和备用DNS地址为202.106.0.10,8.8.8.8,Win10配置保留指定IP地址配置Centos02为自动获取IP地址,Wiin10查看保留IP地址实验步骤:Centos01安装dhcp服务器设置为开机自动启动配......
  • swoft 获取微信零时二维码 并上传阿里云oss aliyun-oss
      1、获取access_token、两个小时门票过期重新获取publicfunctionAccessToken(){$time=time();$key="wx68065208096access_token";$accessData=DB::table('db_wx_token')->where('key',$key)->value(�......
  • shellcode获取MessageBoxA的地址
    _asm{pushebpmoveax,fs:[30h];获得PEB地址moveax,[eax+0ch];获得LDR地址moveax,[eax+14h];获得PEB_LDR_DATA中InMemoryOrderModuleList的Flinkmovecx,eax;因为eax中的Flink也就是等于LDR_DATA_TABLE_ENTRY......
  • Chrome103版本获取不到sessionStorage
    问题现象:上传附件功能报错,经排查发现,是因为上送字段中userId获取失败,被服务端拒绝请求。userId=window.sessionStorage.getItem('userId')问题暴露阶段:生产环境Chrome103问题原因:上传功能是在新弹开tab页中实现的,Chrome89后,新弹开的tab页默认不再共享sessionStorage。而测试环......
  • CSS文本属性(文本颜色、文本对齐、装饰文本、文本缩进、行间距)
    本博文介绍CSS中常用的文本属性,包括文本颜色、文本对齐、装饰文本、文本缩进和行间距。属性说明属性值color文本颜色颜色(如red、green)#十六进制(如#ff0000)rgb代码(如rgb(255,0,0))text-align文本对齐left(默认值,左对齐)right(右对齐)center(水平居中)text-decora......
  • C# 控制台创建txt文本并实现写读操作
    使用System.IO.File类,所以首先必须对C#的System.IO.File类有所了解:命名空间:namespace:System.IO提供用于创建,复制,删除,移动和打开文件的静态方法,并协助创建FileStream对象将File类用于典型的操作,如复制、移动、重命名、创建、打开、删除和追加到文件。也可将File类用于获取......
  • 【微信小程序-原生开发】富文本编辑器 editor 的使用教程
    表单内容较多时,通常需要输入换行的数据,此处便需要用到富文本编辑器富文本编辑器的渲染<editorclass="editorStyle"style="height:auto"id="editor"placeholder="请输入内容"bindready="onEditorReady"bindinput="contentChange"></editor&......
  • java vue获取当月第一天和最后一天,当前周一和周日
    1,vue前端,通过moment获取当月第一天和最后一天,当前周一和周日letcurrDate=moment(newDate(),"YYYY-MM-DD");varfirstDay=moment(currDate.startOf("month").valueOf()).format('YYYY-MM-DD');//获取该月份第一天的时间戳varendDay=moment(cur......