넥사크로 null 체크 - negsakeulo null chekeu

/*****************************************************************************************

* 함  수  명 : gfn_validGrid()

* 설   명    : Grid의 Validation Check하는 Function

* 설   명2    : 

*- Column0:Column Text:[P[N[D]]]

*- 적용할 Column ID : Alert시 표현할 Column Text : P(필수입력), N(숫자입력), D(중복체크)

@return boolean

* 파라미터  :  @param oGrid: Grid Object

@param bAllCheck

*true : 모든 ROW 체크

*false : 데이터셋에 new/update 만 체크

*****************************************************************************************/     

gfn_validGrid = function(oGrid:Grid, bAllCheck)

{

//trace("[/lib_Validation.xjs][gfn_validGrid()] ==> [TEST_01][oGrid]"+ oGrid +"[bAllCheck]"+ bAllCheck ); 

var oDs = oGrid.getBindDataset();  

//trace("[/lib_Validation.xjs][gfn_validGrid()] ==> [TEST_01_2][[oGrid]"+ oGrid +"[bAllCheck]"+ bAllCheck +"[oDs]"+ oDs +"[oDs.name]"+ oDs.name +"[oGrid.name]"+ oGrid.name ); 

//trace("[/lib_Validation.xjs][gfn_validGrid()] ==> [TEST_01_3][oDs,_CNT]"+ oDs.getRowCount() +"[oDs.saveXML()] \n"+ oDs.saveXML() );

if(gfn_isNull(oDs)) 

{

//trace("[/lib_Validation.xjs][gfn_validGrid()] ==> [TEST_02][oDs]"+ oDs +"[oGrid.name]"+ oGrid.name ); 

gfn_alert(this, "E0001", oGrid.name);// E0001: 해당 Grid[M1]의 User Property 'validExpr'이 존재하지 않습니다.

return false;

}

if(gfn_isNull(oGrid.validExpr))

{

//trace("[/lib_Validation.xjs][gfn_validGrid()] ==> [TEST_03][oDs]"+ oDs +"[oGrid.name]"+ oGrid.name );  

gfn_alert(this, "E0002", oGrid.name);// E0002: 해당 Grid[M1]의 User Property 'validExpr'이 존재하지 않습니다.

return false;

}

if(gfn_isNull(bAllCheck))

{

bAllCheck = true;

}

var aExpr = oGrid.validExpr;

aExpr = aExpr.split(",");

//trace("[/lib_Validation.xjs][gfn_validGrid()] ==> [TEST_11][oaExpr.length]"+ aExpr.length ); 

for(var i = 0; i < aExpr.length; i++) 

{

var aChkStr = aExpr[i];

if(gfn_isNull(aChkStr)) 

{

continue;

}

aChkStr = aChkStr.split(":");

var sColId = aChkStr[0];

var sColNm = aChkStr[1];

var sChkValue = aChkStr[2];

//trace("[/lib_Validation.xjs][gfn_validGrid()] ==> [TEST_21][sColId]"+ sColId +"[sColNm]"+ sColNm +"[sChkValue]"+ sChkValue ); 

for(var j = 0; j < oDs.rowcount; j++) 

{

var sColumnSts = oDs.getRowType(j);// ROW 상태

//trace("[/lib_Validation.xjs][gfn_validGrid()] ==> [TEST_31] [j_번째]"+ j +"[oDs.rowcount]"+ oDs.rowcount +"[sColumnSts]"+ sColumnSts +"[oDs.MSG_CD]"+ oDs.getColumn(j, "MSG_CD") +"[oDs.MSG_DIV]"+ oDs.getColumn(j, "MSG_DIV") +"[oDs.MSG_CONTENT]"+ oDs.getColumn(j, "MSG_CONTENT") ); 

if(sColumnSts == "D")   // "D"; ROW_STAT_DELETE

{

//trace("[/lib_Validation.xjs][gfn_validGrid()] ==> [TEST_32][sColumnSts]"+ sColumnSts ); 

continue;

}

if(!bAllCheck) 

{

if(gfn_isNull(sColumnSts)) 

{

//trace("[/lib_Validation.xjs][gfn_validGrid()] ==> [TEST_33][sColumnSts]"+ sColumnSts ); 

continue;

}

}

var sValue = "";

if(gfn_isNull(oDs.getColumn(j, sColId))) 

{

sValue = "";

else 

{

sValue = oDs.getColumn(j, sColId).toString();

}

//trace("[/lib_Validation.xjs][gfn_validGrid()] ==> [TEST_41][sColId]"+ sChkValue.toString().indexOf("P") +"[sValue]"+ sValue ); 

if(sChkValue.toString().indexOf("P") >= 0) 

{

//trace("[/lib_Validation.xjs][gfn_validGrid()] ==> [TEST_42][sValue]"+ sValue ); 

if(gfn_isNull(sValue)) 

{

//trace("[/lib_Validation.xjs][gfn_validGrid()] ==> [TEST_43][oGrid]"+ oGrid +"[sColId]"+ sColId +"[gfn_gridColIdx(oGrid, sColId)]"+ gfn_gridColIdx(oGrid, sColId) ); 

oDs.set_rowposition(j); // 현재 Row 설정

oGrid.setCellPos(gfn_gridColIdx(oGrid, sColId));// 선택할 셀의 위치를 설정하는 메소드

oGrid.showEditor(true);

trace("[/lib_Validation.xjs][gfn_validGrid()] ==> [TEST_41][j_번째]"+ j +"[oGrid]"+ oGrid +"[sColId]"+ sColId +"[칼럼명]"+ sColNm ); 

gfn_alert(this, "W0001", sColNm);// W0001: [M1]은(는) 필수입력 항목입니다. 

return false;

}

}

if(sChkValue.toString().indexOf("N") >= 0) 

{

if(!isNumeric(sValue)) 

{

//oDs.rowposition = j;

oDs.set_rowposition(j); // 현재 Row 설정

oGrid.setCellPos(gfn_gridColIdx(oGrid, sColId));

oGrid.showEditor(true);

//gfn_alert("W0002", sColNm);// W0002: [M1]은(는) 숫자입력 항목입니다.

gfn_alert(this, "W0002", sColNm);// [M1]은(는) 숫자입력 항목입니다.

return false;

}

}

}

//trace("[/lib_Validation.xjs][gfn_validGrid()] ==> [TEST_50][sChkValue.D]"+ sChkValue.toString().indexOf("D") ); 

if(sChkValue.toString().indexOf("D") >= 0) 

{

for(var j = 0; j < oDs.getRowCount(); j++) 

{

//var sColumnSts = oDs.getColumn(j, "ROW_STS");

var sColumnSts = oDs.getRowType(j);// ROW 상태

//trace("[/lib_Validation.xjs][gfn_validGrid()] ==> [TEST_51] [j_번째]"+ j +"[oDs.rowcount]"+ oDs.rowcount +"[sColumnSts]"+ sColumnSts +"[oDs.MSG_CD]"+ oDs.getColumn(j, "MSG_CD") +"[oDs.MSG_DIV]"+ oDs.getColumn(j, "MSG_DIV") +"[oDs.MSG_CONTENT]"+ oDs.getColumn(j, "MSG_CONTENT") ); 

if(sColumnSts == "D")    // ROW_STAT_DELETE

{

continue;

}

if(!bAllCheck) 

{

if(gfn_isNull(sColumnSts)) 

{

continue;

}

}

var sValue = "";

if(gfn_isNull(oDs.getColumn(j, sColId))) 

{

sValue = "";

else 

{

sValue = oDs.getColumn(j, sColId).toString();

}

for(var k = 0; k < oDs.getRowCount(); k++) 

{

var sCmpValue = "";

if(gfn_isNull(oDs.getColumn(k, sColId))) 

{

sCmpValue = "";

else 

{

sCmpValue = oDs.getColumn(k, sColId).toString();

}

if(j == k) 

{

continue;

}

if(sValue.length > 0 && sValue == sCmpValue) 

{

//trace("[/lib_Validation.xjs][gfn_validGrid()] ==> [TEST_54][sValue]"+ sValue +"[칼럼명]"+ sColNm ); 

//oDs.rowposition = j;

oDs.set_rowposition(j); // 현재 Row 설정

oGrid.setCellPos(gfn_gridColIdx(oGrid, sColId));

oGrid.showEditor(true);

//trace("[/lib_Validation.xjs][gfn_validGrid()] ==> [TEST_55][칼럼명]"+ sColNm ); 

//gfn_alert("W0003", sColNm);// W0003: [M1]에 중복된 Data가 존재합니다.

gfn_alert(this, "W0003", sColNm);// W0003: [M1]에 중복된 Data가 존재합니다.

return false;

}

}

}

}

}

return true;

}

=============================================================================

user property 'validExpr' 이름으로 생성 

dataset Coulum ID:dataset Colum Name:P,dataset Coulum ID:dataset Colum Name:P 형태로 입력

==============================================================================

bRst = gfn_validGrid(this.grd_Sample, false);// 02. grd_detail Grid의 Validation Check  

Toplist

최신 우편물

태그