Birt是一類Eclipse提供的開源的報表工具度秘,但是中文文檔比較缺乏乖仇,在剛開始用起來的時候頗費了一些功夫去閱讀英文文檔幻枉。一部分資料可以從幫助文檔中找到扔傅,另外一部分可以在eclipse的官方論壇中找到答疑的內(nèi)容耍共,還有比較活躍的國外問答平臺StackOverFlow,這些都是一些可以值得推薦的東西猎塞。
另外Birt一個比較坑的地方就是不同的版本一些控件(Component)和一些ODA的使用和布局不太相同试读。另外最新的4.4.1的版本和以前的相比有了較多的改動,比如Preview的tab不見了荠耽,但是仍然可以選擇web browse的方式打開預(yù)覽钩骇,另外ODA的驅(qū)動也增加了不少,多了HIVE和MongoDB的ODA骇塘。當(dāng)然MongoDB又是一種文檔類的數(shù)據(jù)庫伊履,因此在使用的過程中用法和JDBC類型的使用方式又有了較多的區(qū)別,在4.4.1的界面當(dāng)中多了query text和sorting之類細化的查詢方案款违,但是筆者常用的是query expression和sorting之類的東西唐瀑。另外filters和之前的版本類似,仍然可以用來選擇某些字段進行操作插爹,甚至是一些復(fù)雜類型的語句哄辣。另外group的位置發(fā)生了改變,以前的2.1的版本中是在property editor的位置上赠尾,但是現(xiàn)在挪到了insert->group的位置力穗,然后選擇insert row-> above 或者->below都是OK的,這個要根據(jù)用戶自己的喜愛來決定了气嫁。當(dāng)然也有其他很多功能的移動和位置的修改当窗,這些都是需要細心的用戶自己慢慢去發(fā)現(xiàn)了。
1) property editor
這一類工具在layout tab的下面寸宵,general一般是用來設(shè)定size , black崖面,加粗元咙,字體,居中等類似于doc的排版操作巫员。hyperlink是用來添加超鏈接庶香,但是可以選擇添加report文件或者添加url連接。另外format類型是用來給指定的類型添加輸出的格式简识,比如format date是用來給date類型選擇一些必要的格式輸出的設(shè)定赶掖,比如輸出格式可以選擇為2010-02-06之類的設(shè)定。另外還有常用的margin, padding或者border之類的樣式相關(guān)的property設(shè)定設(shè)置七扰,或者有心人也可以把這類相關(guān)的設(shè)定在xml source中添加或者改變奢赂。
2)layout && main page
這類tab是用來給頁面的可視化做一些操作的,一個是用來調(diào)整當(dāng)前輸出report的排版相關(guān)的類所見即所得的操作(僅僅是類似于颈走,在實際輸出的時候因為render的調(diào)整導(dǎo)致結(jié)果會發(fā)生有所改變)呈驶。另外main page是用來調(diào)整底版的內(nèi)容,比如多頁的報表中每一頁的頁眉或者頁尾的內(nèi)容等等一系列的效果
3)component
常見的component有l(wèi)abel(標(biāo)簽)疫鹊、table(表格)、list(列表)司致,dynamic text, text, data..等等拆吆。類似的有tabel、list脂矫、和grid三類枣耀,一般數(shù)據(jù)的輸出更多的會選擇放在tabel,因為table的detail row會隨著row的動態(tài)增長而增長庭再,而grid相對固定,而list只能輸出展示一列的數(shù)據(jù)捞奕,另外dynamic和data都可以支持js表達式的輸入,為動態(tài)數(shù)據(jù)的填入提供了更多的可能拄轻,table可以支持多種類型的表格:餅圖,曲線圖等等颅围。而曲線圖可以設(shè)置曲線的類型,x軸和y軸的值恨搓,間距多少院促,點之間的零值是否補全,legend值的輸入斧抱,title的內(nèi)容設(shè)定等等一系列詳細的設(shè)置
4)ODA
常見的數(shù)據(jù)源有xml, flat file, mongodb, jdbc,hive等常拓,現(xiàn)在用的較多的就是后面三種,flat file可以選擇分隔文件的方式,比如ssf(space split file), psf(pipe split file), csf(comma split file)辉浦、tsf(tab split file)等多種文件分隔符類型的支持弄抬,另外jdbc可以支持常見的mysql,oracle等sql類型的數(shù)據(jù)庫宪郊。另外mongodb的property binding->query expression需要傳入字符串掂恕,''或者""兩種引號的方式都是支持的拖陆。filter可以設(shè)置一個查詢的值的范圍或者條件。
5)builder expression
語法是js語言竹海,在這里不在贅述慕蔚。
6)Report Project
在最初的版本中只有Report的工程,但是后來加入了很多BIRT相關(guān)的工程類型斋配,比如:BIRT WEB PROJECT (contain BIRT Report Engine for a J2EE Web Project) ,BIRT Charting Web Project(在j2ee項目中包含BIRT圖表運行時組件)等等孔飒。
7)Data Set:filters&&property binding
Data Set的屬性設(shè)置中,這兩種都可以達到類似的效果艰争,但是后者直接在數(shù)據(jù)庫中執(zhí)行坏瞄,并返回對應(yīng)的數(shù)據(jù)集,但是前者將會返回所有的數(shù)據(jù)集并且在web端過濾所有的數(shù)據(jù)甩卓,相對來講有較多的帶寬被浪費鸠匀。但是對于其他非MONGODB和JDBC類型的數(shù)據(jù)源基本沒有property binding獲得filter的機會,因此只能依賴filter來過濾必要的數(shù)據(jù)逾柿。