星期一, 1月 13, 2014

[SSRS] 新聞稿樣式報表

新聞稿樣式報表,又稱為多欄位(Multi-Columns)報表,可以讓資料由左而右、由上而下往右邊欄位來顯示

設定重點在於
  1. 紙張大小:頁寬、頁高
  2. 左右邊界
  3. 可用頁面區域:此範例中即為欄位
  4. 欄位間距
  5. 資料範圍:建議利用 Tablix 或 List 來顯示資料,在此採用 Tablix 來顯示資料
下圖為 MSDN 上截取,上述重點圖示
[SSRS] 新聞稿樣式報表-11

DataSet T-SQL
SELECT CONCAT(LastName,'-',FirstName) AS FullName 
FROM [Person].[Contact]
設定紙張大小,[報表屬性] => [版面設定]
  • 頁面單位改為公分,預設是英吋,方便計算寬度
  • 設定紙張大小為 A4,寬度為 21 cm
  • 左右邊界設為 0.5 cm
[SSRS] 新聞稿樣式報表-1

上述設定也可以在屬性視窗內進行設定,如下圖

[SSRS] 新聞稿樣式報表-2

報表 => 屬性視窗 => Columns 內有兩個多欄位報表的主要設定,分別為
  • Columns:設定報表欄位數,設為 4 cm
  • ColumnSpacing:設定欄位與欄位間的間隔,設為 0 cm

[SSRS] 新聞稿樣式報表-3

設定完 Columns 屬性後,設計界面會變成下圖

[SSRS] 新聞稿樣式報表-4

可用頁面區域,主體 => 屬性,設定欄位 Size 寬度為 4.5 cm

[SSRS] 新聞稿樣式報表-5

資料範圍,Tablix 寬度只要小於可用頁面區域即可,在此讓它跟可用頁面區域一樣寬

[SSRS] 新聞稿樣式報表-6

預覽結果 1

[SSRS] 新聞稿樣式報表-7

一開始強調寬度的重要性在於避免超過紙張寬度、超過欄位寬度,造成跨欄位問題,上述設定寬度計算
紙張寬度 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 ~~

[SSRS] 新聞稿樣式報表-8
預覽結果 2,可以看見一欄資料跨兩個欄位,原本一頁可以呈現四欄資料變成兩頁才可以顯示四欄資料,預覽頁數從 90 變成 180

[SSRS] 新聞稿樣式報表-9

從預覽結果 1 也可以發現到 ColumnSpacing 設為 0 的情況下,欄位和欄位間還是有空白存在,要讓欄位和欄位完全密合,必須讓紙張寬度和欄位寬度總和相等,欄位間距會預設為 0,把左右邊界設為 1.5 cm
報表寬度 21 = 左邊界 1.5 + 右邊界 1.5 + 欄位寬度 4.5 X 4 + 欄位間寬度 0 X 3
預覽結果 3

[SSRS] 新聞稿樣式報表-10

上述設定左右邊界,而非更改可用頁面區域的原因在於,變更可用頁面區域為 5cm、左右邊界維持 0.5cm 還是會產生跨欄位情形,嘗試把可用頁面區域調整到 4.7cm 才不會產生跨欄位,再設定左右邊界為 0.6 cm 來滿足紙張大小,即可讓欄位和欄位密合,結論:調整左右邊界比調整可用頁面區域容易達到效果。

預覽結果 1、2、3 還有一個重點是多欄位報表,在預覽結果時,要使用 "整頁模式" 才可以看見效果,要不然都只會單欄顯示,而在整頁模式下觀察,一直發現左寬線會無法顯示的情況,把報表匯出成 PDF 卻又正常的情況,對於多欄位報表預覽有疑問的話,建議匯出 PDF 來判斷

預覽結果 4,紅色框框為整頁模式按鈕,數字 1、數字  2 是整頁模式下左框線消失的情況 

[SSRS] 新聞稿樣式報表-12

限制:子報表會繼承父報表的資料行設定,因此無法在子報表內設定多欄位報表

沒有留言:

張貼留言