數據分析軟件FineReport教程:[11]報表設計?

下面通過數據分析軟件FineReport來展示幾個經常用到的報表樣例,來實際領會單元格擴展和父子格設置。

工具/原料

數據分析軟件FineReport7.1.1

大小:148.2M 適用平臺:windows/linux

行式報表—數據縱向擴展

行式報表即清單式明細表,是最常見也是最簡單的報表樣式,如下圖效果:

行式報表利用了報表當中的縱向擴展屬性,展現了一個列表式的表格,該節通過介紹行式報表的實現過程來體驗數據的擴展。

數據分析軟件FineReport教程:[11]報表設計

準備數據

數據準備包括兩步,準備數據連接和數據集,FineReport安裝exe的時候會內置一個名為FRDemo的數據連接,連接的是工程下的一個WebReport的ACCESS數據庫,接下來文檔中所有的示例數據全部來源於該數據庫。

連接數據庫FRDemo,我們使用內置數據庫表訂單來製作一張訂單列表。

新建工作薄,添加數據集ds1,SQL語句為SELECT * FROM 訂單。

模板設計

表樣設計

根據實際情況設計表樣,如下圖:

數據分析軟件FineReport教程:[11]報表設計

字段綁定

根據表樣中的字段標題將數據集中的字段拖曳至相應單元格中,如下圖:

數據分析軟件FineReport教程:[11]報表設計

數據顯示方式

FineReport數據顯示有3種方式:列表、分組和彙總。

數據分析軟件FineReport教程:[11]報表設計

列表:如上效果圖所示,即數據以列表的方式展示,不做任何分組處理;

分組:指後面的單元格會根據前面的單元格的數據,進行數據過濾分組,合併相同項顯示;

彙總:指對單元格中的數據進行彙總計算,彙總包括求和、平均、最大值、最小值和個數,只針對單元格中字段時數值類型的單元格。

在效果圖中看到行式報表是以列表的方式展示的,故需設置訂單ID字段的數據顯示方式設置為列表。

注:只需要將最左邊的單元格訂單ID的顯示方式設置為列表即可,在父子格中介紹了,單元格會默認將其左側縱向擴展的單元格作為父格,那麼A2是B2的父格,B2是C2的父格,以此類推,經過數據傳遞,可以看到所有的單元格的父格均是訂單ID所在的A2單元格,所以只需要將A2的數據顯示方式設置為列表,其他的單元格會跟隨該單元格來顯示數據。

單元格樣式設置

由於數據庫中運貨費的是小數形式,為了整齊美觀,可設置其數據格式保留兩位小數,選中F2單元格,在右側下方的單元格屬性表中選擇單元格屬性表-樣式,在格式裡面選擇數字,並設置其保留兩位小數,如下圖:

數據分析軟件FineReport教程:[11]報表設計

分組報表—父子格

分組報表就是將報表中的數據按組顯示,即將數據列中相同項合併為一組顯示,如下圖最簡單的分組報表:

數據分析軟件FineReport教程:[11]報表設計

新建報表,添加數據集

新建工作簿,添加數據集,SQL語句為:SELECT * FROM [銷量]。

拖拽數據列

將數據列拖拽入相應單元格(默認的就是分組顯示,因此不需要做其他設置),如下圖所示:

設置銷量數據列為彙總-求和,其餘默認。預覽便可看到上方的分組效果了。

數據分析軟件FineReport教程:[11]報表設計

總結

由該例子可以看出:

拖拽的數據列默認就是分組顯示的,會將相同項合併起來;

數據列在同一行時,會產生默認的父格關係:同行的單元格會以其左側相鄰的擴展格為父格,就如這邊銷售員默認父格為地區,銷量默認父格為銷售員;

數據列在同一行且來自於同一數據集時,子格會自動將父格作為過濾條件,形成一種附屬關係,就如這邊銷售員會自動羅列在所屬地區下。

交叉報表—數據橫向擴展

交叉表,也是常見的基本報表類型,分組報表只是從上到下將數據分組顯示,而交叉表則是從上到下、從左到右都將數據分組的報表,如下圖:

FineReport天然支持行列對稱,設計交叉表的方法也很簡單。

數據分析軟件FineReport教程:[11]報表設計

新建工作簿,添加數據集

新建工作薄,添加數據集ds1,SQL語句為SELECT * FROM [銷量]。

