User Tools

Site Tools


enhancementgridperformanceb

그리드 셀에 성능저하 없이 링크걸기

보통 그리드 셀에 링크를 걸때 개발툴의 레포트 > 연결을 이용합니다.

그런데 이 방법의 링크가 그리드 렌더링 속도에 영향을 준다는것을 테스트 중 확인할 수 있었습니다.

연결에서 입력한 표현식과 연결 파라메터는 최종적으로 소스에서 보면 링크가 걸린 각 셀마다 아래와 같이 showReport() 또는 showPopReport() 함수를 이용하여 추가됩니다.

<a class="link" href="javascript:showPopupReportWithOptions('TGS-1102', 'YYMMDD=2012-10-04,VIEW_FLAG=1,BUMUN=DP01,BONBU=SUMME, 
BPU=SUMME,SALES_MAN=SUMME,EGB=SUMME,UNIT=1000000,PATH= 121-1.매출달성율(브랜드/영업조직/영업사원/매장) - 신사캐주얼부문',
'frameTitle=조직별 매출 달성율-매장팝업,width=100%,height=100%');">신사캐쥬얼부문</a>

이렇게 했을때 정확인 원인은 모르겠지만 그리드 렌더링 속도가 크게 늘어납니다.(서버에서 처리하고 완성해야할 소스내용이 크게 늘어났기 때문인것 같습니다.) (1000셀정도의 그리드에서 모든 셀에 링크가 걸린다고 했을때 링크를 걸지않았을 때에 비해 최대 2~3초 가량 늦어짐을 확인했습니다.)

이 부분은 그리드 이벤트 속성으로 링크를 걸어 렌더링 속도를 향상시킬 수 있습니다.

1. 레포트/kpi 스크립트 또는 .kona 아래 스크립트에 링크 함수 작성

function adslink(rId,cInd,grid){
	var part_cd = grid.cells(rId, 2).getValue();  // 각 셀에서 파라메터로 넘길 값을 저장함.
	var dm_cd = grid.cells(rId, 3).getValue();
	var stor_cd = grid.cells(rId, 4).getValue();
	var sDay = getSearchComponentValue('YMD_CAL');
	var compDay = getSearchComponentValue('CMPR_CAL');
	
	if(cInd>4) {
		showReport('SCK_ADS_R_02','YMD_CAL='+sDay+',CMPR_CAL='+compDay+',PART='+part_cd+',DM='+dm_cd+',STOR='+stor_cd+'','M2850');
	}
}

2. KPI속성 > 그리드 이벤트 > onRowSelect에서 함수 호출

adslink(rId,cInd,elem.grid);
enhancementgridperformanceb.txt · Last modified: 2012/12/03 09:24 by lakystars