Java軟件報表軟件技術博客

          java報表軟件技術匯總 java報表軟件制作 報表軟件新聞
          posts - 355, comments - 100, trackbacks - 0, articles - 3
             :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理

          1. 問題描述

          完成報表取數后,設計器會對數據庫返回的數據進行擴展、分組、列表、匯總等運算,好的模板制作習慣往往可以優化報表的計算時間。

          以下示例報表開發工具:FineReport。

          2. 解決方案

          2.1 空白單元格應用

          報表中,只要一個單元格里有設置就會占用一份內存,而空白的單元格幾乎是不占任何內存的。報表中由于布局的需要,不可避免地會出現一些只起到占位作用而無需其他的設置的單元格;盡量將這些單元格設成空白單元格,這樣能夠有效的減少內存的占用,加快報表的運算速度。

          2.2 慎用隱藏行列

          報表中為了進行一些復雜的運算,往往需用到隱藏行列來處理中間的運算,而這些隱藏行列中被用到的單元格,往往只有一兩個格子,此時被隱藏行列中沒被用到的單元格里有設置的話會額外浪費內存,因此建議把沒用的單元格設為空白單元格,減少內存的占用,加快報表的運算速度。

          2.3 慎用合并單元格

          報表中,常常會用到合并單元格,合并單元格的所有屬性都是保存在左上角的格子中的,而合并區域中的其他被合并的單元格,并不保存任何屬性也不占用內存。

          雖然合并單元格的應用能夠減少內存,不過因合并單元格的運算涉及到多個單元間的主被動關系,所以運算比較復雜,反而會降低運算速度。因此,我們建議慎用合并單元格,盡量將沒用的單元格設成空白單元格。

          2.4 相同效果的條件屬性

          同一行(列)中的單元格需要設置相同效果的條件屬性時,只需在該行(列)中的某個單元格設置一下條件屬性便可,這樣能夠加快報表的運算速度。如下圖,需要隱藏某行時只需要在一個單元格中設置條件屬性即可,不要每個單元格都設置。

          2.5 相同效果的數據列基本屬性設置

          報表制作過程中,我們將數據集中的字段拖入單元格時,數據列>基本>數據設置,(分組、列表、匯總)中計算最快的是列表。如制作明細表時有兩種設置方法,結果是一樣的。 設置方式一:地區列數據設置為列表,后面其他跟隨其擴展的數據列的數據設置還是采用默認的設置(即分組普通)。

          設置方式二:地區列數據設置為列表,后面其他跟隨其擴展的數據列的數據設置也修改為列表。

          上面兩種設計方式的數據展示結果是一樣的,不過報表的計算速度卻不一樣;第二種方式的報表計算速度明顯會比第一種快。

          這是因為數據列設為分組時,報表會將取出的數據進行一次分組聚集的計算,而不管數據有沒有重復。因此,對于可實現相同效果的應優先設置其數據列屬性為列表。

          2.6 父格設置

          FR中設計報表的最重要的思想,就是數據列的擴展,而跟隨哪一個單元格擴展是必須要注意的問題。所以父格的設置是很重要的,父格設置不恰當會影響報表的計算速度,甚至導致結果錯誤。另外,父子格層次樹高度,對報表性能也有影響,所以盡量減少父子格層次樹高度。如對下圖模板:

          注:將所有單元格的數據顯示方式設置為列表顯示。

          設置方式一:銷量父格為產品名稱,產品名稱父格為產品類型,產品類型父格為銷售員、銷售員父格為地區,父子格層次樹為4層。

          設置方式二:銷量、產品名稱、產品類型、銷售員的父格都為地區,父子格層次為1層。

          上面兩種設計方式的數據展示結果是一樣的,不過報表的計算速度卻不一樣;第二種方式的報表計算速度明顯會比第一種快。

          2.7 取消自動調整行高或列寬

          若已設置自動調整列寬的話,那么在報表展示前會先去計算單元格中數據的寬度或高度,這樣就增加了報表的運算時間,所以盡量取消自動調整行高或列寬。

          2.8 優化過濾條件

          查看模板中是否重復設置了過濾條件,刪除多余的過濾條件,即若數據列來自相同的數據集,只需在最左父格設置過濾條件并勾選將父格子作為過濾條件(默認是勾選的)即可。




          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 揭西县| 云和县| 沾益县| 桐乡市| 南漳县| 莲花县| 湾仔区| 曲麻莱县| 凯里市| 凭祥市| 左贡县| 讷河市| 武陟县| 墨竹工卡县| 荆门市| 云浮市| 大冶市| 武汉市| 尉氏县| 赣州市| 资溪县| 收藏| 琼中| 镇巴县| 浠水县| 微博| 云安县| 鄄城县| 团风县| 靖宇县| 福泉市| 信丰县| 汾阳市| 师宗县| 务川| 天台县| 博罗县| 东乡族自治县| 盐池县| 黄山市| 四会市|