製作交叉表

設計好表樣後,將數據列拖入對應單元格:

數據分析軟件FineReport教程:[11]報表設計

縱表頭:地區與銷售員默認縱向擴展實現從上到下分組;

橫表頭:將產品類型與產品設置為從左到右擴展,讓產品橫向分組,實現橫表頭;

數據:根據父子格的概念,銷量會以銷售員為左父格,產品為上父格,自動匹配出銷售員與產品對應的銷量。

預覽即可看到上圖交叉表。

注:此處銷售員與產品對應的銷量是唯一的,因此,直接將銷量拖入單元格即可。

自由報表—自定義父子格

內置的數據庫中有一張僱員表,他有很多字段,這些字段都要顯示在報表中,如果把它顯示在報表的一行上,看起來會很擁擠,如果報表中要顯示圖片字段,把圖片和非圖片字段都顯示在報表的同一行上,會嚴重的影響報表的美觀,這個時候就可以做成自由格式的報表。如下面的訂單統計自由報表:

數據分析軟件FineReport教程:[11]報表設計

可以看到,自由報表不像網格式報表或者分組報表那樣規則,其特點是數據庫表中的一條記錄不是分佈在一行上,而是散放在多行上,記錄分塊或者分頁顯示,以提高報表的可讀性和美觀性。

新建工作簿,添加數據集

新建工作薄,添加數據集ds1,SQL語句為SELECT * FROM [訂單]。

表樣設計

自由格式報表相當隨意,按照需要的樣式在對應單元格中拖入數據列即可,如下圖所示:

數據分析軟件FineReport教程:[11]報表設計

父格設置

由於數據列不在同一行上,因此不會自動形成父子關係,我們希望客戶ID、訂購日期等數據列能附屬於訂單ID而擴展,同時報表標題及數據列標題也會跟隨訂單ID的擴展而複製。

將B1、B2至B6單元格,父格設為訂單ID單元格。

同樣,C3至C6單元格,也設置父格為訂單ID單元格。預覽即上圖效果。

注:根據父子格原理,D3至E6可以不另設父格,因為他們會自動將C3至C6單元格為左父格。

縱向分組報表

如下圖所示,數據按照地區字段進行了分組,分組後,地區字段作為組的標題,自成一行,這樣的報表我們稱之為縱向分組報表。

數據分析軟件FineReport教程:[11]報表設計

實現思路

通過父子格章節,我們知道,數據列在同一行時會自動形成父子關係,若數據列都來自於同一個數據集,就會自動形成附屬關係,產生分組效果。

而縱向分組報表,組頭單獨一行,數據列不在同一行,組頭與數據間就沒有父格關係了,即其他數據列就不會將地區字段作為過濾條件了。

因此,這樣的分組報表,只要將數據字段的父格重新設置為組頭字段,就會產生分組效果了。

打開報表

修改報表樣式

將銷售員與銷量字段剪切至下一行,此時預覽可以看到,數據與組頭並沒有附屬關係。

數據分析軟件FineReport教程:[11]報表設計

設置父格

為了使數據分組顯示,選中銷售員數據列單元格,設置其左父格為地區單元格。

由於地區字段作為組的標題,為了凸顯標題,可改變地區字段所在行的背景色,點擊單元格屬性表-樣式,選擇背景選項,設置背景色為黃色,如下圖:

數據分析軟件FineReport教程:[11]報表設計

分組彙總

在分組報表中往往需要對組內的數據進行數量彙總,如下圖對每個地區的銷售額進行彙總:

數據分析軟件FineReport教程:[11]報表設計

打開報表

設置父格的彙總

在下面加上彙總一欄,對銷量進行求和,並設置“小計”單元格的左父格為地區單元格:

預覽模板,可以看到“小計”一欄跟隨父格地區的擴展而複製,即對擴展出來的每個地區都進行一次小計,圖中藍色部分。

數據分析軟件FineReport教程:[11]報表設計

不設置父格的彙總

再加上一欄彙總,不進行父格設置,“合計”單元格無父格:

預覽模板,可以看到“合計”一欄仍然在最下面,是在上方單元格全部擴展出來後才顯示,圖中紅色部分。

數據分析軟件FineReport教程:[11]報表設計

教程, 軟件, 數據, 單元格, 報表,
相關問題答案