設定重點在於
- 紙張大小:頁寬、頁高
- 左右邊界
- 可用頁面區域:此範例中即為欄位
- 欄位間距
- 資料範圍:建議利用 Tablix 或 List 來顯示資料,在此採用 Tablix 來顯示資料
DataSet T-SQL
SELECT CONCAT(LastName,'-',FirstName) AS FullName
FROM [Person].[Contact]
設定紙張大小,[報表屬性] => [版面設定]- 頁面單位改為公分,預設是英吋,方便計算寬度
- 設定紙張大小為 A4,寬度為 21 cm
- 左右邊界設為 0.5 cm
上述設定也可以在屬性視窗內進行設定,如下圖
報表 => 屬性視窗 => Columns 內有兩個多欄位報表的主要設定,分別為
- Columns:設定報表欄位數,設為 4 cm
- ColumnSpacing:設定欄位與欄位間的間隔,設為 0 cm
設定完 Columns 屬性後,設計界面會變成下圖
可用頁面區域,主體 => 屬性,設定欄位 Size 寬度為 4.5 cm
資料範圍,Tablix 寬度只要小於可用頁面區域即可,在此讓它跟可用頁面區域一樣寬
預覽結果 1
一開始強調寬度的重要性在於避免超過紙張寬度、超過欄位寬度,造成跨欄位問題,上述設定寬度計算
紙張寬度 21 > 左邊界 0.5 + 右邊界 0.5 + 欄位寬度 4.5 X 4 + 欄位間寬度 0 X 3下面故意把 Column Spacing 設為 1 cm,讓報表跨欄位
報表寬度 21 < 左邊界 0.5 + 右邊界 0.5 + 欄位寬度 4.5 X 4 + 欄位間寬度 1 X 3設計介面圖示,發現到不同解析度螢幕上 ColumnSpacing 好像不見得看得到,還是自己眼殘,Orz ~~
預覽結果 2,可以看見一欄資料跨兩個欄位,原本一頁可以呈現四欄資料變成兩頁才可以顯示四欄資料,預覽頁數從 90 變成 180
從預覽結果 1 也可以發現到 ColumnSpacing 設為 0 的情況下,欄位和欄位間還是有空白存在,要讓欄位和欄位完全密合,必須讓紙張寬度和欄位寬度總和相等,欄位間距會預設為 0,把左右邊界設為 1.5 cm
報表寬度 21 = 左邊界 1.5 + 右邊界 1.5 + 欄位寬度 4.5 X 4 + 欄位間寬度 0 X 3預覽結果 3
上述設定左右邊界,而非更改可用頁面區域的原因在於,變更可用頁面區域為 5cm、左右邊界維持 0.5cm 還是會產生跨欄位情形,嘗試把可用頁面區域調整到 4.7cm 才不會產生跨欄位,再設定左右邊界為 0.6 cm 來滿足紙張大小,即可讓欄位和欄位密合,結論:調整左右邊界比調整可用頁面區域容易達到效果。
預覽結果 1、2、3 還有一個重點是多欄位報表,在預覽結果時,要使用 "整頁模式" 才可以看見效果,要不然都只會單欄顯示,而在整頁模式下觀察,一直發現左寬線會無法顯示的情況,把報表匯出成 PDF 卻又正常的情況,對於多欄位報表預覽有疑問的話,建議匯出 PDF 來判斷
預覽結果 4,紅色框框為整頁模式按鈕,數字 1、數字 2 是整頁模式下左框線消失的情況
限制:子報表會繼承父報表的資料行設定,因此無法在子報表內設定多欄位報表
沒有留言:
張貼留言