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

excel에 자신이 출력 하고자 하는 표를 그린다.

 

INCLUDE OLE2INCL.

DATA : EXCEL    TYPE  OLE2_OBJECT,
       BOOKS    TYPE  OLE2_OBJECT,
       CELL     TYPE  OLE2_OBJECT.

  CREATE  OBJECT  EXCEL  'EXCEL.APPLICATION'.
  SET PROPERTY OF EXCEL  'VISIBLE'    =  1  .
  CALL METHOD  OF EXCEL  'WORKBOOKS'  =  BOOKS.
  CALL METHOD  OF BOOKS  'OPEN' EXPORTING #1 = 'TEST.XLS'.

 PERFORM FILL_CELL USING :  3  2 NAME1,
                            3  6 VALUE1,
                            4  2 VALUE2,
                            4  6 VALUE3,
                            5  2 VALUE4. 
                            
                            
FORM FILL_CELL USING   I J  VAL.
  CALL METHOD OF EXCEL 'CELLS' = CELL EXPORTING  #1 = I  #2 = J.
  SET PROPERTY OF CELL 'VALUE' = VAL.
ENDFORM.                    " FILL_CELL

'ABAP' 카테고리의 다른 글

참고 로직  (0) 2022.07.21
Report에서 외부 명령어 호출  (0) 2022.07.21
ABAP 정규식 Regular Expression  (0) 2022.07.20
ABAP Memory Inspector  (0) 2022.07.20
POPUP Function 정리  (0) 2022.07.20

5년전 코스트센터명으로 배부 규칙을 정하는 프로그램 작성 요청이 있어 정규식 관련 자료를 모았었다. 

유의해야 할 점은 문자열 관련 로직은 프로그램 속도를 느리게 할 수 있다. 

많은 데이터를 처리해야 할 경우 고려해서 사용해야 함.

 

Regular Expression Processing in ABAP.pdf
0.32MB
Regular Expressions Online Meetup Presentation.pdf
0.58MB

 

'ABAP' 카테고리의 다른 글

Report에서 외부 명령어 호출  (0) 2022.07.21
Data를 excel file 형식으로 출력시키는 법  (0) 2022.07.21
ABAP Memory Inspector  (0) 2022.07.20
POPUP Function 정리  (0) 2022.07.20
CTS 락 풀기  (0) 2022.07.20

+ Recent posts