Using a CustomGridLine Class of guidelines to add

 

Chart FX 7 에서 제공하고 있는 CustomGridLine 를 통해 가이드 라인을 그릴 수 있다. 해당 가이드라인은 범례(Legend)에 추가 되지 않으므로 참조되기 바란다.

 

 

1. 샘플소스

 

 

    ChartServer sampleChart = new ChartServer(pageContext,request,response);

    sampleChart.getData().set(0, 0, 120.1);
    sampleChart.getData().set(0, 1, 160.2);
    sampleChart.getData().set(0, 2, 750.9);
    sampleChart.getData().set(0, 3, 110.4);

    // Y축 자릿수구분
    sampleChart.getAxisY().getLabelsFormat().setCustomFormat("###,###");

    // PointLabel
    sampleChart.getAllSeries().getPointLabels().setFormat("%v건");

    // Legend
    sampleChart.getLegendBox().setVisible(false); // 활성화 여부

    // 챠트 여백조절 및 사이즈
    sampleChart.getPlotAreaMargin().setTop(60);
    sampleChart.getPlotAreaMargin().setLeft(90);
    sampleChart.getPlotAreaMargin().setRight(90);
    sampleChart.getPlotAreaMargin().setBottom(80);
    sampleChart.setWidth(480);
    sampleChart.setHeight(386);

    // 기타설정
    sampleChart.getImageSettings().setQuality(100); // 이미지 퀄리티
    sampleChart.getImageSettings().setInteractive(false); // 상호작용 해제

    // 포인트 별 색상
    sampleChart.getSeries().get(0).setColor(new java.awt.Color(237, 132, 132));

    sampleChart.getAxisX().getGrids().getMajor().setVisible(false);
    sampleChart.getAxisY().getGrids().getMajor().setStyle(DashStyle.SOLID);

    // Chart style : LINES
    sampleChart.setAxesStyle(AxesStyle.MATH);
    sampleChart.getAllSeries().getLine().setWidth((short) 2.4); // 라인챠트 선 두께
    sampleChart.getAllSeries().getLine().setStyle(DashStyle.DASH);
    sampleChart.getAllSeries().setMarkerSize((short) 4); // Marker 사이즈
    sampleChart.getAllSeries().setMarkerShape(MarkerShape.RECT); // Marker 종류
    sampleChart.getAllSeries().setFillMode(FillMode.SOLID); // 채움타입

    sampleChart.getSeries().get(0).setGallery(Gallery.LINES);

 

    // 그리드라인 1
    CustomGridLine custom1 = new CustomGridLine();
    custom1.setValue(Double.parseDouble("590"));
    custom1.setColor(java.awt.Color.GREEN);
    custom1.setWidth(2);
    custom1.setStyle(DashStyle.DOT);
    custom1.setText(" 상한");
    custom1.setFont(new java.awt.Font("맑은 고딕",java.awt.Font.TRUETYPE_FONT, 12));
    custom1.setTextColor(java.awt.Color.BLACK);
    custom1.setOutsideText(true);
    custom1.setAlignment(StringAlignment.FAR);
    custom1.setLineAlignment(StringAlignment.CENTER);
    sampleChart.getAxisY().getCustomGridLines().add(custom1);

 

    // 그리드라인 2
    CustomGridLine custom2 = new CustomGridLine();
    custom2.setValue(Double.parseDouble("220"));
    custom2.setWidth(2);
    custom2.setColor(java.awt.Color.GREEN);
    custom2.setStyle(DashStyle.DOT);
    custom2.setText(" 하한");
    custom2.setFont(new java.awt.Font("맑은 고딕",java.awt.Font.TRUETYPE_FONT, 11));
    custom2.setTextColor(java.awt.Color.BLACK);
    custom2.setOutsideText(true);
    custom2.setAlignment(StringAlignment.FAR);
    custom2.setLineAlignment(StringAlignment.CENTER);
    sampleChart.getAxisY().getCustomGridLines().add(custom2);

    // 렌더링
    sampleChart.renderControl();

 

 

 

2. 결과

 

 

감사합니다 :)

 

Posted by 리트모스
:

Using a series of guidelines to add

 

시리즈를 이용하여 가이드 라인을 추가하겠다. Chart FX에서 제공하는 가이드라인과는 달리 시리즈를 이용하게 되면 범례(Legend)에 표시 되므로 유의하도록 한다. 기재된 값은 임의의 값이므로 참조로만 확인토록 한다.

 

 

