User Tools

Site Tools


chartingrid

그리드 내부에 챠트 사용하기


KPI expression

  • KPI > 속성 > 그리드 데이터 > expression에 차트를 삽입할 특정 셀에 div Tag를 정의하고 $colIndex와 $rowIndex를 이용하여 div Id를 입력하여 줍니다.
EX)
#if($colIndex!=0)
   #if($rowIndex == 1 || $rowIndex == 2)
      <div id = 'col$rowIndex$colIndex'></div>
   #else
      $value
   #end
#else
   $value
#end

스크립트

  • TOGA 스크립트 페이지에 설명되어 있는 showKPIObject 함수를 사용하여
    그리드 내부에 차트를 삽입할수 있습니다.
EX)
function chartingrid() {
        //rowIndex 수
	for (var i = 1; i <= 3; i++) {
                //colIndex 수
		for (var j = 1; j <= 6; j++) {
 
                        //div id와 생성될 chart id 변수 선언
			var colIn_Chart = 'col' + i + j + '_chart';
			var colIn_Div = 'col' + i + j;
 
			if (FusionCharts(colIn_Chart))FusionCharts(colIn_Chart).dispose();
                        //각 Row에 서로 다른 KPIObject 삽입.
			if (i == 1) {
				showKPIObject(
						colIn_Div,
						'first_KpiObject',
						'',
						'YYYY=$globalParameters.YYYY,MM=globalParameters.MM');
			} else if (i == 2) {
				showKPIObject(
						colIn_Div,
						'second_KpiObject',
						'',
						'YYYY=$globalParameters.YYYY,MM=globalParameters.MM');
			}
		}
	}
}
그리드 안에 차트를 삽입하여 그리드와 차트가 생성되고 다시 refresh를 하는 특정한 경우 colsole에
Uncaught ParameterException: #06091847 chartobject-1 Warning » A FusionChart oject with the specified id “col13_chart” already exists. Renaming it to chartobject-1
이런 형태의 에러가 납니다. 이 에러는 refresh하는 과정에서 그리드 안의 차트에 동일한 html-span 아이디가 존재하여 나는 에러입니다.
이 에러를 해결하기 위하여 스크립트에서
if (FusionCharts(colIn_Chart))FusionCharts(colIn_Chart).dispose();
FusionChart의 dispose함수를 사용하여 refresh시 차트를 삭제하고 다시 만들어 주어야 합니다.

KPI onXLE

  • KPI > 속성 > 그리드 이벤트 > onXLE에 위에서 만든 함수를 사용하여 줍니다.

예제 KPI 파일

chartingrid.txt · Last modified: 2014/04/08 14:02 by gpqzm