목록분류 전체보기 (767)
쌓고 쌓다

쿼리를 날릴때 LISTBOX에서Business 고객인지 Private 고객인지 체크박스의 내용으로쿼리의 조건문을 동적으로 생성할 일이 있다. SELECTION SCREEN에서 LISTBOX 파라미터는 위와같이 선언한다. *이후 코드에서 변수명 PA_CUS가 PA_CUSTP로 변경됨을 유의 Range Variable을 이용해서아무것도 선택되지 않았을때 모든 검색을선택된 내용에 대해선 조건 검색을 이뤄지게 할 수 있다. Range Variable의 Internal Table에 어떠한 조건 내용도 없다면모든 내용들을 검색해오기 때문에 이 상황에 적합하다. Business 고객인지 Private 고객인지에 대한 선택이 존재할때 조건문을 통해LISTBOX에서 선택된 내용에 대한 값은 LOW에 값이 들어가므로LIS..

ALV 버튼 컬럼 추가ALV에 위와 같은 버튼을 띄워보자. 우선 버튼 위에 보일 텍스트 BTN_TEXT 필드와버튼을 위한 IT_BTN 필드를 LVC_T_STYL 타입으로 추가한다. BTN_TEXT 필드가 버튼 클릭시 COLUMN 들어가는 FIELDNAME이 됨을 알자!IT_BTN이 버튼 클릭 이벤트에 발생한 COLUMN명이 되는게 아니다! LVC_S_STYL 타입으로 변수명 LS_BTN을 선언한다. List Data에 버튼을 표시하고자하는 Structure에BTN_TEXT 필드에 버튼 위에 표시할 텍스트와 LS_BTN 변수에 FIELDNAME(선언한 버튼 텍스트의 필드명), STYLE을 작성하고표시하고자하는 Structure에 APPEND(할당) 해준다. Layout 변수를 선언하고 ALV의 화면 호..

SELECT-OPTIONS에 LOW 한쪽만 OUTPUT으로 변경할 일이 생겼다.. 비행 날짜인 Flight Date의 SELECT-OPTIONS 벼수는 SO_FDT로 선언된 상황이다. LOW 필드만 OUTPUT으로 변경하기 위해서AT SELECTION-SCREEN OUTPUT 블럭에서LOOP AT SCREEN으로 스크린 요소들을 돌며SCREEN-NAME CS로 이름에 SO_FDT-LOW를 Contain(CS)하는 요소를 찾아INPUT 값을 0으로 해주면 된다. 물론 SCREEN-NAME = 'SO_FDT-LOW'도 가능하다. AT SELECTION-SCREEN & AT SELECTION-SCREEN OUTUTINITIALIZATION은 레포트 프로그램에서만 사용 가능하다.AT SELECTION-SCRE..

서브루틴 구문에 대해서 다음과 같이 배웠었는데.. 위와 같이 USING으로 값을 넘겨주고, CHANGING 부분에서 변경될 값을 명시하는 방식으로 호출한다. PERFORM으로 넘겨진 Actual Parameter가USING VALUE(A) 구문으로 값의 변경이 일어나지 않게 받고CHANGING으로 값의 변경이 이뤄질 수 있게 받는다. 라고 배웠다.. 그런데강사님께서 시험 해설 코드를 작성해주시는데서브루틴 선언의 USING 부분에 왜USING VALUE(PV_COUNTRY) TYPE LAND가 아닌USING PV_COUNTRY TYPE LAND 형태인 것인가...? USING만 사용하면 CHANGING과 동일한 효과를 본다.사실 USING에 VALUE를 명시해줘야지 Call by Value가 동작하는것이였..

FOR ALL ENTRIESFOR ALL ENTRIES IN을 사용하면 Internal table 데이터 가지고 조건식을 작성할 수 있다.예제를 보면서 이해해보자... IF ~ IS NOT INITAL 부분을 보자.FOR ALL ENTRIES IN 구문을 사용하려면Internal Table에 중복된 데이터가 있는지 확인하고 제거해줘야한다. DELETE ADJACENT ~ 구문 이전에 꼭 SORT를 해주어야 중복된 데이터를 정확히 제거해준다. FOR ALL ENTRIES를 사용할때 최소 한건의 데이터가 있어야한다.없으면 FROM절의 데이터를 모두 가져오게 된다. GT_SPFLI에 들어가 조건들은ROW 내에 조건들은 AND로 묶으며ROW 단위의 조건들은 모두 OR 조건으로 묶여서조건절이 동작하게 된다.}

다음은 사원 테이블이다. GESCH 필드에 성별이 저장되어 있는 상황이다.이 필드의 값이 1이라면 남자, 2라면 여자인 상황이다. 부서 ENAME은 부서 코드이다. 프로그램에서 부서코드로 부서명을, 성별 값을 가지고 남성, 여성 라디오 버튼을 표시해야하는 상황이다. 우리는 데이터를 보여줄 Structure를 하나 만들면 된다. ORGTX : 부서명을 위한 텍스트 컴포넌트 (CHAR 25)MALE : 남성 라디오 버튼을 위한 컴포넌트 (CHAR 1)FEMALE : 여성 라디오 버튼을 위한 컴포넌트 (CHAR 1)위 3개의 컴포넌트를 추가한 Structure를 만들어 사용하면 된다. 우리는 조회한 사원 정보를 가지고 이 Structure에 값을 채워 보여주면 된다. Screen Painter에서 Dicti..

Function GroupFunction Module을 만들때Function Group이 필요하다. Function Group은 Function Module들을 모아두는 곳이다. 특정 Function Module을 호출할때해당 Function Module이 포함된 Function Group의 모듈들이 모두 올라온다. Function Group에 너무 많은 Function Module을 넣지 않도록 하자. 또한 실행하는 모듈의 코드에 문제가 없어도다른 모듈의 에러로인해 고생할 수도 있다고 한다.. Function Group 생성방법 1T-code : SE37인 Function Builder에서 Function Group을 생성할 수 있다. 방법 2T-code : SE80인 Object Navigator에..

Fixed Value도메인에 입력 가능한 값을 지정할 수 있다. Fixed Value 생성도메인 생성 시 Value Range 탭 페이지에서Fixed Value 설정이 가능하다. 예시로 'A', 'F', 'S' 값만 입력이 가능하도록 Fixed Value를 설정했다. 스크린 프로그램(Module Pool)에서 Fixed Value위의 예시로 든 ZAREAF18 도메인으로 ZTAREAF18 이름으로 Database Table을 생성했다. Screen Painer에서 ZTAREAF18 테이블의 AREA 필드로인풋 필드를 생성했다. Fixed Value로 인해서 Search Help 표시가 생기기도 하며 프로그램에서 Fixed Value 외의 값을 입력했더니자동적으로 Input Check를 해준다. 레포트 프..