表格製作軟體FineReport教程:[9]報表分欄?

下面就通過表格製作軟體FineReport來簡單介紹一下。

工具/原料

表格製作軟體FineReport7.1.1

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

行分欄

問題描述

有時我們會遇到列數很少,但是擴展出很多行的報表,這種報表窄而長,預覽或列印時會有很大的一片空白區域,不美觀且浪費紙張。為了節省空間、增加美觀性,FineReport報表可以通過分欄將報表進行行方向或者列方向的分欄顯示,如下圖行分欄後效果,資料是從上到下擴充套件,超過20行,就在第2列中顯示,並且每列資料都有一個小標題,所有資料有一個大標題。

表格製作軟體FineReport教程:[9]報表分欄

示例

資料準備

新建一張模板,新建資料集ds1:SELECT * FROM [人員變動表]。

模板設計

如下圖,在報表主體上設計報表:

其中B3單元格的父格為C3,公式seq作用是對員工進行排序。

表格製作軟體FineReport教程:[9]報表分欄

未分欄預覽

儲存模板,預覽模板,如下圖,可以報表每頁右側都有很多的空白區域,浪費空間:

表格製作軟體FineReport教程:[9]報表分欄

分欄設定

如上圖,報表右側還有很多空白區域,那麼就可以設定行分欄,將左側超過固定行的資料挪到右側。

這裡我們設定每一欄顯示20行資料,不包括標題,以此類推。

就可以在選單欄中,選擇模板>報表分欄,設定為行分欄,超過20行時進行分欄,參與分欄的資料從左上角的A3到右下角的E3,故在分欄資料中填寫A3:E3,如下圖:

表格製作軟體FineReport教程:[9]報表分欄

超過X行分欄

超過行分欄是指縱向擴充套件的資料超過固定行數就進行行分欄,其中超過行分欄的數字計算公式為:

超過行分欄的數字=(分欄資料中結束分欄行序號-開始分欄行序號+1)*倍數,標題行不引數計算

如上圖,分欄區域中分欄資料位A3到E3,結束分欄行序號和開始分欄行序號均為3,示例要求每個欄位顯示20行資料,每條資料只佔一行,所以倍數為20,那麼:

超過行分欄的數字=(3-3+1)*20=20

分欄成X列

分欄成x列與超過X行分欄效果一樣,都是設定每一欄中資料顯示多少行,超過x行分欄是固定每一欄位的行數,欄數不確定,分欄成x列是指所有的資料分成固定欄,每一欄中資料的行數根據資料總行數確定,如示例中,不包括標題,資料總共有407行,那麼如果分欄成12列,那麼每一欄的資料行數=407/12(如果不能整除,則向上取整)=35,如下圖:

表格製作軟體FineReport教程:[9]報表分欄

複製行序列

複製行序列是指在分欄時將該行復製作為每個欄位的標題,因此其一般應用於單元格是標題的行,複製行序號的行不參與分欄。

另:報表設計時,大標題必須要覆蓋整個分欄區域,如示例中的“各分公司員工勞動關係詳表”(大標題)所在的單元格所在區域必須包含到E1單元格,如果沒有包含到E1單元格,那麼大標題就不會跟隨擴充套件顯示在所有資料中間,而是顯示在第一欄資料的中間,如下圖:

表格製作軟體FineReport教程:[9]報表分欄

分欄時的特別要求

縱向擴充套件時,由於欄數不定,設定上面的分欄後,一頁可能會顯示出多欄,甚至最右邊的欄會顯示不全,而我們往往希望每頁能夠固定顯示兩欄。

此時我們需要保證,設計報表時,左側設計報表所佔的總列寬,需要跟右側所在報表範圍內的空白大小基本相同,就可顯示2欄了,如果模板樣式不好調,可以調整頁面大小。

如果需要顯示3欄,則要保證報表範圍內(分頁線之間)能夠分成3份等寬。

表格製作軟體FineReport教程:[9]報表分欄

列分欄

問題描述

資料是橫向擴充套件的,超過一頁的資料會顯示在下一頁,而每頁下面會有很大的一片空白區域,不美觀且浪費紙張。希望在一頁中第一行擴充套件滿後自動到下一行繼續擴充套件。

可以使用列分欄來實現這種橫向擴充套件自動換行的效果,如下圖資料是從左到右擴充套件,顯示完8天的資料之後自動到下面繼續擴充套件。

表格製作軟體FineReport教程:[9]報表分欄

資料準備

新建模板,新建資料集ds1:SELECT * FROM 公司股票。

模板設計

在報表主體設計報表樣式,如下圖:

所有的資料列均設為橫向擴充套件(預設為縱向擴充套件),資料列的擴充套件請檢視資料的擴充套件,seq公式的上父格設定為B3。

表格製作軟體FineReport教程:[9]報表分欄

未分欄預覽

儲存報表,預覽模板,如下圖,可以看到資料每頁只能顯示9列,下方有很多空白地方,浪費空間:

表格製作軟體FineReport教程:[9]報表分欄

分欄設定

上圖可以看到每頁能顯示9列資料,除去標題列,只能顯示8列資料,那麼我們這裡就可以設定每一欄顯示8列,超過的到下一欄顯示,以此類推。

