Part 01 ABAP 객체 지향 프로그래밍의 기초 Chapter 01 객체 지향 프로그래밍 소개하기 ... 20 1. 객체 지향 프로그래밍이란 ... 21 2. 객체와 클래스 ... 25 객체(오브젝트) 클래스 메시지 교환 3. ABAP OOP의 특징 ... 28 캡슐화 상속성 4. ABAP Function Group과 ABAP Class 비교하기 ... 31 Chapter 02 ABAP 객체 지향 프로그래밍의 기본 용어 ... 34 1. 클래스, 메소드, 속성 정의하기 ... 35 클래스의 정의 메소드의 정의 속성의 정의 2. 클래스, 메소드, 속성의 종류 ... 37 클래스의 종류 메소드의 종류 속성의 종류 3. 이벤트 핸들링 ... 45 4. 데이터 선언 및 객체 생성하기 ... 48 5. 상속과 재정의 ... 51 6. 인터페이스 ... 55 7. Abstract와 Final ... 59 Chapter 03 Class Builder 활용하기 ... 60 1. Class Builder의 기능과 생성 방법 ... 61 2. 'Properties' 탭 ... 63 3. 'Attributes' 탭 ... 64 4. 'Methods' 탭 ... 65 5. Class Builder 테스트 ... 68 6. Inheritance Global Class 생성하기 ... 72 Chapter 04 클래스를 활용한 ABAP 객체 지향 프로그래밍 ... 76 1. Local Class를 활용한 ABAP 프로그램 ... 77 프로그램의 사양 프로그램의 실행 결과 소스 프로그램 2. Global Class를 활용한 ABAP 프로그램 ... 81 프로그램의 사양 프로그램의 실행 결과 소스 프로그램 Chapter 05 Application Control 소개하기 ... 86 1. ALV Grid Control ... 87 Details 선택하기 오름차순/내림차순 정렬 필터 합계 표시하기 부분합 표시하기 Views Export - Spreadsheet Export - ABC Analysis Export - HTML download Layout Settings Hide Optimize Width Freeze to Column Unfreeze Columns 2. Tree Control ... 111 3. Drag and Drop Control ... 115 4. Text Editor Control ... 117 Part 02 ABAP 객체 지향 프로그래밍의 기본 구조 Chapter 06 Screen 프로그래밍 ... 122 1. Type-M 프로그램이란 ... 123 2. Type-M 프로그램의 흐름과 구조 ... 125 Screen Object와 Flow 로직 Type-M 프로그램의 구조 3. Screen Painter ... 128 구조 'Attributes' 탭 'Element list' 탭 'Flow logic' 탭 Screen Layout 4. Type-M 프로그램 구현하기 ... 136 Type-M 프로그램의 구현 과정 Type-M 프로그램 생성하기 Screen 생성하기 GUI Status 생성하기 GUI Titles 생성하기 Transaction Code 생성하기 프로그램 구현하기 5. 예제 프로그램의 기본 구조 ... 156 구조와 흐름 Selection Screen START-OF-SELECTION Chapter 07 Container 활용 프로그래밍 ... 164 1. Container control 소개 및 구현 절차 ... 165 Container Control ABAP 객체 프로그래밍의 절차 2. Custom Container Control ... 167 구조 특징과 용도 Custom Container를 활용한 ALV Grid List 구현하기 3. Docking Container Control ... 174 구조 특징과 용도 Docking Container를 활용해 ALV Grid List 구현하기 4. Splitter Container Control ... 179 구조 특징과 용도 Splitter Container를 활용해 ALV Grid List 구현하기 5. Easy Splitter Container Control ... 184 구조 Easy Splitter Container를 활용해 ALV Grid List 구현하기 6. Dialog Box Container Control ... 186 구조 Dialog Box Container를 활용해 ALV Grid List 구현하기 Part 03 ALV Grid List 프로그래밍 Chapter 08 ALV 이해하기 ... 192 1. ALV 소개 ... 193 2. 함수를 활용해 ALV 구현하기 ... 197 3. 클래스를 활용해 ALV 구현하기 ... 201 'Properties' 탭 'Attributes' 탭 'Methods' 탭 'Events' 탭 'Internal types' 탭 4. 기존 프로그램과 ALV 비교하기 ... 207 Chapter 09 Simple Grid List 이해하기 ... 210 1. 테스트 프로그램 소개 ... 211 2. Simple Grid List 구현하기 ... 212 3. 소스 프로그램 ... 217 Chapter 10 Field 속성 제어하기 ... 220 1. 테스트 프로그램 소개 ... 221 조회 조건 화면 구성하기 결과 화면 구성하기 2. Field 속성 제어하기 ... 224 3. 소스 프로그램 ... 233 Chapter 11 Sorting, Total, Subtotal 제어하기 ... 238 1. 테스트 프로그램 소개 ... 239 조회 화면 구성하기 결과 화면 구성 2. Sorting, Total, Subtotal 구현하기 ... 242 3. 소스 프로그램 ... 248 Chapter 12 화면 장식하기 ... 254 1. 테스트 프로그램 소개 ... 255 조회 화면 구성하기 결과 화면 구성하기 2. Screen Decoration 구현하기 ... 260 3. 소스 프로그램 ... 268 Chapter 13 Data Format 제어하기 ... 276 1. 테스트 프로그램 소개 ... 277 조회 화면 구성하기 결과 화면 구성하기 2. Data Format 제어하기 ... 281 3. 소스 프로그램 ... 284 Chapter 14 Toolbar & Dropdown List 제어하기 ... 290 1. 테스트 프로그램 소개 ... 291 조회 화면 구성하기 결과 화면 구성하기 2. Toolbar Exclude & Dropdown List 구현하기 ... 293 Toolbar Exclude Dropdown List 3. 소스 프로그램 ... 299 Chapter 15 Filter & Variant 제어하기 ... 302 1. 테스트 프로그램 소개 ... 303 조회 화면 구성하기 결과 화면 구성하기 2. Filter & Variant 구현하기 ... 307 3. 소스 프로그램 ... 316 Chapter 16 ALV 무결성 검사하기 ... 320 1. ALV Grid Control의 무결성 체크하기 ... 321 Field catalog Layout Sort Sequence Filter Variant Output Table 2. 무결성 검사 구현하기 ... 324 3. 소스 프로그램 ... 326 Part 04 ABAP 객체 지향 프로그램 완성하기 Chapter 17 Text Edit 프로그래밍 ... 330 1. Text Edit의 개요 ... 331 2. Text Edit 프로그램의 구조와 절차 ... 332 구조 절차 3. 지원 클래스의 종류와 특성 ... 336 Constructor 메소드 set_readonly_mode 메소드 get_text_as_r3table 메소드 get_text_as_stream 메소드 set_text_as_r3table, set_text_as_stream 메소드 get_selected_text_as_r3table 메소드 protect_line 메소드 indent_lines 메소드 find_and_select_text 메소드 highlight_lines 메소드 delete-text 메소드 set_toolbar_mode, set_statusbar_mode 메소드 4. Text Edit Control의 구현 예제 ... 351 READ Status PROT Status INDT Status FIND Status HIGH Status DELE Status TOOL Status EXIT Status Chapter 18 Tree 프로그래밍 ... 364 1. Tree 프로그램의 구조와 절차 ... 365 구조 절차 2. 지원 클래스의 종류와 특성 ... 367 3. Simple Tree Control 프로그래밍 ... 369 Tree Control 구현하기 Tree Control Instance 생성하기 Node 처리 오버뷰 Type 선언(Node의 구조) Build Node Table Insert Node 4. List Tree Control 프로그래밍 ... 382 List Tree Control Instance 생성하기 Node/Item 처리 오버뷰 5. Column Tree Control 프로그래밍 ... 392 List Tree Control Instance 생성하기 Node/Item 처리 오버뷰 Chapter 19 Drag and Drop 프로그래밍 ... 396 1. Drag and Drop의 개요 ... 397 2. Drang and Drop 프로그램의 구조와 절차 ... 398 3. 지원 클래스의 종류와 특성 ... 403 4. Drag and Drop의 구현 예제 ... 409 Chapter 20 Context Menu 프로그래밍 ... 432 1. Context Menu의 개요 ... 433 2. 지원 클래스의 종류와 특징 ... 435 3. Context Menu 프로그램의 구조와 절차 ... 436 Screen Elements 속성 지정하기 Menu Painter(SE41)에서 Context Menu 정의하기 Context Menu 로드하기 Chapter 21 Toolbar 프로그래밍 ... 448 1. Toolbar의 개요 ... 449 2. Toolbar 프로그램의 구조와 절차 ... 450 3. 지원 클래스의 종류와 특성 ... 453 4. Toolbar 구현 예제 ... 458 Part 05 ABAP 실전 활용 프로그래밍 Chapter 22 실전 프로그래밍 Ⅰ(Tree, ALV) ... 472 1. 실전 프로그램의 사양 ... 473 2. 실전 프로그램 구현하기 ... 475 3. 소스 코드 ... 480 Chapter 23 실전 프로그래밍 Ⅱ(Tree, Text Edit, Drag and Drop) ... 488 1. 실전 프로그램의 사양 ... 489 2. 실전 프로그램 구현하기 ... 491 3. 소스 코드 ... 497 Chapter 24 실전 프로그래밍 Ⅲ(Toolbar, Context Menu) ... 508 1. 실전 프로그램의 사양 ... 509 2. 실전 프로그램 구현하기 ... 511 3. 소스 코드 ... 515 Appendix(부록) A 테이블 레이아웃 ... 528 B 아이콘 ... 532 C 심벌 ... 564 D 특수 리스트 ... 566 Index(찾아보기) ... 314