[넥사크로] 그리드 전화번호 포맷 설정
💠 의도
그리드에 바인딩 되어 있는 데이터가 아래와 같이 String 형태의 숫자일 때
가독성을 높히기 위해 - 로 구분하여 전화번호 포맷을 주고자 한다


주의해야할 점은 다양한 전화번호 형태에 따라 포맷을 주어야한다는 것
1. 휴대폰 번호일 경우, 000-0000-0000 또는 000-000-0000
2. 사무실/ 집 번호일 경우, 00-0000-0000 또는 00-000-0000 또는 000-000-0000 또는 000-0000-0000
즉,
000-000-0000
000-0000-0000
00-000-0000
00-0000-0000
이렇게 4가지 종류의 포맷 모두 염두하여 설정해주어야한다
💠 방법
원하는 그리드의 바디 셀을 속성값을 다음과 같이 설정해준다
displaytype을 mask로 선택

그리고 한~~~~참 내리다보면 CellMaskEdit라는 영역에
maskeditformat이라는 곳이 있다
이 란에 Set Expression 버튼을 눌러서 삼항연산자를 작성해줄건데
이 전에 maskedittype에 값을 string으로 설정해준다


dataset.getColumn(currow, "PBT_PHONE").length >= 10 ? (dataset.getColumn(currow, "PBT_PHONE").substring(0,2) == '02' ? '@@-@@@@-@@@@' : (dataset.getColumn(currow, "PBT_PHONE").length == 11?'@@@-@@@@-@@@@':'@@@-@@@-@@@@' )) : '@@-@@@-@@@@'
위와 같은 expression 코드를 넣어준다

그러면 포맷의 종류에 상관없이 맞는 포맷으로 출력되는 것을 확인할 수 있다
코드에 대한 설명은 이렇다
원래 포맷 값을 줄때 @@-@@@@-@@@@ 이런식으로 골뱅이를 활용해서 포맷을 설정하는 것이 일반적인데
우리는 경우의 수가 4가지가 존재하고 그에 따라 포맷을 설정해줘야 하기 때문에 삼항연산자를 활용했다
삼항연산자를 작성하기 힘들땐
if else문으로 풀어서 보는게 직빵이다
삼항연산자를 if else로 풀어보았다
//데이터셋의 컬럼명이 PHONE이라고 가정
if(dataset.getColumn(currow, "PHONE").length >= 10){ //전화번호의 길이가 10과 같거나 크면
if(dataset.getColumn(currow, "PHONE").substring(0,2) == '02'){ //전화번호가 02로 시작하면
'@@-@@@@-@@@@' //4번 포맷
}else{
if(dataset.getColumn(currow, "PHONE").length == 11){ //전화번호의 길이가 11이면
'@@@-@@@@-@@@@' //2번 포맷
}else{ //전화번호의 길이가 11이 아니면
'@@@-@@@-@@@@' //1번 포맷
}
}
}else{ // 전화번호의 길이가 10보다 작으면
'@@-@@@-@@@@' //3번 포맷
}
😋 포맷 경우의수
번호
|
형태
|
자리수
|
1
|
000-000-0000
|
10
|
2
|
000-0000-0000
|
11
|
3
|
00-000-0000
|
9
|
4
|
00-0000-0000
|
10
|
끝