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