/*----------------------------------------------------------------------------------------------
* 설명 : 필수값 체크
* 파라미터 : 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;
};