728x90
1. Grid Design
1-1. 조회용 View외에 Excel용 View를 추가로 만든다.
1-2. Excel용 View에서 suppress를 제거하고, 코드업로드를 위한 칼럼을 추가한다.
2. 엑셀다운로드
2-1. 엑셀다운로드 전, format(view)을 excel용으로 변경한다.
2-2. 엑셀다운로드를 실행한다.
2-3. format(view)을 조회용으로 되돌린다.
/* 예제 */
this.fExcelDownload = function()
{
switch(this.grd_dvsnPfls.formatid)
{
case "asmpView" :
this.grd_dvsnPfls.set_formatid("asmpExcel");
this.ef_exportexcel(this.grd_dvsnPfls, "재단실적_재료");
this.grd_dvsnPfls.set_formatid("asmpView");
break;
case "default" :
default :
this.grd_dvsnPfls.set_formatid("excel");
this.ef_exportexcel(this.grd_dvsnPfls, "재단실적_재료");
this.grd_dvsnPfls.set_formatid("default");
break;
}
}
3. 엑셀업로드
this.fExcelUpload = function()
{
var sSheet = "";
this.vo_import.clearData();
this.gf_importexcel(this, sSheet, "vo_import");
}
4. 엑셀업로드 후 처리
4-1. 엑셀업로드를 받은 Dataset과 조회 Dataset의 Mapping을 정리한다.
4-2. Mapping 된 칼럼은 copyRow하고, Mapping 되지 않은 칼럼은 setColumn으로 구현한다.
this.fExcelImportEnd = function(sId, sArg1)
{
var colMap = [];
switch(this.grd_dvsnPfls.formatid)
{
case "asmpView" :
colMap.push("dvsnCd=Column0");
colMap.push("titleHead=Column1");
colMap.push("titleMid=Column2");
colMap.push("preYearAmt=Column3");
colMap.push("rate1=Column4");
colMap.push("prePrdMmAmt=Column5");
colMap.push("rate2=Column6");
colMap.push("bdgtYyAmt=Column7");
colMap.push("rate3=Column8");
colMap.push("bdgtMmAmt=Column9");
colMap.push("rate4=Column10");
colMap.push("mmAmt=Column11");
colMap.push("rate5=Column12");
colMap.push("diff1=Column13");
colMap.push("rate6=Column14");
colMap.push("bdgtPerMmAmt=Column15");
colMap.push("rate7=Column16");
colMap.push("perMmAmt=Column17");
colMap.push("rate8=Column18");
colMap.push("nxtQrtrAsmp=Column19");
colMap.push("nxtQrtrAsmpRate=Column20");
colMap.push("perMmSum=Column21");
colMap.push("perMmSumRate=Column22");
colMap.push("diff2=Column23");
colMap.push("planRateAcmpRate=Column24");
colMap.push("yyDiffAmt=Column25");
colMap.push("yyAcmpRate=Column26");
colMap.push("pvyrRateIndcRate=Column27");
colMap.push("yearRateAcmpRate=Column28");
colMap.push("rmrk=Column29");
break;
case "default" :
default :
colMap.push("dvsnCd=Column0");
colMap.push("titleHead=Column1");
colMap.push("titleMid=Column2");
colMap.push("preYearAmt=Column3");
colMap.push("rate1=Column4");
colMap.push("prePrdMmAmt=Column5");
colMap.push("rate2=Column6");
colMap.push("bdgtYyAmt=Column7");
colMap.push("rate3=Column8");
colMap.push("bdgtMmAmt=Column9");
colMap.push("rate4=Column10");
colMap.push("mmAmt=Column11");
colMap.push("rate5=Column12");
colMap.push("diff1=Column13");
colMap.push("rate6=Column14");
colMap.push("bdgtPerMmAmt=Column15");
colMap.push("rate7=Column16");
colMap.push("perMmAmt=Column17");
colMap.push("rate8=Column18");
colMap.push("diff2=Column19");
colMap.push("planRateAcmpRate=Column20");
colMap.push("pvyrRateIndcRate=Column21");
colMap.push("yearRateAcmpRate=Column22");
colMap.push("rmrk=Column23");
break;
}
this.vo_resultData2.set_enableevent(false);
try
{
this.vo_resultData2.clearData();
for (var idx=2; idx<this.vo_import.getRowCount(); idx++)
{
var nRow = this.vo_resultData2.addRow();
this.vo_resultData2.copyRow(nRow, this.vo_import, idx, colMap.join(","));
// [TODO:조충묵] 추가구현 필요
this.vo_resultData2.setColumn(nRow, "ivmtOrgzDvsnCd", "");
this.vo_resultData2.setColumn(nRow, "acrsDvsnCd", "");
this.vo_resultData2.setColumn(nRow, "stddYm", "");
}
}
finally
{
this.vo_resultData2.set_enableevent(true);
}
}
'JAVA&Eclipse&Nexa' 카테고리의 다른 글
제어문과 분기문 (0) | 2020.06.04 |
---|---|
이클립스 주석 설정/해제 (0) | 2020.05.26 |
MData index 처리 (0) | 2020.05.14 |
mybatis foreach (0) | 2020.05.12 |
이클립스 범위설정(Toggle Block Selection) (0) | 2020.05.06 |