CLASS

LONG_TEXT [CL_GUI_TEXTEDIT]저장/조회/삭제 기능

moon.7 2024. 7. 29. 16:45

아래 url은 CL_GUI_TEXTEDIT 에 대해 정리해놓은 자료이고

오늘은 해당 class의 저장/조회/ 삭제 등등 다양한 기능에 대해 알아보겠습니다.

 

 

https://moon-7.tistory.com/74

 

CL_GUI_TEXTEDIT 사용하기

스탠다드에서도 많이 사용하는 기능 CL_GUI_TEXTEDIT 에 대해 알아보겠습니다. (SAP 참조 개발클래스: SAPTEXTEDIT / 참조프로그램: SAPTEXTEDIT_DEMO_1) ↓ ME23N 헤더에서 사용하는 TEXTEDIT 기능 1. 데이터 선언 &

moon-7.tistory.com

 

 


1. 화면에서 TEXTEDIT에 입력받은 데이터 읽기

 

방법1) get_text_as_r3table

 

DATA: t_s_tab TYPE t_source OCCURS 0,

           lt_text   TYPE t_s_tab.

 

CALL METHOD cl_text->get_text_as_r3table

IMPORTING

   table                        =   lt_text[]   

EXCEPTIONS

   OTHERS                 = 1.

 

방법2) get_text_as_stream -> convert_stream_to_itf_text

 

DATA: lt_stream(80)  TYPE C OCCURS 0.

            lt_ itf_text    TYPE  TABLE OF tline  WITH HEADER LINE.

 

CALL METHOD cl_text->get_text_as_stream

IMPORTING

   text       =   lt_strem.

 

CALL FUNCTION 'CONVERT_STREAM_TO_ITF_TEXT'

TABLES

   text_stream       =   lt_strem

   itf_text               = lt_ itf_text.

 

 

2. TEXT 저장

 

DATA: LT_LINES TYPE  TABLE OF tline  WITH HEADER LINE.

           LS_HEADER TYPE  THEAD.

 

**LT_LINE-TDLINE 에 저장할 데이터가 담겨져 있어야 한다.

 

LS_HEADER -TDOBJECT = 'ZOBJECT'                     "SE75 에서 생성/조회하는 오브젝트 ID

LS_HEADER -TDID            = 'Z01'                              " SE75 에서 생성/조회하는   오브젝트 내에 텍스트 ID

LS_HEADER -TDNAME     = 'ZTEXT'.                       "저장할 텍스트명 

LS_HEADER -TDSPRAS   = SY-LANGU.                     "언어

 

CALL FUNCTION 'SAVE_TEXT'

EXPORTING

  HEADER                             = LS_HEADER

  SAVEMODE_DIRECT        = 'X'

TABLES 

  LINES                                 = LT_LINE.

EXCEPTIONS

   ID                            = 1

   LANGUAGE            = 2

   NAME                      = 3

   OBJECT                  = 4

   OTHERS                 = 5.

 

 

3.저장된 TEXT 조회

 

DATA: LT_LINES TYPE  TABLE OF TLINE  WITH HEADER LINE.

           LS_HEADER TYPE  THEAD.

 

LS_HEADER -TDOBJECT = 'ZOBJECT'                     "SE75 에서 생성/조회하는 오브젝트 ID

LS_HEADER -TDID            = 'Z01'                              " SE75 에서 생성/조회하는   오브젝트 내에 텍스트 ID

LS_HEADER -TDNAME     = 'ZTEXT'.                       "조회할 텍스트명 

 

 

CALL FUNCTION 'READ_TEXT'

EXPORTING

   ID                            =  LS_HEADER -TDID

   LANGUAGE            =  SY-LANGU  

   NAME                     = LS_HEADER -TDNAME

   OBJECT                  = LS_HEADER -TDOBJECT   

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.

 

 

 

4. 화면에 TEXTEDIT 데이터 미리 설정하여 보여주기

 

방법1) set_text_as_r3table

DATA: t_s_tab TYPE t_source OCCURS 0,

           lt_text   TYPE t_s_tab.

 

CALL METHOD cl_text->set_text_as_r3table

EXPORTING

   table                        =   lt_text[]   

EXCEPTIONS

   error_dp                   = 1

   error_dp_create      = 2

   OTHERS                 = 3.

 

 

방법2) convert_itf_to_stream_text -> set_text_as_stream 

 

DATA: lt_stream(80)  TYPE C OCCURS 0.

            lt_ itf_text    TYPE  TABLE OF tline  WITH HEADER LINE.

 

CALL FUNCTION 'CONVERT_ ITF_TO_ STREAM_TEXT'

TABLES

   itf_text               = lt_ itf_text

   text_stream       =   lt_strem.

   

CALL METHOD cl_text->set_text_as_stream

EXPORTING

   text       =   lt_strem

EXCEPTIONS

   OTHERS                 = 1.

 

5.저장된 TEXT 삭제

 

DATA: LT_LINES TYPE  TABLE OF TLINE  WITH HEADER LINE.

           LS_HEADER TYPE  THEAD.

 

CALL FUNCTION 'DELETE_TEXT'

EXPORTING

   ID                            =  LS_HEADER -TDID

   LANGUAGE            =  SY-LANGU  

   NAME                     = LS_HEADER -TDNAME

   OBJECT                  = LS_HEADER -TDOBJECT   

   SAVEMODE_DIRECT        = 'X'

EXCEPTIONS

   NOT_FOUND          = 1       

   OTHERS                 = 2.