共用方式為


報表處理器

「報表處理器」是報表伺服器執行個體的內部元件,可處理用於特定報告的報表以及報表模型。

報表處理概觀

報表處理描述一連串的處理步驟,可以將報表定義內部的靜態指令轉換為以最終呈現格式顯示的轉譯報表。下列圖表顯示報表處理的階段和元素。

報表處理圖

報表處理圖表

存取報表時,無論是視需要或透過發送存取,報表伺服器都會執行端對端處理,或者會傳回先預先處理過,然後再儲存成中繼格式的報表,以便稍後以特定的格式檢視。報表執行設定會決定產生的結果。如果報表伺服器管理員指定報表從快取存取或當成快照集,則會從報表伺服器資料庫擷取中繼格式,然後轉譯以供檢視之用。否則,會執行處理的所有階段。

報表處理的要求

報表處理器會回應下列要求:

  • 視需要報表的要求。使用者開啟設定為視需要執行之報表的動作,會觸發報表伺服器上的報表處理。報表處理器會擷取報表定義、傳送資料要求到資料處理延伸模組、結合報表定義與資料、將其傳送至轉譯延伸模組,以及傳回已轉譯的報表。視需要報表處理會在以模型為基礎的報表中發生,以回應使用者動作。在以模型為基礎的報表中瀏覽資料路徑的使用者會針對暫存的點選連結報表觸發一連串要求。

  • 快取報表的要求。快取報表的處理是在 Web 服務內執行之視需要報表的變化。如果快取副本過期,使用者開啟設定為從快取副本執行之報表的動作,會觸發報表處理。在此情況下,此報表會先重新處理,然後再被加回快取,然後傳送到使用者的瀏覽器中。

  • 來自排程與傳遞處理器的要求。排程報表處理是由報表伺服器所起始,並在背景中執行。對於報表處理與傳遞之所有發送存取的驅動是透過報表伺服器之「排程與傳遞處理器」元件所處理的排程與事件。接收到要求時,報表處理器會擷取報表定義、將資料要求傳送到資料處理延伸模組、結合報表定義與資料,以及將已編譯的報表儲存在報表伺服器資料庫中。

要求處理的階段

在報表執行過程中,報表伺服器會以三個階段來處理報表:報表處理、資料處理,以及轉譯。資料和報表處理是在報表定義上執行,產生中繼格式的報表。中繼格式的報表接下來會轉譯成特定的檢視格式。

擷取報表定義

報表處理會以發行的報表定義開始。報表定義包含一或多個查詢、配置資訊,以及程式碼參考或運算式。報表處理器會從報表伺服器資料庫取得報表定義、初始化運算式中的參數與變數,以及執行準備報表以提供資料的其他初步處理。接著,資料處理延伸模組會連接到資料來源並擷取資料。

處理資料

資料處理會發生在資料庫伺服器上。如果報表擷取靜態資料檔案或 XML 文件,資料處理可能限於取得這些檔案,並將資料傳回報表伺服器。

將資料與配置合併為中繼格式

資料傳回後,會將其與報表定義中的配置資訊合併,以建構中繼格式的報表,該報表可儲存以供快速擷取,或者導向到可以將它處理為使用者可查看之格式的轉譯延伸模組。每一區段的資料會依資料列處理。區段包括報表首和報表尾、群組首和群組尾,以及詳細資料。彙總函式和運算式也會在此時處理。

設定為當做快照集執行或者保留在報表記錄中的報表一律以中繼格式儲存,其中包含儲存中繼格式時,報表當時的資料和配置資訊。

報表伺服器可以各種方法使用中繼格式。快取、快照集和報表記錄就是以中繼格式儲存報表的所有功能。中繼格式是可攜式的。它可以用報表伺服器支援,而且有在報表伺服器上部署的任何匯出格式呈現。

[!附註]

中繼格式是內部應用程式格式。若要在自訂應用程式中使用此格式的報表,您必須使用建立或擷取快照集的程式設計介面。

轉譯報表

報表成為中繼格式之後,就可以將這些報表轉譯為呈現格式。系統會將轉譯報表編譯成 Common Language Runtime 組件,並在報表伺服器上執行。

在轉譯階段期間,轉譯延伸模組會分頁報表,並處理無法在執行階段處理的運算式。接著,報表就會轉譯成適當裝置的特定格式。

模型處理與點選連結報表

報表可以使用報表模型做為基礎資料來源的介面。模型指定中繼資料,並包含定義資料連接之共用資料來源的參考。只要執行下列使用者動作,就會在報表伺服器上進行模型處理:

  • 在報表產生器中探索模型。

  • 在報表產生器中建立報表時,查詢模型資料。

  • 在報表伺服器上導覽點選連結報表。

點選連結報表的報表處理類似於報表定義的處理,不同的是,前者可以從模型自動產生報表,而非在伺服器上發行報表定義。透過模型起始資料處理,以擷取所要的資料。