隨筆 - 225  文章 - 98  trackbacks - 0
          <2011年11月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          隨筆分類

          相冊

          報表工具廠商們

          搜索

          •  

          最新評論

          閱讀排行榜

          一. 橫表&縱表:

             

          數據庫表按照存儲的數據結構不同區分為橫表與縱表,通過如下數據的存儲我們分別對橫表與縱表進行簡單介紹:

             

          橫表:

             

             

          http://www.finereport.com/forumimages/zjkbwzbszbwhb1.jpg

             

          縱表:

             

             

          http://www.finereport.com/forumimages/zjkbwzbszbwhb2.jpg

             

          由圖12可以看出,若我們要將每種產品的信息羅列在報表中展示,使用橫表將會非常方便,直接將各字段拖進設計器對應標題的單元格即可,字段間不需要考慮任何邏輯關(默認有擴展關系)如下圖:

             

             

          http://www.finereport.com/forumimages/zjkbwzbszbwhb3.jpg

             

          預覽如下:

             

             

          http://www.finereport.com/forumimages/zjkbwzbszbwhb4.jpg

             

          二. Java報表工具FineReport實現縱表轉為橫表顯示:

             

          使用縱表時,想達到如圖4的效果,也很簡單:

             


             

             

          http://www.finereport.com/forumimages/zjkbwzbszbwhb5.jpg

             

          其中:

             

          單元格      列名        設置屬性

             

          A2      字段編號       默認

             

          B1      名稱           設置為從左向右擴展,其余默認

             

          B2      屬性           不擴展,其余默認

             

          只需要設置名稱字段為橫向擴展,邏輯關系使用默認的,在展示數據時,就會對應選擇出字段編號為A2,名稱為B1的屬性值,如下圖所示:

             


             

             

          http://www.finereport.com/forumimages/zjkbwzbszbwhb6.jpg

             

          便達到了數據庫表為縱表時轉變為橫表顯示。

             

           

             

          三. 潤乾實現縱表轉為橫表顯示:

             

          潤乾報表在該問題有兩種解決方案:

             

          一.      參考潤乾官網--à知識庫中---à數據庫為縱表時轉為橫表展現的設計方法:

             

          定義了兩個數據集ds1,ds2,都取用數據庫中的那個縱表:

             


             

             

          http://www.finereport.com/forumimages/zjkbwzbszbwhb7.jpg

             

          B2=ds1.dselect(字段編號) //相當于select    distinct ……,取所有不重復的字段編號值,或者用=ds1.group(字段編號)用字段編號分組

             

          C1=ds1.dselect(名稱)    //取所有不重復的名稱

             

          C2=ds2.select(屬性,,ds2.字段編號==B2&&ds2.名稱==C1)   //用橫軸字段編號,縱軸名稱作為篩選條件,把唯一的屬性值取出來 。

             

          結果預覽如下:

             

             

          http://www.finereport.com/forumimages/zjkbwzbszbwhb8.jpg


          四. 總結:

             

          由上可以看出,Java報表工具FineReport與潤乾都可以使用簡單的交叉報表來實現數據庫表為縱表時轉變為橫表來顯示:

             

          l  操作都很簡單,步驟也基本類似

             

          l  潤乾使用數據表字段時默認為列表型,而Java報表工具FineReport默認為分組,后者更貼近用戶的需求,大部分用戶制作的是復雜的自由報表,所以通常需要合并相同項


          文章轉自:http://blog.vsharing.com/fanfanzheng/A1449895.html

          了解Java報表工具就從這里開始
          posted on 2011-11-24 10:16 season 閱讀(300) 評論(0)  編輯  收藏 所屬分類: Java報表—技術知識
          主站蜘蛛池模板: 万年县| 三原县| 屯门区| 磐安县| 浠水县| 宜良县| 宽甸| 招远市| 汝城县| 静海县| 武鸣县| 平陆县| 六安市| 鹰潭市| 平谷区| 襄垣县| 泗洪县| 闽清县| 清徐县| 合水县| 沧州市| 滦南县| 政和县| 曲阳县| 东辽县| 博兴县| 南平市| 环江| 紫阳县| 广宁县| 乐亭县| 黑水县| 湖口县| 喜德县| 宣化县| 虎林市| 清新县| 拜泉县| 武汉市| 万盛区| 和平区|