티스토리 뷰

공부/C#

devexpress 차트 컨트롤 사용

IKASU 2014. 11. 17. 14:48

2014.11.17 작성

devexpress 의 차트 컨트롤 사용법입니다.

새로운 내용이 있으면 계속하여 추가하도록 하겠습니다.

    Series sItem= new Series("pay", ViewType.Bar); //선언 부분입니다.

                      빨간색 부분은 차트에 출력되는 이름이고 파란색 부분은 타입을 설정합니다.

                sItem.ArgumentScaleType = ScaleType.Qualitative;

                sItem.ArgumentDataMember = "date";         // x축 항목 설정 (컬럼명 기제)

                sItem.ValueScaleType = ScaleType.Numerical;

                sItem.ValueDataMembers.AddRange(new string[] { "pay" });  //값을 가지고있는 컬럼명 기제

                sItem.LabelsVisibility = DefaultBoolean.True;                // 차트에 숫자 값 출력 

                sItem.Label.PointOptions.ValueNumericOptions.Format = NumericFormat.Number;   // 숫자값에 쉼표 표시

                sItem.Label.PointOptions.ValueNumericOptions.Precision = 0; // 소숫점 몇째 자리 까지 표시할것인가 설정

                _chart.Series.AddRange(new Series[] { sItem}); //차트 컨트롤에 추가


차트에 값 바인딩은

_chart.DataSource = dtList; 한줄로 끝


차트 값출력 하는곳에 쉼표 넣기 입니다.

<Demo Center 에서 캡쳐>

차트 컨트롤을 사용할때 차트 위에 마우스를 올려놓으면 값을 출력해줍니다.

이기능을 사용할때 별다른 포맷을 설정하지 않으면 그냥 숫자만 출력이 되는데 보기가 힘들수 있습니다. 

이럴때 사용자 마음대로 출력포맷을 설정하려면

sSeries.CrosshairLabelPattern = "{S} : {V:n0}";

이 한줄로 설정 할 수 있습니다.

위 형식은 숫자에 쉼표 넣어주는 형식입니다.   ex ) 1,151 


2015.02.04 작성

1. 차트 y축 값 출력 형식 변환

 보통 차트의 y축 값들을 출력할때 숫자라면 단순하게 쉼표 없이 출력됩니다. 이러한 출력값의 형식을 바꾸는 코드 입니다.

          ->       

차트 설정 하는 부분에 추가해주시면 형식이 바뀜니다. 

  XYDiagram diagram = _chart.Diagram as XYDiagram;

 diagram.AxisY.Label.NumericOptions.Format = NumericFormat.Number;


2. 차트 PrintPreview 설정입니다.

단순하게 차트를 미리보기창에 띄우고 싶으면

_chart.ShowPrintPreview(); 이렇게 해주면 되지만 차트 크기의 따라서 페이지를 넘겨버리게 됩니다.

우리가 원하는 방식은 차트가 용지에 맞게 출력되길 원합니다.

using DevExpress.XtraCharts.Printing;
        ChartPrinter cp;
        private void button1_Click(object sender, EventArgs e) {
            Link l = new Link(new PrintingSystem());
            l.Landscape = true;
            l.PaperKind = System.Drawing.Printing.PaperKind.A3;
            cp = new ChartPrinter(this.chartControl1);
            cp.Initialize(l.PrintingSystem, l);
            cp.SizeMode = PrintSizeMode.Stretch;
            l.CreateDetailArea += new CreateAreaEventHandler(l_CreateDetailArea);
            l.ShowPreviewDialog();
            cp.Release();
        }

        void l_CreateDetailArea(object sender, CreateAreaEventArgs e) {
            cp.CreateDetail(e.Graph);
        }

이 코드는 devexpress의 답변중에서 찾게 되었습니다.

일단 여기서 중요하다고 생각되는 코드는 cp.SizeMode = PrintSizeMode.Stretch; 이 코드라고 생각됩니다.

PrintSizeMode 옵션에 따라서 크기가 달라집니다.

PrintSizeMode.Stretch 옵션은 용지에 맞게 차트 크기를 늘리거나 줄려주는거 같습니다.

저의 경우는 차트가 큰 경우라 용지에 맞게 줄여들었습니다.

원본 소스가 있는 페이지 입니다. https://www.devexpress.com/Support/Center/Question/Details/AS6709 


'공부 > C#' 카테고리의 다른 글

Visual studio에서 svn 설정하는 방법  (0) 2016.04.27
devexpress GridView 설정법  (1) 2015.02.10
C# MySql 접근  (0) 2014.11.11
Search Lookup Editor 컨트롤 사용하기  (0) 2014.10.23
[C#] 문자열 자르기  (0) 2014.09.23
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함