jasper (二)

----- 由於上次csdn 事件導致本人賬號丟失,所以新建了個號,把文章重寫貼一下

上次寫完後,就進入了一個緊張的報表集成,現在就把前段時間遇到的一些問題以及心得和大家分享一下:


(一) 生成的報表有部分內容顯示不出來:

             起初這個問題很惱人,我同時生成的有html和pdf格式的文件(html 作預覽,pdf作下載用) 經常性的是pdf文件內的內容完整,html裏面   的東西殘缺不堪(這裏牽涉到一個jasper寫出的問題,後面再談)。久經調試後才發現,原來是有2個或者2個以上的單元格(TextField或StaticField或者其他)有一部分是重疊的。通常你確定你數據源沒有問題,但是報表有顯示不出來的話,十有八九就是這個;目前解決這個問題的方法就是:

               a.在製作的時候放大些(比如放大3倍等等)這樣可以很清晰的看到單元格邊緣有沒有重疊

               b.在使用frame的時候,就是加邊框,要注意內外包裹的順序(------------)

( 二  )   報表sql運用技巧

這張圖裏面捎帶黃書的行,其實就是上面段內容的一個合計,但是再製作的時候這個就是父子報表的問題(只需要一個父子子報表的關聯就可以):

     a.父報表就是這個載體,內容要顯示的載體像表頭什麼的 都應該在這個地方出現(只是針對本圖)

     b.子報表要完成的工作就是把所有的內容分組統計出來(也就是 又黃線分隔的部分作爲一個分組)大家都知道在同一層報表裏面不可能同時做統計和所有數據的顯示,除了加父子報表或其他技術(統計是單行,顯示是多行)。

     c.2層子報表就是顯示被統計的所有內容

通過這樣一個父子報表的結構,就可以把這張圖解析很清楚,下手做就是

 

(三)動態右邊行

大家可能都有看到這樣一種情況:左邊一行對應到右邊n多很的情況(這裏稱爲動態右邊行)

這裏說說動態右邊行最簡單的表現形式,左邊行的高度佔據一個jasper單個detail 或其他部分,右邊則跟一個子報表;然後調整 把stretch Type 屬性設置成 Relative to Band Height;   意思就是讓它隨着列的增加動態增加;(解釋: 由於左邊和右邊在同一個 jasper部分裏面,佔滿這個部分,那麼只要右邊的內容變動,導致列數增加,那麼左邊由於設置了與行高相同,也會隨着變化,最後就形成了 動態右邊行)

 

(四)jasper 生成html ,pdf 的不同

jasper 生成html是嚴格按照單元格來的,一個地方只能有一個,兒生成pdf 的時候,爲了顯示中文都設置了 中文格式,它會把所有的內容都寫到pdf裏面,不會去考慮佔位與否,就算是兩個完全重疊的單元格也能顯示出來

 

終於要告一段落了,最近都在整jasper稍有體會,大家相互探討,有不對的地方還請各位指正
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章