Applies ToSQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2012 Enterprise Core SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express SQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2 Standard SQL Server 2008 R2 Web SQL Server 2008 R2 Workgroup

徵狀

請試想下列案例:

  • 您有 microsoft SQL Server Reporting Services 2008 R2 (SSRS 2008 R2),或是 microsoft SQL Server Reporting Services 2012 (SSRS 2012)報告適用于 Microsoft SharePoint 清單或文件庫。

  • 報表使用內建的 SQL Server Reporting Services SharePoint 清單資料延伸。

  • 您建立以 SharePoint 清單或文件庫為基礎的資料集查詢,然後在報表設計工具中執行查詢。

  • 您可以將報表部署到託管 SharePoint 清單或文件庫的 SharePoint 伺服器陣列。

在這種情況下,資料集查詢會在報表設計工具中傳回與 SharePoint 伺服器陣列中不同的結果。例如,您在 SharePoint 中建立新的視圖,您可以在其中選取文件庫中的 [ 顯示所有專案,但不顯示資料夾 ] 視圖選項。 您可以將新的視圖設定為文件庫的預設視圖。 在這種情況下,報表會在 SharePoint 伺服器陣列中傳回與報表設計工具中不同的資料。注意如果您將報表部署到 SharePoint 網站,則只會傳回最上層資料夾和文件庫的檔案。 不過,無論資料夾位置為何,報表設計工具都會傳回反映預設視圖的所有檔案。

原因

發生這個問題的原因是,當 SharePoint 在與清單相同的伺服器陣列中執行報表時,由 SSRS 2008 R2 或 SSRS 2012 所採取的不同程式碼路徑。 當本機 SharePoint 伺服器組執行報表時,會使用 SPLocalConnection 路徑來檢索該清單。 路徑直接從 SharePoint 清單讀取(不含 SOAP 呼叫),並建立清單資訊的本機複本,而不使用預設的視圖設定。 因此, SPLocalConnection 路徑不會反映預設視圖中的變更。 不過,報表設計者執行報表時,報表會使用 SPRemoteConnection 路徑。 此路徑使用與 GetListCollection 函數類似的 SOAP 呼叫。 這個函數透過遠端 HTTP 連線(而不是本機連線)來存取網站。 因此,所做的變更會反映在預設的視圖配置中。

因應措施

若要解決這個問題,請使用下列其中一個方法:

  • 將報表部署到原生模式報表伺服器,然後從原生模式報表伺服器執行報表。 注意: 如果您必須在 SharePoint 中查看報表,請在 SharePoint 中安裝原生模式報表檢視器網頁元件,然後從您的本機報表服務實例呼叫報表。如需有關如何使用 SharePoint 網頁元件來查看和探索原生模式報告的詳細資訊,請移至下列 MSDN 網站:

    如何使用 SharePoint 網頁元件來查看和探索原生模式報表

  • 將 SharePoint 清單或文件庫部署到可供您已部署報表之伺服器陣列存取的其他 SharePoint 伺服器組。 因此,本機伺服器陣列中的報表可以遠端存取清單。

  • 使用 XML 資料延伸建立 XML 查詢,而不使用 SharePoint 清單資料延伸。

狀態

Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。