목록2025/02 (8)
쌓고 쌓다
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ccZeg9/btsL8XDLde0/FYPnAmNPxrLtc4rQCGYKF0/img.png)
Search Help사원 테이블(ZEMP_F18)에 ORGEH는 F4로 Input Help를 띄울 수 있다. 사원 테이블의 ORGEH 필드는 외래키로 부서와 연결되어 있기 때문이다. 그러나Input Help에 부서코드만 뜨지 부서명은 안 뜬다. Input Help에 부서 코드와 부서명이 함께 뜨도록Search Help를 생성하고 등록해보자. Search Help 생성T-Code : SE11에서 Search Help를 생성한다. 엔터 Selection Method에 부서 테이블을 작성한다.Selection Method에 테이블이나 뷰(database, search, help 뷰가 올 수 있다.)가 와야한다.ORGEH는 부서코드ORGTX는 부서명 텍스트이다.. Dialog type : Display valu..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/vu1XJ/btsL9cHd5Hh/ynX4DvYcjJoF2rAFkjSk4K/img.png)
ALV에서 List Data를 수정 했을때 성공적으로 변경 쿼리가 나가고ALV에 보여지는 데이터를 바로 확인해보면 수정된 데이터가 적용이 안되어있다. 하지만 프로그램을 다시 실행하거나 DB Table을 조회해보면반영이 되어 있다. ALV에 보여지는 데이터는 Interval Table에 담겨져 있는것을 보여주기에데이터 베이스에 새로 읽어와서 Interval Table에 담아줘야 한다.그래야 최신의 데이터를 화면에 볼 수 있다. ALV를 통해 변경된 사항이 보여주기 위해 존재하는Internal Table인 GT_OUTPUT에UPDATE 또는 DELETE 변경사항이 발생한 ROW가 반영되었다는가정하에 아래의 메소드로 GT_OUTPUT 테이블의 데이터를다시 불러오는. 새로고침 기능을하는 메소드를 호출하면 된다...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bcG7ZF/btsL7y4FBe7/Kvlx3a7ELKKGutI5ycKf1k/img.png)
AT SELECTION-SCREENAT SELECTION-SCREEN 부분에서는 Checks이 있다.Input / Authorization Check가 이뤄진다. ON 로 필드 값 검증을 할 수 있다. SELECTION SCREEN BLOCK에 NAME이라는 필드를 선언했다. 이 NAME 필드에 값을 유효성 검사를 하길 원한다. 예를 들어 NAME 필드에 값을 반드시 넣어야하는 유효성 검사를 한다고 하자. AT SELECTION-SCREEN ON 구문에 맞춰AT SELECTION-SCREEN ON NAME을 작성하고조건문을 걸어서 조건에 맞지 않으면 TYPE 'E'로 에러 메시지를 출력하면 된다. NAME 필드를 입력하지 않고 실행했더니AT SELECTION-SCREEN 구문에 걸려 에러 메시지가 출력..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/JCrCg/btsL6VMMDcm/C9VFuPkFs0GkTnwjsGvHKK/img.png)
Range VariableSELECT문의 WHERE절에 사용하는 조건문을 동적으로 추가할 수 있다. Range 변수는 Internal Table이다.이 Internal Table에 조건을 넣고WHERE 필드 IN 로Internal Table에 넣어진 조건들을 OR로 묶어서WHERE 조건절을 완성할 수 있다. 'B'와 'P' 값이 존재하는 컬럼이 있다. PA_ALL : CUSTTYPE이 B, P 모두 조회PA_PRI : 'P' 값을 같는 ROW 조회PA_BIZ : 'B' 값을 같는 ROW 조회를 위한 RADIOBUTTON이다. SELECT 쿼리를 날릴때사용자가 선택한 상황에 따라 조건건문을 동적으로 생성하고자 한다. Range 변수 선언은 TYPE RANGE OF로 한다.해당 변수는 Internal T..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/SXRVi/btsL6js7bkE/JJhBfboNYYbI9g7YQRoGeK/img.png)
ALV Grid EventALV Grid에 데이터를 클릭 했을때 해당 Row 또는 Col 정보를 받아 처리하거나HOTSPOT(밑줄) 된 데이터를 클릭했을 때 실행할 로직을 등록하거나툴바에 메뉴를 추가하고 메뉴를 클릭했을때 동작과 같은 이벤트들을 생성, 관리할 수 있다. 더블 클릭시ES_ROW_NO에는 ROW에 대한 정보를 갖는 컴포넌트NUM, ROW_ID 컴포넌트가 존재한다. ES_ROW_NO에 ROW_ID 필드가 있는데 몇번째 ROW를 더블클릭했는지 인덱스를 리턴.E_COLUMN에 COLUMN_ID 필드는 어느 컬럼에서 클릭했는지 컬럼이름을 리턴. E_COLUMN에는 COL에 대한 정보들을 갖는COLUMN_ID, FIELDNAME 컴포넌트가 있다. Field Catalog 조작할때 LVS_S_FCAT..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bisL3h/btsL6I61mXX/bSGaryl1IFtABxJzylbpy0/img.png)
Field CatalogField Catalog는 표시할 데이터의 포맷을 설명하는것이다. 이전의 ALV는 I_STRUCTURE_NAME으로 ABAP Dictionary에 정의된 스트럭쳐를 사용했기에자동적으로 Field Catalog가 생성된 것이다. Field Catalog는 Internal Table 타입이며, 조작하여 표시될 데이터를 조작할 수 있다.Internal Table 타입은 LVC_T_FCAT,테이블 타입의 Work area로 LVC_S_FCAT 이다. IT_FIELDCATALOGSET_TABLE_FOR_FIRST_DISPLAY의 파라미터에 IT_FIELDCATALOG가 있다.이곳에 Field Catalog를 위해 선언한 LVC_T_FCAT 타입 변수 GT_FCAT를 넘겨주면 된다. 이 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/diXtVL/btsL4oHnEFd/oPY7XYqkkcP33ObpVAluS1/img.png)
Secondary INDEXPRIMARY INDEX는 키 필드로 자동으로 생성된다.Non-Key Field로 Secondary INDEX를 생성할 수 있다. 예를 들어사원 테이블에서 사원 이름을 통해 검색이 자주 일어난다고 하자.그러나 사원 이름은 키 필드가 아니라서 Secondary INDEX가 필요하다. 사원 테이블의 사원 이름을 Secondary INDEX로 설정해보자. T-CODE : SE11에서 테이블을 변경한다.Indexes 탭에서 인덱스를 생성할 수 있다. INDEX명은 Z나 Y로 시작한다. Description을 입력하고 Table Fields를 누른다. 사용할 필드를 누르고 Copy를 누르면 된다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/URdry/btsL5uzRYOY/bNV4lhIfVICGkQGOvo0Zq1/img.png)
DataBase의 Table 생성은 SE11에서 할 수 있다. 테이블의 생성 과정에 Technical Setting 탭에서Data Class : 데이터가 저장될 물리적 공간의 키를 지정. Size Category : 데이터를 저장하다가 공간이 줄어들면 확장의 크기를 얼마나 할 것인가Logging : 로그 기록. 변경 이력은 Log Table에 이뤄진다. 수업때 일단 USER를 사용하라고 배웠다.실무에서는 테이블의 용도에 따라 Data Class를 지정하는 것 같다. 외래 키 (Foreign Key)직원의 부서 코드는항상 부서 테이블에 존재하는 부서 코드여야 한다. 이럴때 직원(EMP)와 부서(DEPT)는 외래키로 관계를 맺을 수 있다. 부서 코드 필드인 ORGEH가 있다고 하자. 직원(EMP) 테이블의..