/*---------------------------------------------------------------------------------------------- * 설명 : 필수값 체크 * 파라미터 : pContainer : (필수)필수값 체크를 할 대상을 포함하는 Container Object Array. * pSetting : (선택) * moveFocus : (선택), true(기본)-값이 없는 element로 focus 이동, false : focus 이동 않함. popupAlert : (선택) 필수값없을시 alert 메시지를 popup시킬지 여부. true : (기본) popup 함. false : popup 않함. * 리턴값 : pResult : successYn : true : 필수값이 모두 입력됐을경우, false : 필수값이 모두 입력되지 않았을경우. message : check 결과 메시지. 필수값 오류시 오류 내용 -----------------------------------------------------------------------------------------------*/ this.gf_ErpCheckMandatory = function(pContainer, pSetting) { var bPopupAlert = true; try { bPopupAlert = pSetting.popupAlert; } catch(e) {}; var oResult = { successYn : true, message : "정상" }; if( pContainer instanceof nexacro.Div ) { var aTargetList = document.getElementById(pContainer._unique_id).querySelectorAll(".essential"); for( var idx = 0; idx < aTargetList.length; idx++) { try{ if(this.gf_IsNull(nexacro._findComponentForId(aTargetList[idx].id).value)) { oResult.successYn = false; oResult.message = "필수값이 없습니다. ["+ aTargetList[idx].title+"]"; if(bPopupAlert){ this.gf_Alert(this,oResult.message); }; nexacro._findComponentForId(aTargetList[idx].id).setFocus(); return oResult; }; } catch(e) {}; }; } else if( pContainer instanceof nexacro.Grid ) { var aMandatoryCols = []; for( var idx = 0; idx < pContainer._formats.default._headcells.length ; idx++) { if(pContainer._formats.default._headcells[idx].cssclass._value == "essential") { aMandatoryCols.push(pContainer._formats.default._headcells[idx]._col); }; }; for( var nRow = 0; nRow < pContainer.bindDS.rowcount; nRow++ ) { for( var idx = 0; idx < aMandatoryCols.length; idx++ ) { var nColIdx = aMandatoryCols[idx]; var sColId = pContainer._formats.default._bodycells[nColIdx].text._bindexpr; var sText = ""; if( !this.gf_IsNull(sColId) && this.gf_IsNull(pContainer.bindDS.getColumn(nRow,sColId)) ) { oResult.successYn = false; sText = this.gf_Nvl(pContainer._formats.default._headcells[nColIdx].tooltiptext._value, pContainer._formats.default._headcells[nColIdx].text._value); oResult.message = "필수값이 없습니다. ["+ sText+"("+(nRow+1)+"행)]"; if(bPopupAlert){ this.gf_Alert(this,oResult.message); }; return oResult; }; }; }; }; return oResult; };
사용예) oResult = this.gf_ErpCheckMandatory(this.tab_main.tap_reg.form.div_base, {popupAlert:false}); if(!oResult.successYn) { return oResult; };