예전 ECC이전 버전의 경우 ABAP 라인이 72이 넘으면 Dump가 발생하곤 했다.
그런것도 있고.
한눈에 소스를 보기 위해 Downwords-Compatible Line Length (72) 체크 한다.
꾸민 프린트는 대/소문자변화 Uppercase 에 체크 한다. (이건 개개인 차이)
일부 사용자들은 개인 폰트를 적용하여 코드를 더 잘보이도록 하기도 한다.
그냥 돋움 으로 쓴다. 귀찮음.
대부분의 업체들은 보안 프로그램 때문에 프로그램 추가 설치나 파일 이동에 대해 민감 하기 때문에
되도록 추가 파일을 필요로 하는것은 지양한다.
Report 는 아래 양식으로 작성한다.
CLASS ALV 가 존재하는 Report는 총 8장으로 구성 ,
SCREEN 0100
GUI STATUS 0100
TITLE 0100
으로 정의 한다.
Function ALV 의 경우 ~ALV, C01, O01, I01.
Fuction ALV 는 단순 레포트를 제공할때만 사용. 버튼 클릭 등 이벤트 사용시 CLASS ALV 사용 .
ZTESTR001
*&-----------------------------------------------------------------&*
*& Report ZTESTR001 &*
*&-----------------------------------------------------------------&*
REPORT ZTESTR001 NO STANDARD PAGE HEADING .
INCLUDE ZTESTR001ALV . " ALV 클래스 정의
INCLUDE ZTESTR001TOP . " TOP 정의
INCLUDE ZTESTR001SEL . " SELECTION SCREEN
INCLUDE ZTESTR001C01 . " ALV 필드카탈로그 정의 및 ALV 관련 툴바 이벤트
INCLUDE ZTESTR001F01 . " FORM
INCLUDE ZTESTR001O01 . " PBO
INCLUDE ZTESTR001I01 . " PAI
*&-----------------------------------------------------------------&*
*& INITIALIZATION
*&-----------------------------------------------------------------&*
INITIALIZATION.
PERFORM INITIALIZATION.
*&-----------------------------------------------------------------&*
*& START-OF-SELECTION
*&-----------------------------------------------------------------&*
START-OF-SELECTION .
PERFORM START_OF_SELECTION.
*&-----------------------------------------------------------------&*
*& END-OF-SELECTION
*&-----------------------------------------------------------------&*
END-OF-SELECTION.
PERFORM END_OF_SELECTION.
ZTESTR001ALV .
*&---------------------------------------------------------------------------&*
*& CLASS DATA &*
*&---------------------------------------------------------------------------&*
" docking 컨테이너만 사용하기 때문에 아래 오브젝트만 정의 . 필요시 추가 정의하여 사용
DATA : GV_DOCKING_CONTAINER TYPE REF TO CL_GUI_DOCKING_CONTAINER ,
GV_GRID TYPE REF TO CL_GUI_ALV_GRID ,
"TABLE TYPE
GT_FIELDCAT TYPE LVC_T_FCAT ,
GT_SORT TYPE LVC_T_SORT ,
GT_TABCOLOR TYPE LVC_T_SCOL ,
GT_EXCL_FUNC TYPE UI_FUNCTIONS ,
"STRUCTURE TYPE
GS_FIELDCAT TYPE LVC_S_FCAT ,
GS_STYL TYPE LVC_S_STYL ,
GS_TABCOLOR TYPE LVC_S_SCOL ,
GS_STABLE TYPE LVC_S_STBL ,
GS_VATIANT TYPE DISVATIANT .
DATA : GV_REPID LIKE SY-REPID ,
GV_SAVE VALUE 'A'.
*&---------------------------------------------------------------------------&*
*& LCL_EVENT DEFINITION
*&---------------------------------------------------------------------------&*
CLASS LCL_EVENTS DEFINITION .
PUBLIC SECTION .
METHODS :
" ~ 필요 ALV EVENT 정의
" USER_COMMAND
" HOTSPOT_CLICK
" TOOLBAR
" BUTTON_CLICK
ENDCLASS.
*&---------------------------------------------------------------------------&*
*& LCL_EVENT IMPLEMENTATION
*&---------------------------------------------------------------------------&*
CLASS LCL_EVENTS IMPLEMENTATION .
" 위에서 정의한 METHOD .
ENDCLASS.
ZTESTR001TOP .
*&----------------------------------------------------------------&*
*& Table
*&----------------------------------------------------------------&*
TABLES : SSCRFIELDS . " 이외 해당 SEL SCREEN 에서 사용하게 될 Table
*&----------------------------------------------------------------&*
*& INCLUDE
*&----------------------------------------------------------------&*
INCLUDE : <ICON> , <SYMBOL> .
*&----------------------------------------------------------------&*
*& TYPE
*&----------------------------------------------------------------&*
TYPE-POOLS : ABAP, SLIS, OLE2, TRUXS, ICON.
*&----------------------------------------------------------------&*
*& Constants
*&----------------------------------------------------------------&*
CONSTANTS : C_BUKRS(4) TYPE C VALUE '1000' ,
C_KOKRS(4) TYPE C VALUE '1000' .
" 중략 ~
*&----------------------------------------------------------------&*
*& Macro
*&----------------------------------------------------------------&*
DEFINE ICLEAR .
CLEAR : &1, &1[].
END-OF DIFINITION .
*&----------------------------------------------------------------&*
*& Global Common Valuedation
*&----------------------------------------------------------------&*
DATA : GV_TCODE LIKE SY-TCODE .
DATA : GV_OKCODE LIKE SY-UCOMM .
*&----------------------------------------------------------------&*
*& Global Valuedation
*&----------------------------------------------------------------&*
DATA : BEGIN OF GT_DATA OCCURS 0 ,
"~
KEY1(1),
COLOR(4),
END OF GT_DATA .
ZTESTR001SEL.
*&----------------------------------------------------------------&*
*& SELECTION SCREEN
*&----------------------------------------------------------------&*
SELECTION-SCREEN BEGION OF BLOCK B1 WITH FRAME TITLE TEXT-T01 .
PARAMETER : P_TEST(1) .
SELECTION-SCREEN END OF BLOCK B1.
*&----------------------------------------------------------------&*
*& AT SELECTION-SCREEN
*&----------------------------------------------------------------&*
AT SELECTION-SCREEN. " PAI
CASE SSFIELDS-UCOMM .
WHEN 'ONLI'. " 실행버튼 클릭시 .
ENDCASE .
*&----------------------------------------------------------------&*
*& AT SELECTION SCREEN OUTPUT
*&----------------------------------------------------------------&*
AT SELECTION-SCREEN OUTPUT. " PBO
PERFORM MODIFY_SCREEN .
*&----------------------------------------------------------------&*
*& AT SELECTION SCREEN ON VALUE REQUEST
*&----------------------------------------------------------------&*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_SPMON .
PERFORM F4_SPMON.
FORM MODIFY_SCREEN.
LOOP AT SCREEN .
IF SCREEN-GROUP1 EQ '00'.
SCREEN-ACTIVE = 1 .
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDFORM.
FORM F4_SPMON .
"달력 팝업 펑션 호출 .
ENDFORM.
ZTESTR001C01.
FORM CREATE_OBJECT .
" DOCKING CONTAINER 생성
IF DOCING IS INITIAL .
CREATE OBJECT DOCKING ~
" ALV GRID 생성
CREATE OBJECT GRID
PARENT = docking .
" VAIRIANT " ALV 변형
VARIANT-REPoRT = ~ .
VARIANG-USERNAME = SY-UNAME .
" ALV EVENT 생성
PERFORM SET_GRID EVENTS .
ENDIF.
" ALV LAYOUT 설정
PERFORM SET_LAYOUT .
" ALV TOOLBAR 설정
PERFOR SET_TOOLBAR
" ALV SORT
PERFORM SET_SORT .
" FIEDCAT
PERFORM GET_FIELDCAT_ALV .
" CALL GRID DISPLAY .
PERFOR CALL_GRID_DISPOLAY .
ENDFORM .
ZTESTR001F01.
FORM INITIALIZATION .
GV_REPID = SY-REPID .
ENDFORM.
FORM START_OF_SELELCTION .
" CHECK _VALUE
" SET_VALUE
" PROCESS_ OR SET_DATA .
ENDFORM .
FORM END_OF_SELECTION.
IF GT_DATA[] IS NOT INITIAL .
CALL SCREEN 0100.
ELSE.
MESSAGE ID ~ .
ENDIF .
ENDFORM .
ZTESTR001O01.
MODULE STATUS_0100 OUTPUT .
SET PF_STATUS '0100' EXCLODING TCODE .
SET TITLEBAR '0100' WITH '타이틀' '건수'
ENDMODULE .
MODULE CREATE_OBJECT OUTPUT .
PERFOR CREATE_OBJECT .
ENDMODULE .
ZTESTR001I01.
MODULE USER_COMMAND_0100 INPUT .
CLEAR : GV_OKCODE .
GV_OKCODE = SY-UCOMM .
CASE GV_OKCODE .
WHEN 'BACK' OR 'CANC' OR 'EXIT'.
LEAVE TO SCREEN 0 .
ENDCASE .
ENDMODULE .