2012-02-09 18 views
1

나는 BIRT에 총 초보자이고 나는 자바 스크립트 프로 아니에요. 내 데이터베이스에서 일부 정보를 가져 와서 birt를 사용하여 일부 보고서를 작성합니다. 열에 IP 주소가 문자열로 있습니다. BIRT는 테이블에 대한 정렬 섹션을 제공하며이 표현식이 바로 있습니다.JavaScript로 BIRT에서 IP 주소를 정렬하려면 어떻게해야합니까?

if(params["sorting"].value=="startdate") 
dataSetRow["r_date_0"] 
else if(params["sorting"].value=="enddate") 
dataSetRow["r_date_1"] 
else if(params["sorting"].value=="ipaddress") 
dataSetRow["r_vchar_2"] 
else 
dataSetRow["r_vchar_3"] 

이 STARTDATE 및 ENDDATE 완벽한 작동하고 있지만,이 IP를 대상으로 올 때, 내가 '2'처럼 볼 수있는 정렬 된 보고서에 그래서, '199'다음 더 큰 문자열로 비교합니다.

나는 IP 주소를 '.' 그리고 정수로 구문 분석하고 내가 파이썬이나 자바와 함께 일하는 비교,하지만 어떻게 BIRT 환경에서 자바 스크립트와 함께이 일을 해야할지 모르겠다.

내 요구를 충족시키기 위해 표현을 수정할 수있는 방법에 대한 아이디어는 인정 될 것입니다.

답변

3

당신은 정렬이 필드를 사용할 수 있습니다 예를 들어

var addrArray = dataSetRow["r_vchar_2"].split("."); 
var num = 0; 
for (var i=0;i<addrArray.length;i++) { 
    var power = 3-i; 
    num += ((parseInt(addrArray[i])%256 * Math.pow(256,power))); 
} 
num; 

데이터 집합 당신은 그들이 정렬 할 수있는 형태로 사용자의 IP-주소를 변환 계산 된 열에서 사용, 및 표시하기위한 원래의 필드 IP 주소

관련 문제