2011-05-09 54 views
4

考慮以下數據源:如何在不丟失結構的情況下將SSRS矩陣導出爲CSV?

declare @Test table (EmpId int, ProdId int, Sold int) 
insert @Test (EmpId, ProdId, Sold) values (1, 1, 1) 
insert @Test (EmpId, ProdId, Sold) values (1, 2, 2) 
insert @Test (EmpId, ProdId, Sold) values (1, 3, 3) 
insert @Test (EmpId, ProdId, Sold) values (1, 4, 4) 
insert @Test (EmpId, ProdId, Sold) values (2, 1, 5) 
insert @Test (EmpId, ProdId, Sold) values (2, 2, 6) 
insert @Test (EmpId, ProdId, Sold) values (2, 3, 7) 
insert @Test (EmpId, ProdId, Sold) values (2, 4, 8) 
select * from @Test 

我創建一個SQL Server報表服務(SSRS)2008 R2包含配置這樣一個矩陣報告:

|   | [ProdId] | 
| [EmpId] | [Sum(Sold)] | 

其中,在預覽模式下,呈現以下內容(如預期):

| | 1 | 2 | 3 | 4 | 
| 1 | 1 | 2 | 3 | 4 | 
| 2 | 5 | 6 | 7 | 8 | 

但是,當我將其導出爲CSV我得到這個:

| EmpId | ProdId | Sold | 
| 1  | 1  | 1 | 
| 1  | 2  | 2 | 
| 1  | 3  | 3 | 
| 1  | 4  | 4 | 
| 2  | 1  | 5 | 
| 2  | 2  | 6 | 
| 2  | 3  | 7 | 
| 2  | 4  | 8 | 

換句話說,當我導出到CSV時,我失去了矩陣佈局,每行數據都呈現爲一行CSV。請注意,如果我導出到Excel,報表按預期工作,所以此問題似乎僅限於CSV。我曾嘗試將矩陣重新組織爲表格內的表格,但這並不能解決問題。有什麼建議麼?

回答

4

這是一個很大的變化報告SSRS 2005和SSRS之間呈現2008年

唯一的解決方案,我發現的組成部分是:

  1. 導出到Excel,然後保存Excel文檔爲CSV - 這會使Excel格式變平,並要求設置分組,以便每行都重複父組的值。但是,從Excel導出到開始時會出現問題,例如,如果連續的行包含相同的數據,則呈現器有時會省略數據,可以通過將'DataElementOutput'設置爲True來針對受影響的列而不是'自動',它允許渲染器猜測你可能認爲什麼字段是重要的。

  2. 建立你作爲一個平坦的桌面報告 - 這幾乎是失敗的製備基體的點開始,是一個痛苦,但你可以提前定義列,可以這樣做動態要麼在查詢中或在文本框中使用大量表達式並在列上設置動態可見性。但爲了解決這個問題,可能需要創建數十或數百個列來處理特定值的潛在外觀。

  3. 不要升級到2008 - 如果矩陣報告和出口的格式,是關鍵業務,實在重建於2008年的功能沒有什麼好辦法,與2005年堅持SSRS是唯一肯定的方式來獲得舊的渲染。

資源

相關問題