2011年7月21日 星期四

Reporting Services - 匯出PDF時錯誤處理方式

        近日遇到同事詢問的一個情況,當開發Reports Services的報表時,在執行與匯出其他檔案格式時都沒有問題,但是偏偏在匯出PDF的時候卻發生下列的錯誤訊息,看起來好像是我匯出的頁數太多了,但是也只有8頁而已,而且匯出其他的格式都是正常的。

環境:
版本:SQL Server 2008 R2


開發工具的錯誤:
An error occurred during local report processing.
ScalableList:Index 8 outside the allowed range [0::7]

Reports Service Log:
library!ReportServer_0-4!27e4!07/21/2011-10:32:40:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException: ScalableList: Index 8 outside the allowed range [0::7], Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException: 報表伺服器發生內部錯誤。請參閱錯誤記錄以取得更多詳細資料。;

當下進行錯誤排除時,在網路上找發現也有人發生此類的情況,所以得到的解決方法為下列二種:
1、 更新SQL Server 2008 R2 Service Pack 1.
2、 將報表畫面上的TextBox強制設定HideDuplicates的欄位值為None。

但是進行上述的兩個方法後,問題還是無法解決,後來就將問題點轉移至報表設計時的結構問題著手。
後來發現主要是Report Header中的欄位參考Report Body的兩個隱藏欄位,所以當匯出PDF的時候,如果有發生換頁的情況,就會發生問題,針對這個案例,後來透過修改報表的結構,也就是將Report Header的兩個欄位移到Report Body中(這樣也比較合理),問題就解決了。

關鍵字:Reporting ServicesExport PDF匯出ScalableList

沒有留言:

張貼留言