2011-08-02 6 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); 
    } 

しかし、私はメインレイアウトページのFirstNameとLastNameにどのようにアクセスできるのか分かりません。

は、スクリプト、データ・ソースの目標は、あなたがそのデータを操作する任意のビジネスルールからデータモデルや利益に固有のロジックを活用できるようにすることですあなたに

答えて

0

ありがとうございます。最終的には、データはむしろ従来の行ベースのセットに形成されることを望んでいます。

あなたは動的テキストについて言及していますが、これはJavaベースのイベントハンドラにとっては非常に便利だと思います。スクリプト化されたデータソースにバインドしたJavaオブジェクトのロジックを、レポートのライフサイクルでイベントに結び付けて、そのような方法で非リレーショナルデータを取得することができます。

JSのパッケージ構造を使用して、JavaScriptイベントハンドラから直接Javaオブジェクトを呼び出すこともできます(IDE経由でプラグインするほうが簡単です)。

これをBIRT Exchangeで手助けする多くの例があります。

0

私は何か似たようなことをしましたが(BIRT 3.7)、dataSetRow ["colName"]ではなく行["colName"]を使用しました。私はリストに自分のデータを持っていて、各リストアイテムはグリッドです。リスト内のデータバインディングをデータセットに設定しました。グリッドは値を行["colName"]として見ることができます。

関連する問題