프로젝트

일반

사용자정보

차트그리기 샘플

장 용석이(가) 2년 이상 전에 추가함

  • 참고 문서
    AMSSHB.Screen07_1.기업지원서비스 >> CMCS0024-간편통계

1. Set월별차트()
2. Set사업자별차트()

  • 라인차트 전체 소스
    chartControl1.Series.Clear(); //차트의 라인 제거

Series series1 = new Series("매입", ViewType.Line); //제1라인 설정
Series series2 = new Series("매출", ViewType.Line); //제2라인 설정

DataTable convertDt = FnConvertNumberic(cmsFlexGrid1.DataTable); // 하단에 설명
foreach (DataRow item in convertDt.Rows) {
series1.Points.Add(new SeriesPoint(item0, item1)); // 월의 값으로 설정
series2.Points.Add(new SeriesPoint(item0, item3));
}

chartControl1.Series.Add(series1); //차트에 라인을 추가
chartControl1.Series.Add(series2);
chartControl1.DataSource = convertDt; //해당 데이터 매핑

series1.ArgumentScaleType = ScaleType.Auto; //Y축 범위설정이지만 자동으로 변경
series2.ArgumentScaleType = ScaleType.Auto;

series1.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;
series2.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;

chartControl1.SeriesTemplate.ArgumentDataMember = convertDt.Columns0.ColumnName; // X축 설정
chartControl1.SeriesTemplate.ValueScaleType = ScaleType.Numerical; // 값을 표시할때 숫자형식으로 표시
chartControl1.SeriesTemplate.ValueDataMembers.AddRange(new string[] { "매입거래조회년월별건수", "매입거래조회년월별거래금액", "매출거래조회년월별건수", "매출거래조회년월별거래금액" });

((LineSeriesView)series1.View).MarkerVisibility = DevExpress.Utils.DefaultBoolean.True;
((LineSeriesView)series1.View).LineMarkerOptions.Kind = MarkerKind.Triangle; //값표시때 사용할 모양설정
((LineSeriesView)series1.View).LineStyle.DashStyle = DashStyle.Dash;

((LineSeriesView)series2.View).MarkerVisibility = DevExpress.Utils.DefaultBoolean.True;
((LineSeriesView)series2.View).LineMarkerOptions.Kind = MarkerKind.Triangle;
((LineSeriesView)series2.View).LineStyle.DashStyle = DashStyle.Dash;

((XYDiagram)chartControl1.Diagram).EnableAxisXZooming = true; //월별로 나타나기 위한 설정
((XYDiagram)chartControl1.Diagram).AxisX.DateTimeScaleOptions.GridAlignment = DateTimeGridAlignment.Month;
((XYDiagram)chartControl1.Diagram).AxisX.DateTimeScaleOptions.MeasureUnit = DateTimeMeasureUnit.Month;

chartControl1.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True; //우측 상단에 어떤 라인이지 표시여부

월별 값으로 보여야하기에 데이터 가공하기
private DataTable FnConvertNumberic(DataTable dtResult) {
//새로 만들 테이블
DataTable returnDt = new DataTable();
returnDt.Columns.Add("매입거래조회년월", typeof(DateTime)); //날짜형식으로 변경
returnDt.Columns.Add("매입거래조회년월별건수", typeof(Int32)); //숫자형식
returnDt.Columns.Add("매입거래조회년월별거래금액", typeof(Int32));
returnDt.Columns.Add("매출거래조회년월별건수", typeof(Int32));
returnDt.Columns.Add("매출거래조회년월별거래금액", typeof(Int32));

DataRow dataRow;
if (dtResult != null) {
//입력 받은 테이블
foreach (DataRow item in dtResult.Rows) {
dataRow = returnDt.NewRow();
dataRow["매입거래조회년월"] = Convert.ToDateTime(item["매입거래조회년월"].ToString()+ "/01"); // yyyy/MM 형식을 날짜형식으로 변경하기 위해서 /01을 덧붙여 월의 01일로 변경
dataRow["매입거래조회년월별건수"] = Convert.ToInt32(item["매입거래조회년월별건수"].ToString());
dataRow["매입거래조회년월별거래금액"] = Convert.ToInt32(item["매입거래조회년월별거래금액"].ToString());
dataRow["매출거래조회년월별건수"] = Convert.ToInt32(item["매출거래조회년월별건수"].ToString());
dataRow["매출거래조회년월별거래금액"] = Convert.ToInt32(item["매출거래조회년월별거래금액"].ToString());
returnDt.Rows.Add(dataRow);
}
}
return returnDt;
}
  • 파이차트 전체 소스
    chartControl2.Series.Clear(); //파이차트 안의 라인 모두 제거

chartControl2.DataSource = FnMakeData(pieDt); //차트와 데이터 매핑
int iIndex = chartControl2.Series.Add("", ViewType.Pie); //파이차트로 설정
chartControl2.Series[iIndex].LegendTextPattern = "{A}"; //표시 여부

for (int i = 0; i < tempPieDt.Rows.Count - 1; i++){

SeriesPoint pt = new SeriesPoint(tempPieDt.Rows[i]["사업자명"].ToString(), Convert.ToInt32(tempPieDt.Rows[i]["매입건수"]));
chartControl2.Series[iIndex].Points.Add(pt);
}

private DataTable FnMakeData(DataTable dtResult) {
DataTable returnDt = new DataTable();
returnDt.Columns.Add("순위", typeof(String));
returnDt.Columns.Add("사업자명", typeof(String));
returnDt.Columns.Add("매입건수", typeof(Int32));
returnDt.Columns.Add("매출건수", typeof(Int32));
returnDt.Columns.Add("매입금액", typeof(Int32));
returnDt.Columns.Add("매출금액", typeof(Int32));

DataRow dataRow;
for (int i = 0; i < dtResult.Rows.Count; i++) {
dataRow = returnDt.NewRow();
dataRow["순위"] = dtResult.Rows[i]["순위"].ToString();
dataRow["사업자명"] = dtResult.Rows[i]["사업자명"].ToString() ;
dataRow["매입건수"] = Convert.ToInt32(dtResult.Rows[i]["매입건수"].ToString()) ;
dataRow["매출건수"] = Convert.ToInt32(dtResult.Rows[i]["매출건수"].ToString());
dataRow["매입금액"] = Convert.ToInt32(dtResult.Rows[i]["매입금액"].ToString());
dataRow["매출금액"] = Convert.ToInt32(dtResult.Rows[i]["매출금액"].ToString());
returnDt.Rows.Add(dataRow);
}
return returnDt;
}