我有一個報告,這將需要文本塊(這將動態創建)從運行報告Java程序嵌入。BIRT如何插入文本動態
有沒有一種方法我可以把一個文本對象到設計,然後以某種方式得到認爲該對象在我的Java程序。如果這是可能的,我假設我能夠將文本插入到該文本對象中。
這是最好的方法嗎? 代碼片段會被感激地接受。
在此先感謝。
我有一個報告,這將需要文本塊(這將動態創建)從運行報告Java程序嵌入。BIRT如何插入文本動態
有沒有一種方法我可以把一個文本對象到設計,然後以某種方式得到認爲該對象在我的Java程序。如果這是可能的,我假設我能夠將文本插入到該文本對象中。
這是最好的方法嗎? 代碼片段會被感激地接受。
在此先感謝。
您可以使用Java事件處理程序輕鬆完成此操作。生成過程中的任何事件都可以通過JavaScript(存儲在報告設計本身)或通過POJO進行修改,當需要更復雜的處理時。
添加TextItem到您的報告。這將成爲您的文本塊的預期目的地。您可以添加其他類型的控件並以相同的方式與它們交互,TextItem對於此特定問題似乎有意義。將任何你想要的東西添加到文本項目中,無論如何,我們都會重複從POJO中取得的值。
現在創建一個實現TextItemEventAdapter
接口(這應該是在你的BIRT分佈)的POJO。然後您可以選擇將POJO綁定到哪個事件。 onCreate可能是最有意義的。爲此,請從界面實施onCreate
方法。
/* (non-Javadoc)
* @see org.eclipse.birt.report.engine.api.script.eventadapter.TextItemEventAdapter#onCreate(org.eclipse.birt.report.engine.api.script.instance.ITextItemInstance, org.eclipse.birt.report.engine.api.script.IReportContext)
*/
@Override
public void onCreate(ITextItemInstance text, IReportContext reportContext) {
super.onCreate(text, reportContext);
text.setText(getText());
}
在上面的片段中,getText()
方法是在你的類的另一種方法是建立你的文本塊。在這裏實現您的業務邏輯。
一旦你已經建立了類,你需要將其綁定到該報告的文本項控制。在報告上,選擇文本項目。在「屬性」下找到「事件處理程序」。在這裏,您可以將POJO添加爲控件的事件處理程序。當控件呈現時,您的POJO現在將提供文本。
爲了簡化開發,具有Java項目,在同一個工作區的BIRT項目。這將使報告和POJO能夠相互查看,從而在Eclipse內啓用測試和調試。
以下是有關報告的事件和事件處理更大量的背景:http://www.eclipse.org/birt/phoenix/deploy/reportScripting.php
祝您好運!