Share via


升級報表

SQL Server 2008 導入了報表定義語言 (RDL)、報表物件模型以及影響舊版軟體中建立之報表的轉譯物件模型等項目的變更。當您將 SQL Server 2005 Reporting Services 安裝升級到 SQL Server 2008Reporting Services 安裝時,已經上載到報表伺服器的現有報表和快照集會在初次處理時自動升級到新的結構描述。如果無法自動升級報表,則會使用回溯相容性模式來處理報表。

當您在 Business Intelligence Development Studio 的報表設計師中開啟現有的報表定義 (.rdl) 檔案時,便會自動升級這些檔案。

[!附註]

如需有關新 RDL 功能的詳細資訊,例如 Tablix 資料區或修訂過的圖表元件,請參閱<新功能 (Reporting Services)>。

升級報表之後,您可能會發現其他錯誤、警告和訊息。這是內部報表物件模型的變更和處理元件的結果,造成偵測到報表中的根本問題時出現訊息。如需詳細資訊,請參閱<Reporting Services 回溯相容性>。

升級支援的版本

在任何舊版 Reporting Services 中建立的報表都可以升級。這包括以下版本:

  • SQL Server 2000

  • SQL Server 2000 Service Pack 1

  • SQL Server 2000 Service Pack 2

  • SQL Server 2005

  • SQL Server 2005 Service Pack 1

  • SQL Server 2005 Service Pack 2

報表定義檔 (.rdl) 和報表設計師

報表定義檔案包含 RDL 命名空間的參考,其中指定了用來驗證 rdl 檔的報表定義結構描述版本。

當您在 Business Intelligence Development Studio 的報表設計師中開啟 .rdl 檔時,如果此報表是針對先前的命名空間所建立,報表設計師就會自動建立備份檔案,並且將此報表升級至目前的命名空間。如果您儲存了升級的報表定義,就會儲存轉換的 .rdl 檔。一旦您儲存之後,就不能在舊版的報表設計師中開啟它。這是升級報表定義檔案的唯一方式。

您可以將舊版 Reporting Services 中建立的 .rdl 檔案上載到 SQL Server 2008 報表伺服器,而且第一次使用檔案時就會自動升級。報表伺服器會使用原始格式儲存報表定義檔案。初次檢視報表時會自動升級報表,但是已儲存的報表定義檔案則維持不變。

[!附註]

您不能將具有 SQL Server 2008 報表定義命名空間的報表發行或上載到 SQL Server 2000 報表伺服器或 SQL Server 2005 報表伺服器。

若要針對報表、報表伺服器或報表設計師識別目前的 RDL 結構描述,請參閱<如何:識別報表結構描述版本>。

已發行的報表和報表快照集

在初次使用時,報表伺服器會嘗試將現有已發行的報表和報表快照集升級到新的報表定義結構描述,您不需要執行任何特定動作。當使用者檢視報表或報表快照集,或是報表伺服器處理訂閱時,就會嘗試進行升級。報表定義不會被取代,而是繼續儲存在 SQL Server 2008 報表伺服器上的原始結構描述中。如果無法升級報表,則會使用回溯相容性模式來執行報表。

回溯相容性模式

已成功升級的報表會由 SQL Server 2008Reporting Services 報表處理器所處理。無法升級的報表會由 SQL Server 2005 Reporting Services 報表處理器在回溯相容性模式下處理。不能同時使用這兩種報表處理器來處理報表。

初次使用時會成功升級報表,或是將報表標示為可提供回溯相容性。

只有 SQL Server 2008Reporting Services 報表處理器才支援新的功能,例如視需要分頁、Tablix 資料區和量測軌資料區及增強型圖表資料區。如果無法升級報表,您仍然可以檢視轉譯的報表,但是無法使用新的功能。若要充分利用新的功能,則必須成功升級報表。

升級具有子報表的報表

當報表包含子報表時,升級期間會發生以下四種可能狀態的其中一種:

  • 可以成功升級主報表和所有子報表。它們是由 SQL Server 2008Reporting Services 報表處理器所處理。

  • 無法升級主報表和所有子報表。它們是由 SQL Server 2005 Reporting Services 報表處理器所處理。

  • 可以升級主報表,但是無法升級其中一個或多個子報表。主報表是由 SQL Server 2008Reporting Services 報表處理器所處理,但是會在無法升級子報表的位置中出現「錯誤: 無法處理子報表」訊息。

  • 無法升級主報表,但是可以升級其中一個或多個子報表。主報表是由 SQL Server 2008Reporting Services 報表處理器所處理,但是會在子報表的位置中出現「錯誤: 無法處理子報表」訊息。

如果您看到「錯誤: 無法處理子報表」錯誤,您必須變更主報表或子報表的定義,好讓報表可由相同版本的報表處理器來處理。

鑽研報表沒有這項限制,因為鑽研報表會當做獨立報表來處理。

升級具有自訂報表項目的報表

