數據庫表爲縱表時轉變爲橫表的設計方法

一. 橫表&縱表:html

數據庫表按照存儲的數據結構不一樣區分爲橫表與縱表,經過以下數據的存儲咱們分別對橫表與縱表進行簡單介紹:數據庫

橫表:數據結構

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

縱表:spa

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

由圖1,2能夠看出,若咱們要將每種產品的信息羅列在報表中展現,使用橫表將會很是方便,直接將各字段拖進設計器對應標題的單元格便可,字段間不須要考慮任何邏輯關(默認有擴展關係)以下圖:設計

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

預覽以下:blog

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

二.報表製做工具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(字段編號) //至關於selectdistinct ……,取全部不重複的」字段編號」值,或者用=ds1.group(字段編號)用字段編號分組

C1:=ds1.dselect(名稱)    //取全部不重複的」名稱」值

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

結果預覽以下:

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

 

四. 總結:

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

l  操做都很簡單,步驟也基本相似

l  潤乾使用數據表字段時默認爲列表型,而報表製做工具FineReport默認爲分組,後者更貼近用戶的需求,大部分用戶製做的是複雜的自由報表,因此一般須要合併相同項

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

相關文章
相關標籤/搜索