[DevExpress] Chart 코드로 그리기
DevExpress 차트를 그릴때 가장 편한 방법은 역시 디자이너를 사용해서 그리는 것이다.
그럼에도 불구하고 직접 코딩을 하여 차트를 그려야 할 경우가 있다.
필자는 테스트 서버와 운영서버가 다른곳에 있어 디자이너로 차트를 그렸을 경우 서버를 변경할때마다 프로그램을 배포해야되는 귀찮음이 있어서 직접 코딩을 했다.(디자이너에서 서버를 동적으로 변경하는 방법을 못찾음..)
공유 겸 필자가 까먹지 않기 위해 정리한다.
우선 사진을 보여주자면
이러한 차트를 그릴려고 한다.
위 차트를 보면 X축 : 월별, 입고, 생산중, 출고대기, 출고완료 이렇게 되어있고
Y축은 숫자(수량)으로 그린 차트다.
X축 별 여러 제품의 수량으로 표시하고 싶을 때는 Series와 ChartControl의 속성을 잘 설정해주어야 한다.
우선 ChartControl과 Series에서 묶음을 선택해주어야 한다.
series1 = new Series("", ViewType.Bar);
chartControl.SeriesTemplate.SeriesDataMember = "ITEM";
series1.ArgumentDataMember = "GUBUN";
series1.ValueScaleType = ScaleType.Numerical;
여기서 ITEM 과 GUBUN 은 필자가 쿼리에서 SELECT한 컬럼명이다.
만약 SeriesDataMember를 설정해주지 않고 여러개의 series만 추가했을 경우 StackBar가 아닌 일반 Bar형태의 차트로 그렸음에도 Bar한개에 겹쳐서 그려지는 문제가 있다.(필자가 이것때문에 2시간동안 뻘짓함..)
ArgumentDataMember는 시리즈의 X축 묶음, SeriesDataMember는 Series 묶음 안에 데이터?라고 생각하고 있다.
ValueScaleType은 보통 숫자형 아니면 날짜형을 많이 쓴다.
series1.ValueDataMembers.AddRange(new string[] { "QTY" });
Value 즉 값은 필자는 QTY라는 컬럽을 가져와서 넣어주었다.
쿼리에서 Select한 결과와 위 차트를 같이 보면 이해하기 쉬울 것이다.
(정리가 완벽히 안된 상태에서 글을 작성중이라 이후에 다시 수정예정....)