ABAP 保存长文本函数CREATE_TEXT

最近有个需求就是通过程序保存对应的长文本,其实使用起来跟READ_TEXT类似,程序已封装好两个FORM如下

一个是把对应需要保存的长文本封装成TLINE

FORM FRM_SET_LONGTEXT  TABLES   PT_TLINE STRUCTURE TLINE
                       USING    PV_LONGTEXT.
  DATA:LV_LINE    TYPE I,
       LV_TIME    TYPE I,
       LV_DECIMAL TYPE P LENGTH 16 DECIMALS 3,
       LV_STR     TYPE STRING,
       LV_BEGIN   TYPE I,
       LV_END     TYPE I,
       LS_TLINE   TYPE TLINE.

  LV_LINE = STRLEN( PV_LONGTEXT ).
  LV_DECIMAL = LV_LINE / 132.
  LV_STR = LV_DECIMAL. CONDENSE LV_STR NO-GAPS.
  SPLIT LV_STR AT '.' INTO DATA(LV_T1) DATA(LV_T2).
  LV_TIME = LV_T1 + 1.

  LV_BEGIN = 0.
  IF LV_LINE < 132.
    LV_END = LV_LINE.
  ELSE.
    LV_END = 132.
  ENDIF.

  DO  LV_TIME TIMES.
    LS_TLINE-TDLINE = PV_LONGTEXT+LV_BEGIN(LV_END).
    APPEND LS_TLINE TO PT_TLINE.

    LV_BEGIN += 132.
    LV_END = LV_LINE - LV_BEGIN.
    IF LV_END > 132.
      LV_END = 132.
    ENDIF.
  ENDDO.


ENDFORM.

第二个就是保存对应的长文本

FORM FRM_CREATE_LONGTEXT    TABLES   PT_TLINE STRUCTURE TLINE
                            USING    PV_FID     TYPE THEAD-TDID
                                     PV_NAME    TYPE THEAD-TDNAME
                                     PV_FOBJECT TYPE THEAD-TDOBJECT
                            CHANGING PV_MSG.
  CALL FUNCTION 'CREATE_TEXT'
    EXPORTING
      FID       = PV_FID      "TEXT ID
      FLANGUAGE = SY-LANGU    "语言代码
      FNAME     = PV_NAME     "文本名称
      FOBJECT   = PV_FOBJECT  "文本对象
    TABLES
      FLINES    = PT_TLINE
    EXCEPTIONS
      NO_INIT   = 1
      NO_SAVE   = 2
      OTHERS    = 3.
  IF SY-SUBRC NE 0.
    MESSAGE ID SY-MSGID TYPE ZIF_BC_CONSTANTS=>GC_S NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4 INTO PV_MSG.
  ENDIF.
ENDFORM.

代码基本上能直接使用

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值