TEXTEDIT读写长文本

1249阅读 0评论2008-09-26 danver1207
分类:

DATA: init(1) type c,
      CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
      EDITOR    TYPE REF TO CL_GUI_TEXTEDIT.
DATA: L_TDID TYPE THEAD-TDID,
      L_TDNAME TYPE THEAD-TDNAME,
      L_TDOBJECT TYPE THEAD-TDOBJECT.
      IT_TAB TYPE TLINE OCCURS 0 WITH HEADER LINE,
      L_THEAD  TYPE THEAD.
DATA: LINE(132) TYPE C,
      TEXT_TAB LIKE STANDARD TABLE OF LINE,
      FIELD LIKE LINE.
 
***创建容器和TEXTEXIT
module pbo_100 output.
if init is initial.
    init = 'X'.
    CREATE OBJECT: CONTAINER EXPORTING CONTAINER_NAME = 'TEXTEDIT',
                   EDITOR    EXPORTING PARENT = CONTAINER.
endif.
endmodule.
 
***读长文本到TEXTEDIT
form get_advice using l_txtname type THEAD-TDNAME.
  L_TDID = 'ST'.
  L_TDNAME = L_TXTNAME."长文本的名字
  L_TDOBJECT = 'TEXT'.
  REFRESH IT_TAB.
  CLEAR IT_TAB.
  CALL FUNCTION 'READ_TEXT'
    EXPORTING
      ID                      = L_TDID
      LANGUAGE                = SY-LANGU
      NAME                    = L_TDNAME
      OBJECT                  = L_TDOBJECT
    TABLES
      LINES                   = IT_TAB
    EXCEPTIONS
      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.
  ENDIF.
  LOOP AT IT_TAB.
    LINE = IT_TAB-TDLINE.
    APPEND LINE TO TEXT_TAB.
  ENDLOOP.
  CALL METHOD EDITOR->SET_TEXT_AS_STREAM
    EXPORTING
      TEXT = TEXT_TAB.
  REFRESH:TEXT_TAB,IT_TAB.
  CLEAR IT_TAB.
endform.
 
***TEXTEDIT内容保存到长文本
form set_advice using p_name type THEAD-TDNAME.
CALL METHOD EDITOR->GET_TEXT_AS_STREAM
    IMPORTING
      TEXT = TEXT_TAB.
  LOOP AT TEXT_TAB INTO FIELD.
    IT_TAB-TDLINE = FIELD.
    APPEND IT_TAB.
    CLEAR: FIELD,IT_TAB.
  ENDLOOP.
*** 保存长文本
  L_THEAD-TDOBJECT = 'TEXT'.
  L_THEAD-TDNAME   = P_NAME.
  L_THEAD-TDID     = 'ST'.
  L_THEAD-TDSPRAS  = SY-LANGU.
  CALL FUNCTION 'SAVE_TEXT'
    EXPORTING
      HEADER = L_THEAD
    TABLES
      LINES  = IT_TAB.
endform.
上一篇:select-options的复杂选择函数
下一篇:bdc在select-options的复杂选择上的妙用