*&---------------------------------------------------------------------*
*& Report ZTEST_ZNT05
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZTEST_ZNT05.
TABLES: SSCRFIELDS.
DATA: ITAB_CODE TYPE STANDARD TABLE OF CHAR72.
DATA: V_LINE TYPE I.
DATA: S_MESSAGE TYPE TRMSG.
DATA: V_WORD TYPE CHAR72.
DATA: V_REPORT TYPE SYREPID VALUE 'Z_TEST_REPORT_11'.
DATA: V_TIME1 TYPE I.
DATA: V_TIME2 TYPE I.
DATA: V_REPID TYPE SYREPID.
DATA: X_DOCKING TYPE REF TO CL_GUI_DOCKING_CONTAINER,
X_EDITOR TYPE REF TO CL_GUI_TEXTEDIT.
PARAMETERS:P_REPORT(72) DEFAULT 'REPORT z_test_report_11.'.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(60) V_TEXT.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(80) V_TEXT1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN FUNCTION KEY 1.
INITIALIZATION.
V_REPID = SY-REPID.
V_TEXT = 'Report Z_TEST_REPORT_11 will be generated'.
V_TEXT1 = 'This is a small utility program to get the run time for the given code.'.
SSCRFIELDS-FUNCTXT_01 = 'Check syntax'.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF SCREEN-NAME = 'P_REPORT'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
IF X_DOCKING IS INITIAL .
CREATE OBJECT X_DOCKING
EXPORTING
REPID = V_REPID
DYNNR = SY-DYNNR
SIDE = CL_GUI_DOCKING_CONTAINER=>DOCK_AT_bottom
EXTENSION = '235'
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5.
ENDIF .
IF X_EDITOR IS INITIAL.
CREATE OBJECT X_EDITOR
EXPORTING
PARENT = X_DOCKING
WORDWRAP_MODE = CL_GUI_TEXTEDIT=>WORDWRAP_AT_FIXED_POSITION
WORDWRAP_POSITION = 72
MAX_NUMBER_CHARS = 100000.
ENDIF .
AT SELECTION-SCREEN.
CHECK SY-UCOMM = 'FC01'.
PERFORM CODE_AND_SYNTAX_CHECK.
START-OF-SELECTION.
PERFORM CODE_AND_SYNTAX_CHECK.
INSERT REPORT 'Z_TEST_REPORT_11' FROM ITAB_CODE.
IF SY-SUBRC <> 0.
MESSAGE I398(00) WITH 'Errors in generating'.
LEAVE LIST-PROCESSING.
ENDIF.
GENERATE REPORT 'Z_TEST_REPORT_11'.
IF SY-SUBRC <> 0.
MESSAGE I398(00) WITH 'Errors in generating'.
LEAVE LIST-PROCESSING.
ELSE.
MESSAGE S398(00) WITH 'Code generated successfully'.
ENDIF.
GET RUN TIME FIELD V_TIME1.
SUBMIT (V_REPORT) AND RETURN.
GET RUN TIME FIELD V_TIME2.
V_TIME2 = V_TIME2 - V_TIME1.
WRITE: / 'Run time in micro seconds = ', V_TIME2.
*&---------------------------------------------------------------------*
*& Form code_and_syntax_check
*&---------------------------------------------------------------------*
FORM CODE_AND_SYNTAX_CHECK.
REFRESH: ITAB_CODE.
CALL METHOD X_EDITOR->GET_TEXT_AS_R3TABLE
IMPORTING
TABLE = ITAB_CODE
EXCEPTIONS
ERROR_DP = 1
ERROR_CNTL_CALL_METHOD = 2
ERROR_DP_CREATE = 3
POTENTIAL_DATA_LOSS = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
MESSAGE I398(00) WITH 'Error in getting the code'.
LEAVE PROGRAM.
ENDIF.
INSERT P_REPORT INTO ITAB_CODE INDEX 1.
SYNTAX-CHECK FOR ITAB_CODE MESSAGE S_MESSAGE LINE V_LINE WORD V_WORD.
IF SY-SUBRC <> 0.
MESSAGE I398(00) WITH S_MESSAGE-MSGTEXT 'Line' V_LINE.
LEAVE LIST-PROCESSING.
ELSE.
MESSAGE S398(00) WITH 'No syntax errors'.
ENDIF.
ENDFORM. " code_and_syntax_check
创建文本编辑框
最新推荐文章于 2022-08-29 17:34:23 发布