學(xué)習(xí)了一段時間birt,發(fā)現(xiàn)每一個報表都要設(shè)置數(shù)據(jù)源,這樣以后要是改動了,數(shù)據(jù)庫的鏈接,那樣每個報表的數(shù)據(jù)源都要更改,那樣工作量是很大的,研究了下發(fā)現(xiàn)可以使用公用library的可以很好的解決這個問題。
1、點擊eclipse的新建,里面可以發(fā)現(xiàn)有個library,點擊新建library庫,起名ds.rptlibrary 我放在頁面的根目錄下面。
2、在里面新建數(shù)據(jù)源,配置連接到你的數(shù)據(jù)庫,我起名字叫data
3、報表中引用ds.rptlibrary. 關(guān)鍵啊,打開你要引用的報表,比如a,
在eclipse左下角添加,resource explorer 控件,打開找到ds.rptlibrary,展開找到data,點擊右鍵add to report,
就添加了到現(xiàn)有報表數(shù)據(jù)源里面,注意,網(wǎng)上有些說法是把data拖過去,那樣在修改data的時候拖過去的那個data不會進(jìn)行改變。一定要add to report過去,
還有在修改data的時候不要打開別的報表,否則回詢問你是否不在和data關(guān)聯(lián),
一般點是以后,在修改data那個報表也不跟著表了,
這是因為拖過去的就是拷貝一份現(xiàn)有數(shù)據(jù)庫連接到報表里面。
關(guān)鍵的關(guān)鍵啊。。。。。 數(shù)據(jù)源添加過去以后,一定在在該報表的xml source 里面去修改下ds.rptlibrary的路徑,默認(rèn)的路徑在網(wǎng)頁上查看報表的時候是找不到的, 報錯。,
比如我放在了根目錄,路徑是這樣的
一定要把前面的名稱去掉。
<list-property name="libraries">
<structure>
<property name="fileName">ds.rptlibrary</property>
<property name="namespace">ds</property>
</structure>
</list-property>
下次研究如何讀取項目中的數(shù)據(jù)庫配置文件,爭取就在一個地方配置數(shù)據(jù)庫就可以了。