Java軟件報表軟件技術博客

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

          1. 問題描述

          這樣一種報表:報表形式非常簡單,只是簡單的單數(shù)據(jù)源明細報表,但是數(shù)據(jù)量非常大,百萬、千萬甚至更多。報表取數(shù)及計算時間相當長。

          希望能夠提高報表展示速度,對于用戶來說,查詢報表不會有滯后的感覺。

          解決方案提供工具:報表開發(fā)工具FineReport。

          2. 解決方案

          2.1 解決方案

          對于單數(shù)據(jù)源明細報表,可以啟用行引擎來執(zhí)行報表,提高報表展示速度,優(yōu)化用戶體驗。

          2.2 原理

          普通報表:取出全部數(shù)據(jù)后再執(zhí)行報表,最后返回整體的報表結果給瀏覽器,用戶訪問到看到結果的時間=報表取數(shù)時間+報表執(zhí)行時間;

          行引擎報表:邊取數(shù)邊執(zhí)行報表,執(zhí)行到哪頁用戶就可以看到哪頁,用戶訪問到看到結果的時間=首頁數(shù)據(jù)讀取時間+首頁計算時間。

          2.3 注意事項

          行引擎報表注重的是性能,由原理我們可以想象,對于行引擎報表,每頁的計算必須是獨立的,即報表不能有單元格關聯(lián)的復雜運算,類似,為了提高行引擎報表的性能,F(xiàn)R舍棄了一些復雜的功能:

          行引擎報表只適用于單數(shù)據(jù)源、即單元格過濾不能使用,且必須是簡單明細表,同時也不支持計算、條件屬性等復雜報表功能。

          3. 實現(xiàn)步驟

          我們以mysql數(shù)據(jù)庫為例,將里面的S訂單明細的數(shù)據(jù)用行式引擎顯示,每頁顯示30行,設置如下:

          3.1 新建數(shù)據(jù)集

          數(shù)據(jù)集ds1:SELECT * FROM S訂單明細

          3.2 模板主體設計

          如下圖,將表中的列全部拖曳至模板主體中:



           

           

          3.3 行式引擎設置

          選擇模板>報表引擎屬性,勾選用行式的引擎來執(zhí)行報表,再勾選下面的使用按頁運算分段執(zhí)行報表,每頁記錄數(shù)使用默認值30,如下圖:

           



           3.4 效果查看

          點擊分頁預覽,效果如下:

           



           行式引擎按頁取數(shù)只適用于Oracle,mysql,hsql和sqlserver2008及以上數(shù)據(jù)庫,其他數(shù)據(jù)庫,如access,sqlserver2005等必須手動編寫分頁sql,才能實現(xiàn)按頁取數(shù),對于需要編寫分頁sql的數(shù)據(jù)庫,請參考
          單數(shù)據(jù)源實現(xiàn)層式報表章節(jié)。

          行式引擎只適用于單數(shù)據(jù)源報表,對于多數(shù)據(jù)集報表,行式引擎無法實現(xiàn)對其進行分頁顯示,多數(shù)據(jù)源的層式報表的實現(xiàn)請查看多數(shù)據(jù)集實現(xiàn)層式報表



          主站蜘蛛池模板: 自贡市| 漠河县| 虞城县| 遵义市| 东方市| 南靖县| 中卫市| 通榆县| 浮梁县| 颍上县| 临武县| 雷州市| 蒲城县| 曲周县| 黔南| 林口县| 临安市| 阜阳市| 合肥市| 鄂尔多斯市| 罗田县| 巨野县| 昔阳县| 乐都县| 灵山县| 乳山市| 武清区| 天全县| 香河县| 罗定市| 东乌珠穆沁旗| 榆树市| 雅江县| 湘西| 桐庐县| 渝中区| 博湖县| 尚志市| 合作市| 洮南市| 通河县|