ZINCL_COMMON_MODULE
***********************************************************************
* PROGRAM-ID : ZINCL_COMMON_MODULE *
* MODULE : ALL *
* TYPE : INCLUDE *
* DESCRIPTION : COMMON DEFINITION / SUB PROCESS *
***********************************************************************
*---------------------------------------------------------------------*
* TABLES DEFINE
*---------------------------------------------------------------------*
*---------------------------------------------------------------------*
* DATA DEFINE
*---------------------------------------------------------------------*
* POV HELP용
DATA: I_FIELDNAME LIKE HELP_INFO-FIELDNAME,
I_IT_HELP_VALUE LIKE HELP_VALUE OCCURS 0 WITH HEADER LINE,
I_IT_DYNPREAD LIKE DYNPREAD OCCURS 0 WITH HEADER LINE,
I_FLDVALUE LIKE HELP_INFO-FLDVALUE,
I_TABIX LIKE SY-TABIX.
* TEXT EDITOR
TYPES: BEGIN OF I_EDITOR_TEXT,
TEXT(132),
END OF I_EDITOR_TEXT.
DATA: I_TEMP_TEXT TYPE I_EDITOR_TEXT,
I_EDITOR_TEXT1 TYPE TABLE OF I_EDITOR_TEXT,
I_EDITOR_TEXT2 TYPE TABLE OF I_EDITOR_TEXT,
I_EDITOR_TEXT3 TYPE TABLE OF I_EDITOR_TEXT.
DATA: I_EDITOR1 TYPE REF TO CL_GUI_TEXTEDIT,
I_EDITOR_CONTAINER1 TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
I_EDITOR2 TYPE REF TO CL_GUI_TEXTEDIT,
I_EDITOR_CONTAINER2 TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
I_EDITOR3 TYPE REF TO CL_GUI_TEXTEDIT,
I_EDITOR_CONTAINER3 TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
DATA: I_LINES1 LIKE TLINE OCCURS 0 WITH HEADER LINE,
I_LINES2 LIKE TLINE OCCURS 0 WITH HEADER LINE,
I_LINES3 LIKE TLINE OCCURS 0 WITH HEADER LINE.
*---------------------------------------------------------------------*
* Form IFORM_ALPHA_OUTPUT
*---------------------------------------------------------------------*
FORM IFORM_ALPHA_OUTPUT USING P_IN P_OUT.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = P_IN
IMPORTING
OUTPUT = P_OUT.
ENDFORM.
*---------------------------------------------------------------------*
* Form IFORM_ALPHA_INPUT
*---------------------------------------------------------------------*
FORM IFORM_ALPHA_INPUT USING P_IN P_OUT.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = P_IN
IMPORTING
OUTPUT = P_OUT.
ENDFORM.
*---------------------------------------------------------------------*
* Form IFORM_SIGN_IN_FRONT - 값을 문자 앞으로 보냄
*---------------------------------------------------------------------*
FORM IFORM_SIGN_IN_FRONT USING P_VALUE.
CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
CHANGING
VALUE = P_VALUE.
ENDFORM.
*---------------------------------------------------------------------*
* Form PROGRES_BAR_RTN
*---------------------------------------------------------------------*
FORM IFORM_PROGRES_BAR USING P_TEXT.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = 100
TEXT = P_TEXT
EXCEPTIONS
OTHERS = 1.
ENDFORM.
*---------------------------------------------------------------------*
* Form PROGRES_BAR_RTN
*---------------------------------------------------------------------*
FORM IFORM_PROGRES_BAR2 USING P_PER P_TEXT.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = P_PER
TEXT = P_TEXT
EXCEPTIONS
OTHERS = 1.
ENDFORM.
*---------------------------------------------------------------------*
* Form IFORM_EDITOR_CREATE
* P_COUNT : EDITOR 갯수
* P_LINE_SIZE : EDITOR의 LINE SIZE
*---------------------------------------------------------------------*
FORM IFORM_EDITOR_CREATE USING P_COUNT P_LINE_SIZE.
* 첫번째 EDITOR 생성
IF I_EDITOR1 IS INITIAL.
CLEAR I_EDITOR_TEXT1.
REFRESH I_EDITOR_TEXT1.
CREATE OBJECT I_EDITOR_CONTAINER1
EXPORTING
CONTAINER_NAME = 'CON1'
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5.
CREATE OBJECT I_EDITOR1
EXPORTING
PARENT = I_EDITOR_CONTAINER1
WORDWRAP_MODE =
CL_GUI_TEXTEDIT=>WORDWRAP_AT_FIXED_POSITION
WORDWRAP_POSITION = P_LINE_SIZE
WORDWRAP_TO_LINEBREAK_MODE = CL_GUI_TEXTEDIT=>TRUE.
LOOP AT I_LINES1.
APPEND I_LINES1-TDLINE TO I_EDITOR_TEXT1.
ENDLOOP.
CALL METHOD I_EDITOR1->SET_TEXT_AS_R3TABLE
EXPORTING
TABLE = I_EDITOR_TEXT1
EXCEPTIONS
ERROR_DP = 1
ERROR_DP_CREATE = 2.
ENDIF.
CHECK P_COUNT >= 2.
* 두번째 EDITOR 생성
IF I_EDITOR2 IS INITIAL.
CLEAR I_EDITOR_TEXT2.
REFRESH I_EDITOR_TEXT2.
CREATE OBJECT I_EDITOR_CONTAINER2
EXPORTING
CONTAINER_NAME = 'CON2'
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5.
CREATE OBJECT I_EDITOR2
EXPORTING
PARENT = I_EDITOR_CONTAINER2
WORDWRAP_MODE =
CL_GUI_TEXTEDIT=>WORDWRAP_AT_FIXED_POSITION
WORDWRAP_POSITION = P_LINE_SIZE
WORDWRAP_TO_LINEBREAK_MODE = CL_GUI_TEXTEDIT=>TRUE.
LOOP AT I_LINES2.
APPEND I_LINES2-TDLINE TO I_EDITOR_TEXT2.
ENDLOOP.
CALL METHOD I_EDITOR2->SET_TEXT_AS_R3TABLE
EXPORTING
TABLE = I_EDITOR_TEXT2
EXCEPTIONS
ERROR_DP = 1
ERROR_DP_CREATE = 2.
ENDIF.
CHECK P_COUNT >= 3.
* 세번째 EDITOR 생성
IF I_EDITOR3 IS INITIAL.
CLEAR I_EDITOR_TEXT3.
REFRESH I_EDITOR_TEXT3.
CREATE OBJECT I_EDITOR_CONTAINER3
EXPORTING
CONTAINER_NAME = 'CON3'
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5.
CREATE OBJECT I_EDITOR3
EXPORTING
PARENT = I_EDITOR_CONTAINER3
WORDWRAP_MODE =
CL_GUI_TEXTEDIT=>WORDWRAP_AT_FIXED_POSITION
WORDWRAP_POSITION = P_LINE_SIZE
WORDWRAP_TO_LINEBREAK_MODE = CL_GUI_TEXTEDIT=>TRUE.
LOOP AT I_LINES3.
APPEND I_LINES3-TDLINE TO I_EDITOR_TEXT3.
ENDLOOP.
CALL METHOD I_EDITOR3->SET_TEXT_AS_R3TABLE
EXPORTING
TABLE = I_EDITOR_TEXT3
EXCEPTIONS
ERROR_DP = 1
ERROR_DP_CREATE = 2.
ENDIF.
ENDFORM.
*---------------------------------------------------------------------*
* Form IFORM_EDITOR_READ_TEXT
* P_COUNT : EDITOR 갯수
* P_LINE_SIZE : EDITOR의 LINE SIZE
* P_LENGTH : EDITOR에 입력된 TEXT 전체 SIZE
* P_TEXT : EDITOR에 입력된 TEXT.
*---------------------------------------------------------------------*
FORM IFORM_EDITOR_READ_TEXT USING P_COUNT P_LINE_SIZE
P_LENGTH P_TEXT.
* 첫번째 EDITOR READ TEXT
IF P_COUNT = 1.
CLEAR: I_EDITOR_TEXT1, I_TEMP_TEXT.
REFRESH I_EDITOR_TEXT1.
CALL METHOD I_EDITOR1->GET_TEXT_AS_R3TABLE
IMPORTING
TABLE = I_EDITOR_TEXT1
EXCEPTIONS
ERROR_DP = 1
ERROR_CNTL_CALL_METHOD = 2
ERROR_DP_CREATE = 3
POTENTIAL_DATA_LOSS = 4.
LOOP AT I_EDITOR_TEXT1 INTO I_TEMP_TEXT.
WRITE I_TEMP_TEXT TO P_TEXT+P_LENGTH(80).
CLEAR I_TEMP_TEXT.
P_LENGTH = P_LENGTH + P_LINE_SIZE.
CHECK P_LENGTH <= 7902.
ENDLOOP.
ENDIF.
* 두번째 EDITOR READ TEXT
IF P_COUNT = 2.
CLEAR: I_EDITOR_TEXT2, I_TEMP_TEXT.
REFRESH I_EDITOR_TEXT2.
CALL METHOD I_EDITOR2->GET_TEXT_AS_R3TABLE
IMPORTING
TABLE = I_EDITOR_TEXT2
EXCEPTIONS
ERROR_DP = 1
ERROR_CNTL_CALL_METHOD = 2
ERROR_DP_CREATE = 3
POTENTIAL_DATA_LOSS = 4.
LOOP AT I_EDITOR_TEXT2 INTO I_TEMP_TEXT.
P_LENGTH = P_LENGTH + P_LINE_SIZE.
CHECK P_LENGTH <= 7902.
CONCATENATE P_TEXT I_TEMP_TEXT INTO P_TEXT.
CLEAR I_TEMP_TEXT.
ENDLOOP.
ENDIF.
* 세번째 EDITOR READ TEXT
IF P_COUNT = 3.
CLEAR: I_EDITOR_TEXT3, I_TEMP_TEXT.
REFRESH I_EDITOR_TEXT3.
CALL METHOD I_EDITOR3->GET_TEXT_AS_R3TABLE
IMPORTING
TABLE = I_EDITOR_TEXT3
EXCEPTIONS
ERROR_DP = 1
ERROR_CNTL_CALL_METHOD = 2
ERROR_DP_CREATE = 3
POTENTIAL_DATA_LOSS = 4.
LOOP AT I_EDITOR_TEXT3 INTO I_TEMP_TEXT.
P_LENGTH = P_LENGTH + P_LINE_SIZE.
CHECK P_LENGTH <= 7902.
CONCATENATE P_TEXT I_TEMP_TEXT INTO P_TEXT.
CLEAR I_TEMP_TEXT.
ENDLOOP.
ENDIF.
ENDFORM.
*---------------------------------------------------------------------*
* Form IFORM_EDITOR_FREE
* P_COUNT : EDITOR 갯수
*---------------------------------------------------------------------*
FORM IFORM_EDITOR_FREE USING P_COUNT.
* 첫번째 EDITOR FREE
IF NOT I_EDITOR1 IS INITIAL.
CALL METHOD I_EDITOR1->FREE
EXCEPTIONS
OTHERS = 1.
FREE I_EDITOR1.
ENDIF.
IF NOT I_EDITOR_CONTAINER1 IS INITIAL.
CALL METHOD I_EDITOR_CONTAINER1->FREE
EXCEPTIONS
OTHERS = 1.
FREE I_EDITOR_CONTAINER1.
ENDIF.
CHECK P_COUNT >= 2.
* 두번째 EDITOR FREE
IF NOT I_EDITOR2 IS INITIAL.
CALL METHOD I_EDITOR2->FREE
EXCEPTIONS
OTHERS = 1.
FREE I_EDITOR2.
ENDIF.
IF NOT I_EDITOR_CONTAINER2 IS INITIAL.
CALL METHOD I_EDITOR_CONTAINER2->FREE
EXCEPTIONS
OTHERS = 1.
FREE I_EDITOR_CONTAINER2.
ENDIF.
CHECK P_COUNT >= 3.
* 세번째 EDITOR FREE
IF NOT I_EDITOR3 IS INITIAL.
CALL METHOD I_EDITOR3->FREE
EXCEPTIONS
OTHERS = 1.
FREE I_EDITOR3.
ENDIF.
IF NOT I_EDITOR_CONTAINER3 IS INITIAL.
CALL METHOD I_EDITOR_CONTAINER3->FREE
EXCEPTIONS
OTHERS = 1.
FREE I_EDITOR_CONTAINER3.
ENDIF.
ENDFORM.