就可以在選單欄中,選擇模板>報表分欄,設定為列分欄,超過8列時進行分欄,參與分欄的資料從B2到B8,故在分欄資料中填寫B2:B8,如下圖:

表格製作軟體FineReport教程:[9]報表分欄

超過X列分欄

超過列分欄是指橫向擴充套件的資料超過固定列數就進行列分欄,其中超過列分欄的數字計算公式為:

超過列分欄的數字=(分欄資料中結束分欄列序號-開始分欄列序號+1)*倍數,標題列不引數計算

如上圖,分欄區域中分欄資料位B2到B8,結束分欄列序號和開始分欄列序號均為2(即B列),示例要求每個欄位顯示8列資料,每條資料只佔一列,所以倍數為8,那麼:

超過列分欄的數字=(2-2+1)*8=8

分欄成x列

分欄成x列與分欄成X行原理一致,這裡不再贅述。

複製列序列

複製列序列是指在分欄時將該列複製作為每個欄位的標題,因此其一般應用於單元格是標題的列,複製列序號的行不參與分欄。

分欄時的特別要求

由於行數不定,設定上面的分欄後,一頁肯定會顯示出多欄,甚至最下邊的欄會顯示不全,此時我們需要保證,設計報表時,上方設計報表所佔的總行高,需要跟下方所在報表範圍內的空白大小成為倍數的關係,就可顯示幾欄了,可以通過頁面設定來調整報表大小。

注:報表設計時,大標題必須要覆蓋整個分欄區域,如示例中的“某公司2~4月份股票行情”(大標題)所在的單元格所在區域必須包含到B1單元格,如不覆蓋到分欄區域的最大區域,效果與行分欄中類似。

卡片分欄

描述

上面兩節均是介紹了列表和分組表的分欄效果,但是對於卡片這種每一條資料均有一個小標題或大標題的模板來說,我們又該如何進行分欄呢?

表格製作軟體FineReport教程:[9]報表分欄

資料準備

新建一張模板,新建資料集ds1:select * from 僱員

模板設計

如下圖所示設定模板,其中小標題列的第一個單元格A3和大標題單元格A1的父格設定為僱員ID所在單元格B3,並新增一個空白行和一個空白列,其中空白行的首個單元格A7和空白列的首個單元格D1的父格均設定為A3:

表格製作軟體FineReport教程:[9]報表分欄

未分欄預覽

儲存模板,點選分頁預覽,可看到如下效果,每個員工的資訊形成一個完整卡片,也就是每條記錄都有一個大標題和小標題:

表格製作軟體FineReport教程:[9]報表分欄

分欄設定

上述模板預覽效果可以看出該模板時縱向擴充套件,故分欄選擇行分欄。

上述模板設計中可以看出,每一位員工資訊佔了7行4列(為了使每位員工資訊有一定的空白間隔,我們使用了空白行與空白列),第一二行是大標題行,第一列是小標題所在單元格,但由於每條記錄都帶有大標題和小標題,故可以將大小標題看成是資料的一部分,所以是7行4列,而不是5行3列;

若我們希望每欄顯示4位員工資訊(7行*4=28行),超過的到下一欄(卡片是縱向擴充套件,故下一欄是指下一列)顯示,以此類推。

就可以在選單欄中,選擇模板>報表分欄,設定為行分欄,超過28行時進行分欄,參與分欄的資料從左上角的A1(大標題開始的單元格)到右下角的D7,故在分欄資料中填寫A1:D7,因為大小標題行已經作為分欄資料,所以重複行序列為空,如下圖:

表格製作軟體FineReport教程:[9]報表分欄

超過X行分欄

類似於上兩節中的行分欄和列分欄,卡片分欄的超過行分欄數字也有公式,如下:

超過行/列分欄的數字=(分欄資料中結束分欄行/列序號-開始分欄行/列序號+1)*倍數

如上示例,結束分欄行序號為7,開始分欄行序號為1,要求每個欄位顯示4為員工資訊,故倍數為4,所以

超過行分欄的數字=(7-1+1)*4=28

儲存與預覽

儲存模板,點選分頁預覽,效果如下圖

表格製作軟體FineReport教程:[9]報表分欄

組內分欄

描述

組內分欄是指在每個組的內部對組內的資料進行分欄,如下圖所示:

表格製作軟體FineReport教程:[9]報表分欄

資料準備

新建一張模板,新增一個內建資料集,資料如下圖:

表格製作軟體FineReport教程:[9]報表分欄

模板設計

如下圖所示設計模板:

B4單元格為縱向擴充套件,D4和D5單元格為橫向擴充套件,其他父格設定均為預設。

表格製作軟體FineReport教程:[9]報表分欄

分欄設定

點選模板>報表分欄,開啟分欄,選擇列分欄,分欄成2行,分欄資料位為組內資料,即D4和D5,複製列序列為第3列,是組內資料的標題,勾選補充空白列:

注:行分欄的設定過程類似。

表格製作軟體FineReport教程:[9]報表分欄

效果檢視

點選分頁預覽就能看到如上圖的效果。

教程, 軟體, 表格, 報表, 分欄,
相關問題答案