56.Number

Edit

56.1숫자 범위 체크하기

입력폼을 통해 입력받은 대부분의 값은 모두 문자로 처리됩니다. 입력된 값이 숫자인지, 날짜인지 시스템에서는 알 수 없습니다. 사용자가 숫자를 입력하더라도 이를 비교하거나 연산 처리하기 위해서는 명확하게 숫자라는 것을 지정해주어야 하는 경우가 있습니다.

56.1.1예제

입력된 두 값(FROM, TO) 사이에 체크하기 원하는 값(INPUT)이 있는지 확인하고 있으면 true, 없으면 false를 반환합니다.

sample_number_01.xfdl

56.1.2예제에서 사용한 핵심 기능

Number

Number 오브젝트를 생성하거나 숫자형으로 형변환을 하기 위해 사용합니다. 도움말에서는 new 연산자를 사용해 명시적으로 Number 오브젝트를 생성하는 것은 권장하지 않고 있습니다. 예제에서는 문자열로 전달된 숫자값의 형변환을 위해 사용합니다.

56.1.3예제 구현 방법

1

Form 화면 구성하기

Static 컴포넌트와 Edit 컴포넌트, Button 컴포넌트를 배치합니다.

2

Button 컴포넌트 클릭 이벤트 함수 작성하기

Button 컴포넌트 클릭 시 실행할 이벤트 함수를 작성합니다. fn_isNumArea 함수에서 입력값을 검증하고 검증된 결과값을 Edit 컴포넌트에 표시합니다.

this.Button00_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
    var nRtn = this.fn_isNumArea(this.Edit02.value, this.Edit00.value, this.Edit01.value);
    this.Edit03.set_value(nRtn);
};

3

fn_isNumArea 함수 작성하기

입력된 문자를 전달받아 숫자로 변환합니다(Number). 변환된 숫자값을 비교해 반환값을 결정합니다.

this.fn_isNumArea = function(sValue, sArea1, sArea2)
{   
    var nValue = Number(sValue);
    var nArea1 = Number(sArea1);
    var nArea2 = Number(sArea2);
    
    if (nArea1 > nArea2) 
    {
        return false;
    }
    
    if (nValue >= nArea1 && nValue <= nArea2) 
    {
        return true;
    } 
    else 
    {
        return false;        
    }
}

사용할 값이 정수인 경우에는 parseInt를 사용하더라도 같은 기능을 처리할 수 있습니다. fn_isNumArea 함수의 첫번째 스크립트는 아래와 같이 변경할 수 있습니다.

this.fn_isNumArea = function(sValue, sArea1, sArea2)
{   
    var nValue = parseInt(sValue);
    var nArea1 = parseInt(sArea1);
    var nArea2 = parseInt(sArea2);
    ...

4

QuickView로 확인하기

QuickView(Ctrl + F6)로 실행한 후 값을 입력해 확인해봅니다.