2011-08-02 4 views
0

자유 형식 BIRT 보고서를 작성하려고합니다. 보고서는 각 행에서 동일한 columnNames를 갖는 행으로 구성되지 않습니다.스크립팅 된 데이터 소스를 사용하여 자유 형식 BIRT 보고서 작성

대신 다음 형식의 자유 형식 보고서입니다.

"Name: {FirstName} {LastName}   Addess : {Address} 
Phone# {Phone#} 
.... 
.... 
" 

나는

.. 기본적으로 {이름, 성, 주소, 전화 번호, 및 기타 분야}의 이름 값 쌍을 포함하는지도를 반환하는 스크립트 소스를 사용하고하지만 난 방법을 잘 모르겠습니다 변수를 설정하는 방법과 FirstName, LastName 등을 얻는 방법 동적 텍스트를 사용해야합니까?

BIRT가 비 행 관련 데이터를 처리 할 수있는 방법을 모르겠습니다.

다음은 데이터 세트의 공개 스크립트입니다.

open: 

    util = new Packages.test.ReportsUtil(); 
    reportsVO = util.getReportVO("ABC"); 


in fetch: 
    if(currentrow < totalrows) { 
     dataSetRow["FirstName"] = reportsVO.getPropValue("identity.FirstName"); 
     dataSetRow["LastName"] = reportsVO.getPropValue("identity.LastName");  
     currentrow++; 
    } else { 
     return (false); 
    } 

그러나 기본 레이아웃 페이지에서 성 및성에 어떻게 액세스 할 수 있는지 잘 모르겠습니다.

당신에게

답변

0

감사 스크립팅 된 데이터 소스의 목표는 당신이있는 데이터를 조작하는 모든 비즈니스 규칙에서 데이터 모델과 혜택에 고유의 논리를 활용할 수 있도록하는 것입니다. 결국에는 데이터가 기존의 행 기반 세트로 형성되기를 원합니다.

당신은 동적 텍스트를 언급하고 이것이 자바 기반 이벤트 핸들러에 유용 할 것이라고 생각합니다. 스크립팅 된 데이터 소스에 바인딩 된 Java 객체의 논리를 사용하여 보고서 수명주기의 이벤트에 연결하고 비 관계형 데이터를 그렇게 할 수 있습니다.

JS "Packages"구문을 사용하여 JavaScript 이벤트 처리기 (IDE를 통해 훨씬 쉽게 플러그인)에서 Java 객체를 직접 호출 할 수도 있습니다.

BIRT Exchange에서이 작업을 수행하는 데 도움이되는 많은 예제가 있습니다.

0

나는 (BIRT 3.7) 비슷한 일을했지만 dataSetRow [ "colName"] 대신 행 [ "colName"]을 사용했는데 제대로 작동하는 것 같습니다. 내 데이터가 목록에 있고 각 목록 항목이 모눈입니다. 목록에있는 데이터 바인딩을 데이터 세트로 설정했습니다. 그리드는 값을 행 [ "colName"]으로 볼 수 있습니다.

관련 문제