1. 샘플소스

 

 

    ChartServer sampleChart = new ChartServer(pageContext,request,response);

 

    sampleChart.getData().set(0, 0, 430.2);
    sampleChart.getData().set(0, 1, 340.3);
    sampleChart.getData().set(0, 2, 670.5);
    sampleChart.getData().set(0, 3, 320.2);
    sampleChart.getData().set(1, 0, 560.6);
    sampleChart.getData().set(1, 1, 740.4);
    sampleChart.getData().set(1, 2, 120.2);
    sampleChart.getData().set(1, 3, 10.1);
    sampleChart.getData().set(2, 0, 450.6);
    sampleChart.getData().set(2, 1, 60.3);
    sampleChart.getData().set(2, 2, 560.2);
    sampleChart.getData().set(2, 3, 780.2);
    sampleChart.getData().set(3, 0, 120.1);
    sampleChart.getData().set(3, 1, 160.2);
    sampleChart.getData().set(3, 2, 750.9);
    sampleChart.getData().set(3, 3, 110.4);
    sampleChart.getData().set(4, 0, 1100.0);
    sampleChart.getData().set(4, 1, 1100.0);
    sampleChart.getData().set(4, 2, 1100.0);
    sampleChart.getData().set(4, 3, 1100.0);

 

    // Y축 자릿수구분
    sampleChart.getAxisY().getLabelsFormat().setCustomFormat("###,###");

    // PointLabel
    sampleChart.getAllSeries().getPointLabels().setFormat("%v건");

 

    // Legend
    sampleChart.getLegendBox().setVisible(false); // 활성화 여부

 

    // 챠트 여백조절 및 사이즈
    sampleChart.getPlotAreaMargin().setTop(60);
    sampleChart.getPlotAreaMargin().setLeft(90);
    sampleChart.getPlotAreaMargin().setRight(90);
    sampleChart.getPlotAreaMargin().setBottom(80);
    sampleChart.setWidth(480);
    sampleChart.setHeight(386);

    // 기타설정
    sampleChart.getImageSettings().setQuality(100); // 이미지 퀄리티
    sampleChart.getImageSettings().setInteractive(false); // 상호작용 해제

    // 포인트 별 색상
    sampleChart.getSeries().get(0).setColor(new java.awt.Color(237, 132, 132));
    sampleChart.getSeries().get(1).setColor(new java.awt.Color(115, 150, 243));
    sampleChart.getSeries().get(2).setColor(new java.awt.Color(199, 144, 220));
    sampleChart.getSeries().get(3).setColor(new java.awt.Color(175, 223, 132));
    sampleChart.getSeries().get(4).setColor(new java.awt.Color(217, 75, 75));

 

    // 그리드 스타일 변경

    sampleChart.getAxisX().getGrids().getMajor().setVisible(false);
    sampleChart.getAxisY().getGrids().getMajor().setStyle(DashStyle.SOLID);

 

    // Chart style : LINES
    sampleChart.setAxesStyle(AxesStyle.MATH);
    sampleChart.getAllSeries().getLine().setWidth((short) 2.4); // 라인 두께
    sampleChart.getAllSeries().getLine().setStyle(DashStyle.DASH);
    sampleChart.getAllSeries().setMarkerSize((short) 4); // Marker 사이즈
    sampleChart.getAllSeries().setMarkerShape(MarkerShape.RECT); // Marker 종류
    sampleChart.getAllSeries().setFillMode(FillMode.SOLID); // 채움타입

 

    // 시리즈별 갤러리 스타일

    sampleChart.getSeries().get(0).setGallery(Gallery.BAR);
    sampleChart.getSeries().get(1).setGallery(Gallery.BAR);
    sampleChart.getSeries().get(2).setGallery(Gallery.BAR);
    sampleChart.getSeries().get(3).setGallery(Gallery.LINES);
    sampleChart.getSeries().get(4).setGallery(Gallery.LINES);

 

    // Stacked 볼륨

    sampleChart.getSeries().get(0).setVolume((short) 32);
    sampleChart.getSeries().get(1).setVolume((short) 32);
    sampleChart.getSeries().get(2).setVolume((short) 32);

   

    // Stacked 여부
    sampleChart.getSeries().get(0).setStacked(true);
    sampleChart.getSeries().get(1).setStacked(true);
    sampleChart.getSeries().get(2).setStacked(true);

 

    // 시리즈를 이용한 가이드라인

    sampleChart.getSeries().get(4).getLine().setWidth((short) 2.4);
    sampleChart.getSeries().get(4).getLine().setStyle(DashStyle.DOT);
    sampleChart.getSeries().get(4).setMarkerShape(MarkerShape.NONE);

 

    // 시리즈를 이용한 가이드라인 라벨 설정
    sampleChart.getPoints().get(4, 3).getPointLabels().setVisible(true);

    sampleChart.getPoints().get(4, 3).getPointLabels().setAlignment(StringAlignment.NEAR);
    sampleChart.getPoints().get(4, 3).getPointLabels().setLineAlignment(StringAlignment.CENTER);

    // PointLabel : 라벨포인트 타입 설정
    sampleChart.getSeries().get(4).getPointLabels().setFormat(" 최소 %v건 ");

 

    // 렌더링
    sampleChart.renderControl();

 

 

 

