2011-08-02 37 views
0

我正在嘗試創建一個自由格式的BIRT報告。報告不包含每行中具有相同columnNames的行。使用腳本化數據源創建一個自由格式的BIRT報告

相反,它是一個自由形式的報告,它將具有以下形式。

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

我使用腳本數據源,基本上返回包含{名字,姓氏,地址,電話等領域}的名稱值對地圖..

但我不知道如何設置變量以及如何獲取名字,姓氏等 我應該嘗試使用動態文本。

我不知道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的事件處理程序來說非常有用。您可以使用綁定到腳本數據源的Java對象中的邏輯代替與報表生命週期中的事件綁定,並以此方式獲取非關係數據。

甚至可以使用JS「Packages」構造函數直接從JavaScript事件處理程序調用Java對象(更容易通過IDE插入)。

有很多例子可以幫助您在BIRT Exchange上完成這項工作。

0

我做了類似的事情(BIRT 3.7),但我使用了行[「colName」]而不是dataSetRow [「colName」],這似乎工作。我有我的數據在列表中,然後每個列表項是一個網格。我將列表中的數據綁定設置爲數據集。網格能夠將該值看作行[「colName」]。

相關問題