본문 바로가기

ABAP

(33)
[ABAP] 클래스로 간단하게 ALV 생성하기 DATA : GT_DATA TYPE TABLE OF ZSES0010, GS_DATA LIKE LINE OF GT_DATA. DATA : GI_DOCKING TYPE REF TO CL_GUI_DOCKING_CONTAINER, GI_GRID TYPE REF TO CL_GUI_ALV_GRID. GI_DOCKING = NEW #( EXTENSION = CL_GUI_DOCKING_CONTAINER=>WS_MAXIMIZEBOX ). GI_GRID = NEW #( I_PARENT = GI_DOCKING ). DATA(LS_LAYO) = VALUE LVC_S_LAYO( ZEBRA = ABAP_ON CWIDTH_OPT = ABAP_ON ). CL_SALV_TABLE=>FACTORY( IMPORTING R_SALV_TAB..
[ABAP] Excel Download 예제 DATA : LT_FILE TYPE FILETABLE, LV_RC TYPE I, LV_PATH TYPE STRING, LT_FCAT TYPE TABLE OF LVC_S_FCAT, LS_FCAT LIKE LINE OF LT_FCAT, LT_EXCEL TYPE REF TO DATA, LS_EXCEL TYPE REF TO DATA, LV_ANSWER. DATA : BEGIN OF LS_FIELDNM, FIELD_NAME TYPE CHAR30, END OF LS_FIELDNM. DATA : LT_FIELDNM LIKE TABLE OF LS_FIELDNM. FIELD-SYBOLS : TYPE TABLE, TYPE ANY. _MESSAGE_POP_UP TEXT-T28 LV_ANSWER. "해당 내용으로 다운로드 하..
[ABAP] Top-of-Page 예제 *-> Class Definition CLASS LCL_EVENT_RECEIVER DEFINITION. PUBLIC SECTION. METHODS : HANDLE_TOP_OF_PAGE FOR EVENT TOP_OF PAGE OF CL_GUI_ALV_GRID IMPORTING E_DYNDOC_ID. ENDCLASS. *->ALV 선언 DATA : GI_GUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER, "화면에 그린 컨테이너 GI_GRID TYPE REF TO CL_GUI_ALV_GRID, "데이터 출력해줄 그리드 GI_EVENT_RECEIVER TYPE REF TO LCL_EVENT_RECEIVER, "이벤트 선언 GI_SPLITTER TYPE REF TO C..
[ABAP] 핸드폰 번호 오류검증(FIND REGEX 구문) Regex 구문을 사용하면 오류 검증을 할 때, 핸드폰 번호나 사번 등 어떠한 패턴들을 정의하기 편하다. FIND REGEX '^(01)([016789])[0-9]{7,8}' IN GS_DATA-CELL_NO. -> ^는 시작을 의미하고, ()는 한 묶음을 의미, []는 해당되는 숫자, {}는 반복을 의미한다. 즉, 01로 시작하고 뒤에 016789 중에 숫자 하나가 오며, 그 뒤에 0~9까지 숫자가 7,8자리가 온다고 해석할 수 있다. ' - ' 부호가 있다면 ([0-9]{3,4})([0-9]{4})로 중간 부분에 3자리가 오는지 4자리가 오는지 구분해야하지만, 이 경우엔 부호 사전 제거 후 데이터 검증이기 때문에 구분을 하지않아도 된다.
[ABAP] 이메일 유효성 체크 DATA : LC_MATCHER TYPE REF TO CL_ABAP_MATCHER, LV_PATTERN TYPE STRING. LV_SUCCESS TYPE ABAP_BOOL. CL_ABAP_MATCHER을 참조하는 로컬 Class 변수, 이메일 유효성 체크 패턴이 들어갈 로컬 변수, MATCH 메소드가 가진 파라미터 로컬 변수를 선언한다. 오류검증을 위해 이메일이 입력되었을 경우에 로직을 넣어준다. CL_ABAP_MATCHER=>CREATE( PATTERN = LV_PATTERN TEXT = GS_DATA-EMAIL ) 부분의 TEXT 부분에는 내가 검증하고 싶은 인터널 테이블의 필드를 입력해주면 된다.
[ABAP] 특수문자 제거 REPLACE ALL OCCURRENCES OF REGEX '[^[:alnum:]]' IN LS_MOD_CELLS-VALUE WITH ''. -> 특수문자를 제거해줌 이 구문을 사용하게 되면 필드가 수정될 때 특수문자가 들어온 경우 아래처럼 지워지게 된다. 나는 오류 검증을 위해 성명 필드가 수정될 때마다 로직을 타도록 데이터 체인지 이벤트에 넣어주었다.
[ABAP] POPUP_TO_CONFIRM_STEP 메세지 팝업 함수로 매크로 선언해서 활용하면 더 편하다. DEFINE _MESSAGE_POP_UP. CALL FUNCTION 'POPUP_TO_CONFIRM_STEP' EXPORTING TEXTLINE1 = &1 TITLE = '확인' " 팝업창 타이틀 IMPORTING ANSWER = &2 " 예 = J, 아니오 = N, 취소 = A END-OF-DEFINITION. TOP Include에다가 위의 매크로 선언 후, 데이터를 저장하거나 삭제하기 전, 메세지 팝업을 띄워 한번 더 물어보면 좋다. '예'일 때는 J, '아니오'일 때는 N, '취소'일 때는 A이다. 저장버튼을 누르면 이런식으로 팝업창이 뜨게 된다.
[ABAP] ALV Search Help 예제 *-> Class Definition CLASS LCL_EVENT_RECEIVER DEFINITION. PUBLIC SECTION. METHODS : HANDLE_ONF4 FOR EVENT ONF4 OF CL_GUI_ALV_GRID IMPORTING E_FIELDNAME E_FIELDVALUE ES_ROW_NO ER_EVENT_DATA ET_BAD_CELLS E_DISPLAY. ENDCLASS. *-> Class Implementation CLASS LCL_EVENT_RECEIVER IMPLEMENTATION. METHOD HANDLE_ONF4 PERFORM ALV_ONF4 USING E_FIELDNAME E_FIELDVALUE ES_ROW_NO ER_EVENT_DATA ET_BAD_CELLS E_DIS..

반응형