쌓고 쌓다

[ABAP] 'GFW_PRES_SHOW' 펑션으로 그래프 차트 쉽게 그리기 본문

SAP/ABAP

[ABAP] 'GFW_PRES_SHOW' 펑션으로 그래프 차트 쉽게 그리기

승민아 2025. 12. 27. 22:03
반응형

기본적인 그래프를

Screen Painter에 Custom Control를 

위 사진처럼 만들고 그래프를 그리는 것 뿐만아니라

 

CL_GUI_CONTAINER 타입인 Container Object에 그래프를 그리는 방법이 있다.

Container Object에 넣으면 Docking Container, Split Container를 사용했을때

특정 Container 부분에 그래프를 그려 넣을 수 있다.

 

그래프1 버튼을 누르면 위와같은 그래프가 Docking Container의 한 부분에 그려 넣을 수 있다는 말이다.

 

그래프2 버튼을 눌렀을때 또 다른 새로운 그래프를 그려 넣을 수 있다.

 

그래프의 종류는 다양하게 가능하다.

단, 누적 막대 그래프는 안된다.

누적 막대 그래프를 그리는 방법은 연구해서 다음 포스팅에 작성해보겠다.

 

1. CL_GUI_CONTAINER 컨테이너 오브젝트에 그래프 그리기

도킹 컨테이너에 사용된 SPLITTER CONTAINER의 한 부분에 그래프를 그려보자

예제는

상단의 ALV : GO_PO_CONTAINER

하단의 ALV : GO_CHART_CONTAINER

로 구성되어 있다.

 

하단의 ALV에 그래프를 그리자. 

 

 

SPLIT CONTAINER를 구성하는 부분이다.

다를거 없다.

그래프는 펑션이 알아서 그려준다.

펑션 부분을 보자.

 

그래프1 버튼을 눌렀을때 그래프가 구성되는 부분이다.

 

LT_XLABELS, LT_COLLABELS는 안해도 된다.

LT_XTEXTS, LT_YVALES를 가지고 라벨이 자동 구성 된다.

단지, 새로운 라벨링을 위해 존재하는 부분이다.

 

위의 코드로

이렇게 그래프가 그려지니 비교하면서 값을 설정하는 부분을 직관적으로 이해하자.

 

'GFW_PRES_SHOW' 펑션의 

PARENT 부분에 Container Object를 넣어주면

Docking Container를 사용하면서 한 영역에 그래프를 그려줄 수 있는 것이다.

 

참고 : 

https://community.sap.com/t5/application-development-and-automation-blog-posts/drawing-graphical-charts-with-abap/ba-p/13262780

 

파이 그래프 차트도 위의 링크에서 참고하여 금방 바로 만들 수 있다.

 

2. Screen Painter에서 만든 Custom Control에 그래프 그리기

다른 방법으로 Screen Painter로 사용자 제어 영역을 만들어 그래프를 넣느 방법 있다.

 

이렇게 Custom Control 영역을 Screen Painter로 그려 넣었다면

'GFW_PRES_SHOW' 펑션의 CONTAINER 파라미터에

'CHART_CONT'를 넣어주면 저 영역에 그래프가 그려진다.

 

그래프1과 그래프2 버튼을 누름으로써

새로운 그래프를 그려넣으면 FREE해주는 과정이 필요없이

알아서 그래프가 새로 그려진다.

 

차트의 종류를 바꾸면서 새로 그려넣을 수 도 있다.

 

다양한 그래프 예제 프로그램 보기

티코드 GRAL를 들어가면

다양한 그래프 예제들을 볼 수 있다.

 

그중에 'GFW_DEMO_PRES' 프로그램에

 

그래프 예제가 정말 잘되어있고 차트 타입도 누적 막대 그래프가 존재하는데

아직 분석하여 내것으로 만들지 못했다. ㅠㅠ 너무 어렵다

XML 방식으로 그래프를 누적 그래프를 그리던

이 프로그램을 까봐서 만들던 꼭 성공해보자..

반응형