SQL Server 2005 Reporting Services 報表可能包含軟體協力廠商所提供以及系統管理員針對報表撰寫電腦和報表伺服器所安裝的自訂報表項目 (CRI)。包含 CRI 的報表可透過以下方式來升級:

  • SQL Server 2005 Reporting Services 報表伺服器會升級到 SQL Server 2008Reporting Services 報表伺服器。報表伺服器上已發行的報表會在第一次使用時自動升級。

  • SQL Server 2005 Reporting Services 報表會上載到 SQL Server 2008Reporting Services 報表伺服器。報表會在第一次使用時自動升級。

  • 在 Business Intelligence Development Studio 的報表設計師中開啟 SQL Server 2005 Reporting Services 報表。隨即建立原始報表的備份副本。而且會發生以下兩種情況的其中一種:

    1. 報表中的所有 CRI 都沒有任何不支援的功能。CRI 會轉換成新報表定義結構描述內的報表項目,好讓整個報表可以升級。如果您儲存檔案,它就會儲存在目前的 RDL 命名空間中。

    2. 報表中的一個或多個 CRI 具有不支援的功能。隨即出現一個對話方塊,提示使用者是要轉換 CRI 還是將其維持不變。

    如需詳細資訊,請參閱本主題稍後的「在報表設計師中開啟報表」。

如需有關針對報表伺服器、BI Development Studio 或報表識別目前 RDL 命名空間的詳細資訊,請參閱<如何:識別報表結構描述版本>。

升級報表伺服器上的報表

當 SQL Server 2005 Reporting Services 報表第一次在已經升級至 SQL Server 2008Reporting Services 報表伺服器的報表伺服器上執行時,此報表會自動升級到目前報表伺服器所支援的報表定義命名空間。報表在升級之前可能已經存在於報表伺服器上,或者報表可能已經透過報表管理員上載,或是在 SQL Server 2005 BI Development Studio 中從報表設計師發行到報表伺服器。

下表列出報表伺服器針對報表中特定類型的 CRI 所執行的升級動作。

CRI 類型

報表伺服器升級動作

協力廠商 CRI

未執行升級。

由 SQL Server 2005 Reporting Services 報表處理器所處理。

沒有不支援之功能的 Dundas 2005 圖表 CRI

升級至最新的 RDL 結構描述。所有 Dundas 2005 圖表 CRI 都會轉換成 SQL Server 2008Reporting Services 圖表資料區域。

由 SQL Server 2008Reporting Services 報表處理器所處理。

沒有不支援之功能的 Dundas 2005 量測軌 CRI

升級至最新的 RDL 結構描述。所有 Dundas 2005 量測軌 CRI 都會轉換成 SQL Server 2008Reporting Services 量測軌資料區域。

由 SQL Server 2008Reporting Services 報表處理器所處理。

具有不支援之功能的 Dundas 2005 圖表 CRI

未執行升級。

由 SQL Server 2005 Reporting Services 報表處理器所處理。

具有不支援之功能的 Dundas 2005 量測軌 CRI

未執行升級。

由 SQL Server 2005 Reporting Services 報表處理器所處理。

使用報表設計師開啟具有 CRI 的報表

當您在 SQL Server 2008Business Intelligence Development Studio 的報表設計師中開啟具有 CRI 的 SQL Server 2005 Reporting Services 報表時,該報表將會升級到新的報表定義結構描述。根據報表中所包含的 CRI 而異,將會發生以下其中一個動作:

  • 偵測到協力廠商 CRI。如果安裝於報表撰寫電腦上的 CRI 版本與新的 RDL 結構描述不相容,則設計介面會顯示一個有紅色 X 的文字方塊。您必須聯繫系統管理員,才能安裝協力廠商所提供而且與新 RDL 結構描述相容的新版 CRI。

  • 偵測到 Dundas 2005 圖表或量測軌 CRI 且所有執行個體都包含支援的功能。所有 Dundas 2005 圖表和量測軌 CRI 都會轉換成您在工具箱上看到的 Reporting Services 圖表和量測軌報表項目。這些稱為原生報表和量測軌報表項目。

  • 偵測到 2005 圖表或量測軌 CRI,而且任何執行個體都有不支援的功能。本章節之後將會描述不支援的功能。您可以選擇是否要將所有 CRI 轉換成原生報表項目。

    • 如果您要轉換,此報表會升級到新的 RDL 結構描述,而且 Dundas 2005 圖表和量測軌 CRI 會轉換成對應的原生報表和量測軌報表項目,但是會移除不支援的功能。在轉譯的報表中,您可能會看到 CRI 顯示的方式有些差異。

    • 如果您選擇不要轉換,報表會升級到新的 RDL 結構描述,但是 CRI 會視為協力廠商 CRI。您必須與系統管理員和協力廠商一起合作,才能安裝與新報表結構描述相容的新 CRI。如果無法使用新的 CRI,報表會在報表設計師中顯示一個有紅色 X 的文字方塊。

在報表撰寫環境中升級報表之後加以儲存是將現有報表升級到新報表定義結構描述的唯一方式。

不支援的 Dundas 2005 圖表自訂報表項目功能

Dundas 2005 圖表 CRI 不支援的功能包括以下項目:

  • 註解。

  • 自訂圖例項目。

  • 具有以下名稱的自訂屬性:

    • CUSTOM_CODE_CS

    • CUSTOM_CODE_VB

    • CUSTOM_CODE_COMPILED_ASSEMBLY

      例如,如果 .rdl 檔案包含以下區段,您就需要在升級之前加以移除:

      <CustomProperty>
       <Name>CUSTOM_CODE_CS</Name>
       <Value>dXNpWERwegfdfgiobxxl3bmc… </Value>
      </CustomProperty>
      

不支援的 Dundas 2005 量測軌自訂報表項目功能

Dundas 2005 量測軌 CRI 不支援的功能包括以下項目:

  • 數值指標。

  • 狀態指標。

  • 自訂影像。