SQL Server 2005 Reporting Services 中的突破性變更
更新: 2006 年 12 月 12 日
此主題描述突破自訂應用程式、指令碼或報表的 Reporting Services 功能的變更。
在頁首或頁尾中不支援鑽研動作或書籤連結
在 SQL Server 2005 和 SQL Server 2005 Service Pack 1 中,Reporting Services 在頁首或頁尾中不支援使用鑽研動作或書籤連結。這對於使用 SQL Server 2000 Reporting Services 所建立的報表而言是突破性的變更。
Service Pack 2 提供此問題的部分解決方案。視需要而執行的報表現已支援在頁首和頁尾中使用鑽研動作,但仍不支援以快照方式執行的報表。必須重新建立在頁首或頁尾中包含鑽研或書籤連結的快照,才能取得鑽研功能:
- 啟動報表管理員或 Management Studio。
- 找到報表並開啟該報表的 [執行] 屬性頁面。
- 選取 [儲存此頁面時,建立報表的快照集] 核取方塊。
- 按一下 [套用]。
- 針對以快照方式執行且在頁首或頁尾中含有鑽研或書籤連結的所有報表,重複上述步驟。
不支援 SQL Server 2000 的報表伺服器 WMI 提供者
Reporting Services 包含 Windows Management Instrumentation (WMI) 提供者,透過這個提供者,您可以利用程式設計的方式設定供報表伺服器執行的環境。Reporting Services 的 SQL Server 2005 版包括全新版本的 WMI 提供者,可以完全取代舊版。在這一版的 SQL Server 中,不支援 SQL Server 2000 的原始版本。
資料處理延伸模組的新驗證限制
這一版的 Reporting Services 包含對於某些資料處理延伸模組如何處理認證的新限制:
- 您不能設定 Analysis Services 資料來源連接來使用資料庫認證。如果您使用 ADOMD 包裝函式,連接將失敗。
- 您不能設定 XML 資料來源連接來使用資料庫認證。如果您未指定認證,且未定義自動執行帳戶,則會透過匿名存取來提出要求。
- 如果在連接字串上傳遞了資料庫認證,但未設定自動執行帳戶,則協力廠商的 .NET 資料處理延伸模組 (例如 DB2.NET、Oracle ODP.NET 和 Teradata) 會明確地使資料處理失敗。
- 除非設定自動執行帳戶,否則在所有情況中,實作 IDBConnection (但非 IDBConnectionExtension) 之自訂資料處理延伸模組對資料的處理肯定會失敗。
- 每當服務帳戶提出連接要求時 (也就是說,將服務帳戶的安全性內容用於對資料來源的網路連接),Reporting Services 都會在傳送要求之前,移除服務帳戶的管理員權限。
若要設定自動執行帳戶,請使用 Reporting Services 組態工具或 rsconfig 公用程式。如需詳細資訊,請參閱<為自訂資料處理延伸模組指定連接>和<設定自動報表處理的帳戶>。
包含物件參考的運算式會導致報表編譯錯誤
如果運算式包括 Me.Value 參考,則使用運算式來設定項目之 Action 屬性的報表將不再進行編譯。若報表在 Action 屬性運算式中包含 Me.Value,則升級報表會造成類似如下的編譯器錯誤:「文字方塊 ‘textbox1’ 的 Value 運算式包含錯誤: [BC30456] 'Value' 不是 'ReportExprHostImpl.textbox1_TextBoxExprHost.DataValue1_DataValueExprHost' 的成員。(rsCompilerErrorInExpression)」。
若要避免這些錯誤並升級報表,您必須重寫 Action 運算式,以實際值運算式取代 Me.Value。下列範例說明如何以下列實際值運算式,取代文字方塊樣式運算式的 Me.Value:=iif(Fields!Name.Value = 0, "Solid", "None")
。
對多重值參數的支援可能突破報表的單一數值參數
多重數值參數支援是此版本中導入的新功能。如果您使用舊的 SOAP 端點,但程式碼取得或設定多重值參數,則現在您會取回多重值參數。在舊版中,如果您指定多個參數,則只會傳回第一個參數。請注意,在升級之後,可能會傳回您認為是單一數值之參數的其他參數。請務必檢閱對 Render 方法的現有呼叫,以判斷使用的是單一數值參數還是多重數值參數。您也應測試含有參數的所有報表,以確認單一數值參數能如預期運作。
透過 SetReportParameters 更新參數
在舊版中,如果您想要更新參數屬性,必須重新指定它的所有設定。如果報表包含以查詢為基礎或以運算式為基礎的參數,則更新單一參數屬性,通常表示您必須重新發行該報表。若未能重新發行報表,會導致在參數屬性變更之後,報表中遺漏以查詢為基礎的預設值。
在此版本中,您可以更新參數的特定屬性,而不必重設其全部屬性。如果未指定 DefaultValues 屬性,預設值也不再設為 Null。請注意,如果使用舊 SOAP 端點之應用程式的程式碼或指令碼正在處理 Null 參考,則此變更可能會破壞這些程式碼和指令碼。
為多重數值參數新增 Select All 成員
在 SQL Server 2005 Reporting Services 報表中,當您為多重數值報表參數建立可用值清單時,會自動加入 [全選] 核取方塊。如果選取 [全選] 核取方塊,將會選取所有可用值,如果清除 [全選] 核取方塊,則會清除所有可用值。升級為 SQL Server 2005 Service Pack 1 (SP1) 後,就不再提供 [全選] 核取方塊。在 SQL Server 2005 Service Pack 2 (SP2) 中,已還原 [全選] 核取方塊。當您將報表撰寫用戶端升級為 SP2 時,[全選] 核取方塊會自動加入至報表設計師中報表預覽內的可用值下拉式清單中。將報表伺服器升級為 SP2 後,您就可以使用報表伺服器工具 (報表管理員、報表產生器和 SQL Server Management Studio) 來檢視使用 [全選] 功能的所有現有及新增的報表。您不必重新發行現有的報表來還原 [全選] 功能。如果在升級工具後仍找不到 [全選] 核取方塊,則您連接的可能是 SP1 報表伺服器。
參考 Microsoft SQL Server Analysis Services 資料處理延伸模組的擴充屬性
在 SQL Server 2005 Reporting Services 報表中,如果您需要參考 Analysis Services 資料來源欄位的擴充 Key 屬性,您需要使用 Fields!FieldName("MEMBER_KEY") 自訂欄位語法。當您升級為 SQL Server 2005 Service Pack 1 (SP1) 之後,這個語法就不會再傳回 Key 值。已經不再需要或不再支援這個解決方法。不過,您必須將 Key 屬性之擴充欄位語法的參考,變更為 Fields!FieldName.Key 或 Fields!FieldName("Key")。
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2006 年 12 月 12 日 |
|
請參閱
概念
其他資源
升級 SQL Server 元件
Reporting Services 回溯相容性
回溯相容性