<h5:Action name="upload" type="SCRIPT" > isExcelUpload = true; let dtm_hol_plan_id = getDataGridColumnValue("mySheet1", "dtm_hol_plan_id"); var params = {Mode:"HeaderMatch",ExtendParam:"auto_value_column=dtm_hol_plan_emp_id" + ",dtm_hol_plan_id=" + dtm_hol_plan_id}; mySheet2.LoadExcel(params); </h5:Action>
<%-- 업로드 --%> <h5:Action name="upload" type="SCRIPT"> <%-- ExtendParam value set 추가하는 컬럼들은 ibsheet에 꼭 존재 해야하는 컬럼임. columns list 설명 auto_value_column : pk컬럼 시퀀스 치환을 위한 자동증감값 입력해주는 용도임. company_cd : org_cd로 org_id를 찾아줄때 사용할 컬럼임. 업로드시 필요한 컬럼이 있을경우 ,컬럼명=값 을 추가해주면 됩니다. ** ExtendParam에 사용한 컬럼들은 헤더의 라벨도 동일하게 적용해주셔야합니다. ex)sac_temp_id 컬럼이 pk컬럼임. 또한 ibsheet에 존재하는 컬럼임. company_cd 컬럼은 org_id를 찾아주기위한 컬럼. --%> var params = { Mode:"HeaderMatch", ExtendParam:"auto_value_column=phm_lang_est_id,est_grd_cd=" + "10" }; mySheet1.LoadExcel( params ); </h5:Action>
pee0330.jsp
function f_replace_emp(emps, emp){ emps.set(emp.emp_no, $.extend(emps.get(emp.emp_no), emp) ); } function f_add_emp(emps, emp_no){ if( emp_no == undefined || emp_no.length == 0 ) return; if( !emps.has(emp_no) ) emps.set( emp_no, {emp_no:emp_no} ); } function f_get_emp_no(emps) { let emp_nos = []; emps.forEach( function(emp){ emp_nos.push(emp.emp_no); } ); return emp_nos; } mySheet2_OnLoadExcel = function() { let sheet = mySheet2; let headerrow = sheet.HeaderRows(); let selRow = -1; let fail_list = []; let myEmps = new Map() // 사번을 모으자 for( let i = 0; i != sheet.GetTotalRows(); ++i ) { selRow = i + headerrow; f_add_emp(myEmps, sheet.GetCellValue( selRow, "emp_no" ) ); f_add_emp(myEmps, sheet.GetCellValue( selRow, "appr_emp_no" ) ); } let empNos = f_get_emp_no(myEmps).join(); var requestObject = { "HEADER":headerObject, "BODY":{ "ME_PEE0330_05":[ { "company_cd":getCompanyCd(), "locale_cd":getLocaleCode(), "emp_nos":empNos } ] } }; execute( "checkEmpNo", "PEE0330_00_R03", requestObject, function( actionType, obj ) { var data = obj[ "ME_PEE0330_06" ]; if( data != undefined && data != null && data != "" ) { data.forEach(function(rEmp){ f_replace_emp(myEmps, { emp_id: rEmp.emp_id, emp_no: rEmp.emp_no, emp_nm: rEmp.emp_nm, pos_nm: rEmp.pos_nm, org_nm1: rEmp.org_nm1, org_nm2: rEmp.org_nm2, org_nm3: rEmp.org_nm3, duty_nm: rEmp.duty_nm }); }); } else { alert("ERROR Load EMP_NO!!"); } }, function( actionType, obj ) { alert("ERROR Load EMP_NO"); }, false ); // 사번에 대한 정보를 얻어 왔음 //console.log(myEmps); // 사원정보를 채우자 console.log(myEmps); for( let i = 0; i != sheet.GetTotalRows(); ++i ) { selRow = i + headerrow; let emp = myEmps.get(sheet.GetCellValue( selRow, "emp_no" )); if( emp != undefined ) { sheet.SetCellValue( selRow, "emp_id", emp.emp_id); sheet.SetCellValue( selRow, "emp_nm", emp.emp_nm); sheet.SetCellValue( selRow, "pos_nm", emp.pos_nm); sheet.SetCellValue( selRow, "org_nm1", emp.org_nm1); sheet.SetCellValue( selRow, "org_nm2", emp.org_nm2); sheet.SetCellValue( selRow, "org_nm3", emp.org_nm3); sheet.SetCellValue( selRow, "duty_nm", emp.duty_nm); } emp = myEmps.get(sheet.GetCellValue( selRow, "appr_emp_no" )); if( emp != undefined ) { sheet.SetCellValue( selRow, "appr_emp_id", emp.emp_id); sheet.SetCellValue( selRow, "appr_emp_nm", emp.emp_nm); } } }