목록분류 전체보기 (815)
쌓고 쌓다
RTTSRTTS는 RunTime Type Service이다.프로그램 실행중에 데이터의 타입 정보를 얻거나, 데이터의 타입을 동적으로 생성을 돕는 클래스이다. RTTS로 RTTI와 RTTC가 있다. 1. RTTI (RunTime Type Identification) - 타입 정보 얻기 이미 존재하는 데이터를 가지고 타입 정보를 얻는다. 2. RTTC (RunTime Type Creation) - 타입 생성 프로그램 실행 도중에 사전에 정의하지 않은 새로운 타입을 생성함. 그냥 타입 추론과 생성 기능이 있다고 간단하게 생각하자~ CL_ABAP_TYPEDESCR 클래스를 사용하는데위의 구조를 갖는다. 예제 코드 DESCRIBE_BY_DATA 변수 GT_DATA와 GS_DATA를 사용했을때 차이를 보..
CREATE_DYNAMIC_TABLE 펑션을 사용하면필드 카탈로그를 넘겨주어 그에 맞는 Internal Table을 뽑아낼 수 있다. 이것으로 동적 ALV를 만들었다.(참고로 필드 카탈로그 타입 안지정해서 넣으면 기본값은 C(11)로 컬럼이 만들어짐) 그런데 셀 색깔을 위해서 Internal Table에 LVC_T_SCOL 타입의 필드가 필요하다. 어떻게 Internal Table에 LVC_T_SCOL 필드를 넣을 수 있을까? 필드 카탈로그로 테이블을 만드는 과정은 그대로이다. 다음 과정을 거쳐서 필드 카탈로그를 추가해주면 된다. DDIC에 LVC_T_SCOL 타입의 필드를 갖는 구조체를 만든다. 필드 카탈로그는 위와 같이 구성한다.TECH 값을 꼭 주도록하자.기술적 필드로 사용하겠다는 표시이다. R..
ABAP에서 누적 막대 그래프 그리기를 포기했었는데 어느날 회식때 동료분이 블로그 글 보고 기억난다고 알려주셔서 그리는 방법을 알게 되었다. 정말 감사합니다. 기존 코드를 가지고 쉬운 내용으로 템플릿을 만들어 봤다. A, B, C, D 제품이 있을때월별 누적 막대그래프를 예제이다. 방법은누적 막대 그래프 차트를 그려주는 펑션을 가지고 이미지 데이터를 만들고이미지 데이터를 가지고 이미지 URL을 생성하고이미지 URL을 HTML에 포함시켜 SAP GUI에 출력하는 방식이다. 막대 그래프, 도넛 그래프 등 다양한 그래프를 그릴 수 있다. 코드중에 HTML을 어디 화면에 뿌려줄지 지정할 수 있다.위처럼 ALV 컨테이너가 없어도 화면에 뿌려줄 수 있지만 컨테이너를 지정해서 해당 ALV에 표시할 수 도 있다...
https://non-stop.tistory.com/870지난 포스팅에서 동적 ALV 필드를 구성하는 코드 중에ASSIGN COMPONENT하는 부분 CREAT DATA에 대해서 모르겠어서이해할 수 있도록 단계적 필요 개념과 결과코드를 정리해 보았다. CREATE DATA 변수를 참조하는 오브젝트를 생성하는 구문이다. @DREF→* (역참조라고 부름) : CREATE DATA로 메모리 위치가 할당되면 그 값을 DREF가 갖게 된다. *로 가리키는 그 메모리 위치를 INTO절에 작성해서 결과를 받는 것이다.DREF→필드명 : DFEF를 참조하여 값을 꺼냄 [TYPE|LIKE DTYPE]으로 타입을 지정하는 경우 자동으로 타입 변환된다. 예를 들어보자면ANY 타입으로 선언했지만 SCARR 타입으로 지정할 ..
사실 저번에 동적 ALV Field Catalog를 구성하는 방법에 대해작성한 적 있지만. 깔끔하게 다시 이해하고자 다시 만들어 봤다. 목표입력한 연도에 맞춰서일자별을 누르면 해당 연도의 모든 일자별 ALV 필드가 나오고 주차별을 누르면 월별 주차와 함께 기간을 표시해 보자. 월별 주차 계산에 좀 어려웠는데2025년 2026년은 월별 주차가 잘 계산되어 나오는 걸 확인했다. 동적으로 만든 ALV에 고정된 필드도 추가해 보고 데이터도 집어넣어보자. 일자에 맞는 주차에도 표시하자. TOP Include 필드 심볼에는 구성된 Field Catalog를 통해서Internal Table을 만드는 펑션을 이용해 Internal Table을 가리킬 것이다. ALV 초기화ALV 관련 변수들의 초기화에도 다를 건 없다...
목표 막대그래프, 꺾은선 그래프를 만들어보자.그런데 더 세밀한 커스터마이징이 가능한. 마지막에 보여주려 했는데 선공개하자면이렇게도 막대 그래프를 겹쳐서 그릴 수 있다.다양하게 설정할 수 있는 값들이 많다. 잡담CL_GUI_CUSTOM_CONTAINER와 CL_GUI_CONTAINER타입에 대해 많이 헷갈려서 Split Container를 이용해 CHART ENGINE으로 그래프를 그리는 부분에서CL_GUI_CUSTOM_CONTAINER과 CL_GUI_CONTAINER를 사용하는 타입이 각각 다를 때어떻게 막 변환하고 업캐스트하고 해야 하나 싶었는데 다음과 같이 정리하니깐 쉽게 CHART ENGINE을 사용할 수 있었다. CL_GUI_CUSTOM_CONTAINER는Screen Painter에서 직접 그린 ..
기본적인 그래프를Screen Painter에 Custom Control를 위 사진처럼 만들고 그래프를 그리는 것 뿐만아니라 CL_GUI_CONTAINER 타입인 Container Object에 그래프를 그리는 방법이 있다.Container Object에 넣으면 Docking Container, Split Container를 사용했을때특정 Container 부분에 그래프를 그려 넣을 수 있다. 그래프1 버튼을 누르면 위와같은 그래프가 Docking Container의 한 부분에 그려 넣을 수 있다는 말이다. 그래프2 버튼을 눌렀을때 또 다른 새로운 그래프를 그려 넣을 수 있다. 그래프의 종류는 다양하게 가능하다.단, 누적 막대 그래프는 안된다.누적 막대 그래프를 그리는 방법은 연구해서 다음 포스팅에 작성해..
벌써 1년이 지났네요.. ㅎㅎ 2025년 회고를 작성하는 날이 이렇게 빨리 올줄이야.2024년 회고를 보니 SYNC 교육 입과를 끝으로 이야기가 끝났었구나. 시간의 흐름순으로 회고를 작성해 보자... SYNC 수료 (1월~6월 초)싱크를 무사히 잘 수료했다. 지금 돌이켜보면 마지막 대학교 졸업 학기에많은 고민 끝에 웹SI 회사를 안 가고SYNC 교육을 선택했던 순간이 떠오른다. 나름 새로운 영역에 발을 내딛는 순간이었고 그 선택에 만족한다고 이제는 확신을 가지고 말할 수 있다. 교육 과정에 후회와 미련을 갖는 부분은ABAP 멘토에 지원하지 않은것을 후회하고 있다. 처음에는 어떤 멘토도 지원하지 않으려 했지만옆에서 멘토 안 하기에는 아깝다며 말해준 친구 덕분에뒤늦게 Firoi 멘토라도 활동을 했었다.아직도..