birt報表用rptlibrary統一所有報表的數據源

由於公司項目需要不得不學birt,多虧了某人很菜的培訓,是在是對birt喜歡不起來,每一個報表都要設置數據源,上週要部署到演示廳,數據源IP改了,每個報表都要改一遍,雖然只有二十多個,但是簡直就是浪費時間和腦細胞,重複的工作本來就可以一開始做好,卻偏偏還很有理由的重複做了一百遍,還覺得自己特牛B。真是天理難容!重點是菜哥還不想改,沒辦法,就算組織沒要求,二十多個報表我還得負責差不多一半呢?姐那麼懶,明顯不能允許這種無聊的重複工作浪費情緒。問度娘,方法還真多,五花八門,試了好幾種,都是各種行不通,實在是令人捉急!只好乖乖再去研讀一下birt的文檔。原來還有這麼一個東西叫library!下面是我時間成功了的步驟:

1.選中目錄(你想把這個library放在項目裏的那個文件夾下就選中哪個),點擊eclipse的“新建”-->"library"

2.這是一個rptlibrary文件,默認命名:new_library.tprlibrary(名字可以隨便改,後綴不能變)

3.點擊“Finish”,默認打開new_library.tprlibrary,目錄如下:

在“Data Source”新建數據源,方式和單個報表建立數據源是一樣的,起名叫test

測試一下連接數據庫是否成功。

4.打開eclipse的resource explore,打開你想引入這個數據源的報表(如:test.rptdesign)打開剛纔新建的new_library.tprlibrary,展開Data Source找到剛纔新建的數據源test 點擊右鍵add to report

test.rptdesign就把new_library.tprlibrary的數據源加進來了



注意,網上有些說法是把test直接拖過去,那樣在修改test的時候拖過去的那個test不會進行改變。一定要add to report過去,還有在修改test的時候不要打開別的報表,否則回詢問你是否不在和test關聯,一般點"是"以後,在修改data那個報表也不跟着表了,這是因爲拖過去的就是拷貝一份現有數據庫連接到報表裏面。
 數據源添加過去以後,一定在在該報表的xml  source 裏面去修改下ds.rptlibrary的路徑,默認的路徑在網頁上查看報表的時候是找不到的, 報錯。,
比如我放在了WebRoot/WEB-INF/repor目錄,路徑是這樣的,一定要把前面的名稱去掉。

<list-property name="libraries">
        <structure>
            <property name="fileName">WebRoot/WEB-INF/report/new_library.rptlibrary</property>
            <property name="namespace">new_library</property>
        </structure>
    </list-property>

發佈了57 篇原創文章 · 獲贊 3 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章