Java軟件報(bào)表軟件技術(shù)博客

          java報(bào)表軟件技術(shù)匯總 java報(bào)表軟件制作 報(bào)表軟件新聞
          posts - 355, comments - 100, trackbacks - 0, articles - 3
             :: 首頁(yè) :: 新隨筆 ::  :: 聚合  :: 管理

          1. 問(wèn)題描述

          這樣一種報(bào)表:報(bào)表形式非常簡(jiǎn)單,只是簡(jiǎn)單的單數(shù)據(jù)源明細(xì)報(bào)表,但是數(shù)據(jù)量非常大,百萬(wàn)、千萬(wàn)甚至更多。報(bào)表取數(shù)及計(jì)算時(shí)間相當(dāng)長(zhǎng)。

          希望能夠提高報(bào)表展示速度,對(duì)于用戶(hù)來(lái)說(shuō),查詢(xún)報(bào)表不會(huì)有滯后的感覺(jué)。

          解決方案提供工具:報(bào)表開(kāi)發(fā)工具FineReport。

          2. 解決方案

          2.1 解決方案

          對(duì)于單數(shù)據(jù)源明細(xì)報(bào)表,可以啟用行引擎來(lái)執(zhí)行報(bào)表,提高報(bào)表展示速度,優(yōu)化用戶(hù)體驗(yàn)。

          2.2 原理

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

          行引擎報(bào)表:邊取數(shù)邊執(zhí)行報(bào)表,執(zhí)行到哪頁(yè)用戶(hù)就可以看到哪頁(yè),用戶(hù)訪問(wèn)到看到結(jié)果的時(shí)間=首頁(yè)數(shù)據(jù)讀取時(shí)間+首頁(yè)計(jì)算時(shí)間。

          2.3 注意事項(xiàng)

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

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

          3. 實(shí)現(xiàn)步驟

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

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

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

          3.2 模板主體設(shè)計(jì)

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



           

           

          3.3 行式引擎設(shè)置

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

           



           3.4 效果查看

          點(diǎn)擊分頁(yè)預(yù)覽,效果如下:

           



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

          行式引擎只適用于單數(shù)據(jù)源報(bào)表,對(duì)于多數(shù)據(jù)集報(bào)表,行式引擎無(wú)法實(shí)現(xiàn)對(duì)其進(jìn)行分頁(yè)顯示,多數(shù)據(jù)源的層式報(bào)表的實(shí)現(xiàn)請(qǐng)查看多數(shù)據(jù)集實(shí)現(xiàn)層式報(bào)表



          主站蜘蛛池模板: 嘉祥县| 石家庄市| 东丽区| 金秀| 南江县| 双鸭山市| 思茅市| 沅江市| 元朗区| 秀山| 鞍山市| 寿光市| 镇远县| 长武县| 息烽县| 古交市| 体育| 绥阳县| 惠东县| 瑞金市| 丰台区| 大埔区| 佛冈县| 灵璧县| 明星| 兴义市| 庆安县| 马尔康县| 铁力市| 喀喇沁旗| 宝兴县| 娱乐| 巨野县| 鲁甸县| 奎屯市| 五峰| 东城区| 井陉县| 凌源市| 南京市| 永新县|