예전 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 .

 

 

 

 

 

'ABAP' 카테고리의 다른 글

마감 체크 로직  (0) 2022.08.03
Call Transaction 으로 새로운 세션 실행 하는 Fuction .  (0) 2022.07.29
MESSAGE_SHOW  (0) 2022.07.29
EXIT, STOP, CONTINUE, CHECK  (0) 2022.07.22
참고 로직  (0) 2022.07.21

+ Recent posts