2008-09-27 64 views
1

我在SQL報告中有一個矩陣,我希望它在A4頁面上打印。如果矩陣少於4列,那麼它適合但超過4列,我希望矩陣包裝和每頁只顯示4列。這可能嗎?我在localmode中使用SQL Reporting 2005。包裝SQL報告矩陣

回答

4

我發現周圍的工作:

  1. 首先我添加一個字段到我的數據源稱爲列數。因爲數據源是建立在業務對象中的,所以我很容易知道有多少列數據。
  2. 接下來,我在我的報告中創建了一個列表,並將我的矩陣移動到列表中。
  3. 我爲該列表製作了組表達式=天花板(Fields!ColumnCount.Value/4)。

總之,我告訴列表打破每4列。這會導致矩陣在4列之後分裂。

這不適用於所有情況,可能會導致小計,但它適用於我的應用程序。

免責聲明:這不是我的想法...我改編自Chris Hays's Sleezy Hacks

0

我不這麼認爲。我發現輸出到excel然後打印是打印我發現的SSRS矩陣報告的最靈活的方式 - 尤其是,因爲我的大部分用戶都非常熟悉。

1

沒有辦法內在地包裝列;上面的Mboy的解決方案與我過去所做的非常相似,所以我不會在這裏重複他的步驟,但我會警告您:對於具有大量列的矩陣,您將按指數方式增加報告中的頁數。在你的情況下,這可能不成問題;但是我們發現,在大多數情況下,它更便宜(根據頁面輸出)而不是換行。

0

根據MSDN,Tablix數據區域以垂直方式進行水平分頁,就好像您可以在組更改中指定分頁符一樣。還有另外一篇MSDN文章建議使用分頁表達式,但這種技術已經由MBoy解釋過,所以我不會重複它,除非說它是一種認可的技術。

1

除了MBoy的回答,我想在一個頁面上顯示多個圖表,但圖表數量因數據而異。我想要的是根據需要在行上顯示兩排圖表。我並如下:

  1. 如MBoy建議的,我創建了一個「計數」字段稱爲[圖表NUMBER]中,通過一個用於每個圖表增加(因此,如果我有7個圖表,行將被編號的數據1-7)。
    爲了實現這一點,我使用了DENSE_RANK()SQL函數在我的查詢中創建一個字段,例如DENSE_RANK()OVER(ORDER BY [Data]。[ItemtoCount])AS [ChartNumber]。
    所以,如果我想爲每個部門我可能會使用DENSE_RANK()在不同的圖表(ORDER BY [數據] [系])AS [圖表NUMBER]

  2. 我添加了一個列表的形式,並綁定到我的數據集

  3. 然後將行組設置爲= Ceiling(Fields!ChartNumber。價值/ 2)

  4. 然後我加了科拉姆組=天花板(領域!ChartNumber.Value國防部2)

  5. 創建列表和預覽裏面的圖表,你會看到兩個圖表並排在每一排上。

我使用了圖表,但是您可以輕鬆地將矩陣或任何其他項目放入列表中。

編輯:用於n列的更通用的解決方案是=天花板(字段ChartNumber.Value/N!)和=天花板(N *字段ChartNumber.Value模N!)