2. 결과

 

 

감사합니다 :)

 

Posted by 리트모스
:

Chart FX 7

 

포인트별 링크에 특정 값을 대입 시켜 다양한 값의 제어가 가능하다.

아래 소스는 특정 포인트에 키값을 대입해 함수를 호출하여 페이지 전환을 일으킨다.

 

 

1. 소스코드

 

// Servlet : LABEL & VALUE

for ( int i = 0; i < gridList.size(); i++ ) {

    // 라벨대입

    chart.getAxisX().getLabels().set(i, (gridList.get(i).get("LABEL").toString()));

 

    // 대입

    double data1 = Double.parseDouble((gridList.get(i).get("SUM").toString()));

    chart.getData().set(0, i, data1);

   

    // 포인트별 Link

    chart.getPoints().get(i).getLink().setUrl("javascript:fn_callByFunc('%S',

                 '%N','%v','%l','" + gridList.get(i).get("KEY").toString() + "')");

}

 

// Javascript : call Function

function fn_callByFunc(series, point, value, label, keyValue) {

 

    .

    .

    .

    

    document.hiddenFrm.action = "/…/…";

    document.hiddenFrm.submit();

}

 

 

2. 상세설명

// 전체포인트 LINK

chart.getAllSeries().getLink().setUrl("javascript:fn_callByValue('%S', '%N', '%v', '%l')");

 

일반적으로 위와 같이 전체시리즈의 포인트에 자바스크립트 함수를 호출하여 사용 가능하다. 하지만 챠트의 포인트를 클릭하여 로직을 구현하여야 할 경우 원하는 row값을 호출 할 수 없기 때문에 아래와 같이 루프문 내에 특정 값을 내재 시킴으로써 각 포인트 마다 자신이 원하는 로직을 구현할 수 있다.

 

// 포인트별 Link

chart.getPoints().get(i).getLink().setUrl("javascript:fn_callByFunc('%S','%N','%v','%l','" + gridList.get(i).get("KEY").toString() + "')");

 

 

 

감사합니다 :)

 

Posted by 리트모스
:

Chart FX for Java Trial Download

 

1. 사이트 접속

http://www.softwarefx.com/sfxJavaProducts/CFXforJava/trial.aspx

 

 

2. 트라이얼 사용자등록

본인의 메일 계정을 등록하여 시리얼을 받도록 한다.

 

 

3. 로그인 및 트라이얼 확인

이메일 내용을 체크하고 로그인 하도록 한다.

 

 

4. OS 체크 및 다운로드

해당되는 OS에 맞게 설치 파일을 다운로드한다.

 

 

5. 설치 및 라이센스 입력

다운로드 된 파일을 설치를 한다. 설치 시 이메일로 부여 받은 라이센스를 기입한다.

 

 

 

감사합니다 :)

Posted by 리트모스
:

CHART FX 7 for Java Server

 

1. 자바 API / 개발자 가이드
http://support.softwarefx.com/OnlineDoc/CfxJava70/

 

2. 질의응답 포럼

http://www.softwarefx.co.kr/Forums/

http://www.chartfxkorea.com/community/com_list.asp?cl_type=JQ


3. 온라인 샘플
http://demo.softwarefx.com/chartfx/aspnet/ajaxsamples/

 

 

일단 Chart FX를 시작하면서 찾아보았던 관련 URL이다. 여타 다른 사이트 들도 많았지만 전혀 도움이 안되거나 제품을 팔기 위한 브로셔 혹은 카탈로그의 역할을 하고 있었다.

 

지인의 추천으로 Chart FX를 시스템에 적용하기 시작했는데 문제는 7 버전으로 업데이트 되면서 많은 내용이 변화했었던 것이다. 실 개발되어 있던 샘플 소스가 6.5 버전이 아니던가.. 상당히 난감했다.

 

 

4. Migration Table for Chart FX for Java 6.5

http://support.softwarefx.com/OnlineDoc/CfxJava70/guide/Migration.htm

migration.pdf

 

위 링크는 1번 개발자 가이드의 Migration Table for Chart FX for Java 6.5 링크이다.

사이트에 문제가 발생했을시 위 PDF 파일을 다운로드해서 보기를 바란다.

 

개발하는 데 도움이 될만한 사이트가 있다면 댓글 바란다.

 

감사합니다 :)

Posted by 리트모스
: