【转载】ABAP自定义长文本的处理
生活随笔
收集整理的这篇文章主要介绍了
【转载】ABAP自定义长文本的处理
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
SAP中所有的长文本都存在如下两张表中:
- STXH 长文本的抬头信息
- STXL 长文本的明细信息
长文本在使用前,需要先进行配置,如果不配置是不可能往表STXH和STXL中写入文本值的。
配置在视图V_TTXIDI和视图V_TTXOBI中进行。
前台事务代码:SE75
保存之后,双击“ZSD001”进入维护ID。
相应的对长文本进行增加、保存、删除的ABAP代码示例如下:把
变量的声明
DATA: lines TYPE STANDARD TABLE OF tline ,it_line TYPE TABLE OF line,header LIKE thead . DATA: container1 TYPE REF TO cl_gui_custom_container,editor1 TYPE REF TO cl_gui_textedit. DATA: ok_code LIKE sy-ucomm,save_ok LIKE sy-ucomm.长文本的初始化
IF container1 IS INITIAL.CREATE OBJECT:container1 EXPORTING container_name = 'COMMENT1',editor1 EXPORTING parent = container1.CALL METHOD editor1->set_statusbar_modeEXPORTINGstatusbar_mode = 0.CALL METHOD editor1->set_toolbar_modeEXPORTINGtoolbar_mode = 0. ENDIF.CALL METHOD editor1->set_text_as_streamEXPORTINGtext = it_line.长文本的保存
REFRESH it_line.CALL METHOD editor1->get_text_as_streamIMPORTINGtext = it_line. *--长文本保存header-tdobject = 'Z_TEST01'. "objectheader-tdname = '001'.header-tdid = 'LTXT'.header-tdspras = sy-langu.CALL FUNCTION 'CONVERT_STREAM_TO_ITF_TEXT'EXPORTINGlanguage = sy-languTABLEStext_stream = it_lineitf_text = lines.CALL FUNCTION 'SAVE_TEXT'EXPORTINGheader = headersavemode_direct = 'X'TABLESlines = linesEXCEPTIONSid = 1language = 2name = 3object = 4OTHERS = 5.CLEAR header.REFRESH lines.长文本的显示
header-tdobject = 'Z_TEST01'. "objectheader-tdname = '001'.header-tdid = 'LTXT'.header-tdspras = sy-langu.CALL FUNCTION 'READ_TEXT'EXPORTINGid = header-tdidlanguage = sy-languname = header-tdnameobject = header-tdobjectTABLESlines = linesEXCEPTIONSid = 1language = 2name = 3not_found = 4object = 5reference_check = 6wrong_access_to_archive = 7OTHERS = 8.CALL FUNCTION 'CONVERT_ITF_TO_STREAM_TEXT'EXPORTINGlanguage = sy-languTABLESitf_text = linestext_stream = it_line.CALL METHOD editor1->set_statusbar_modeEXPORTINGstatusbar_mode = 0.CALL METHOD editor1->set_toolbar_modeEXPORTINGtoolbar_mode = 0.CALL METHOD editor1->set_text_as_streamEXPORTINGtext = it_line.CALL METHOD editor1->set_readonly_modeEXPORTINGreadonly_mode = '1'.长文本的删除
header-tdobject = 'Z_TEST01'. "objectheader-tdname = '001'.header-tdid = 'LTXT'.header-tdspras = sy-langu.CALL FUNCTION 'DELETE_TEXT'EXPORTINGid = header-tdidlanguage = sy-languname = header-tdnameobject = header-tdobject * SAVEMODE_DIRECT = ' ' * TEXTMEMORY_ONLY = ' ' * LOCAL_CAT = ' ' * EXCEPTIONS * NOT_FOUND = 1 * OTHERS = 2.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.在ABAP的长文本操作中,我们是无法直接看到存储的长文本的,只能通过程序读取长文本在界面中显示,这点是和其他类型的变量区别开来的。
总结
以上是生活随笔为你收集整理的【转载】ABAP自定义长文本的处理的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 【转】采购订单行项目检查增强
- 下一篇: 【IT人的管理进阶课】如何提升带团队的能