nexacro 필수값 체크

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

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다