===== Excel Upload =====
===== Upload Action ====
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);
<%-- 업로드 --%>
<%--
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 );
==== 사번을 모아서 성명처리 ====
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);
}
}
}