轉譯報表項目 (報表產生器 3.0 和 SSRS)

報表項目的數目、大小,以及位置會影響轉譯器為報表主體分頁的方式。下列是如何轉譯各種報表項目的描述。

[!附註]

您可以在 Business Intelligence Development Studio 中的報表產生器 3.0 及報表設計師中建立及修改報表定義 (.rdl)。每一個撰寫環境都提供了不同的方式讓您建立、開啟,以及儲存報表和相關的項目。如需詳細資訊,請參閱在報表設計師及報表產生器 3.0 (SSRS) 中設計報表,位於 microsoft.com 網站上。

重疊的報表項目

在 HTML、MHTML、Word、Excel、[預覽] 或「報表檢視器」中不支援重疊的報表項目。如果有重疊的項目,它們會移動。下列規則適用於重疊的報表項目:

  • 如果報表項目的垂直重疊較大,系統會將其中一個重疊項目移到右側。最左邊的項目則維持在所在的位置。

  • 如果報表項目的水平重疊較大,系統會將其中一個重疊項目移到下方。最上面的項目則維持在所在的位置。

  • 如果垂直重疊與水平重疊相等,系統會將其中一個重疊項目移到右側。最左邊的項目則維持在所在的位置。

  • 如果必須移動項目來更正重疊,相鄰的報表項目會向下和/或向右移動,以維持該項目與其上方和/或左方之報表項目之間的最小間距。例如,假設有兩個報表項目垂直重疊,而第三個報表項目與右側的報表項目距離 2 英吋。當重疊的報表項目向右移動時,第三個報表項目也會向右移動,才能讓本身與其左側的報表項目維持 2 英吋的距離。

手動分頁符號格式支援重疊的報表項目,包括列印。

可見性與報表項目

根據預設,系統可以隱藏或顯示報表項目,會使用運算式有條件地隱藏或顯示。或者,您可以按一下其他報表項目來切換可見性。

轉譯報表項目時,可以使用下列可見性規則:

  • 如果報表項目及其內容永遠是隱藏的 (根據運算式,該報表項目不是隱藏的,或其可見性無法透過按一下其他報表項目切換),則其右方或下方的其他報表項目就不會移動,也不會填滿空的空間。例如,如果矩形及其中的影像是隱藏的,矩形右側開始的報表項目就不會移到左側,也不會填滿看似空的空間。而矩形佔用的空間則會保留。

  • 如果報表項目及其內容是有條件隱藏的 (根據運算式,該報表項目是隱藏的,或其可見性可透過按一下其他報表項目切換),則其右方或下方的報表項目就會移動到左側,來填滿隱藏項目時的空間。

  • 如果報表項目及其內容的可見性可以透過按一下其他報表項目切換,則分頁會變更,只在一開始顯示報表項目時,容納報表項目及其內容。

讓報表項目在單一頁面上保持在一起

您可以設定保持群組或保持在一起屬性,在單一頁面上以隱含或明確的方式,讓報表內的許多報表項目保持在一起。如果報表項目沒有任何邏輯分頁符號,而且在尺寸上小於可用的頁面區域,則永遠會在相同的頁面上轉譯報表項目。如果報表項目無法完全容納在通常報表一開始的頁面上,就會在報表項目前插入一個手動分頁符號,強制該報表項目移到下一頁。若是自動分頁符號轉譯器,頁面則會擴張,以容納報表項目。

當報表項目永遠呈隱藏狀態時,就會忽略將項目保持在一起的規則。

下列項目會永遠保持在一起:

  • 影像。

  • 線條。

  • 圖表、量測計和對應。

  • 資料區域中的單一資料列,選取保持群組選項時,該資料列會單獨出現在另一個頁面上。這樣會將單一資料列與群組的至少一個執行個體隱含的保持在一起,讓該資料列不會遭到遺棄。您可以在資料區域或群組上設定這個選項。

  • 資料區域的頁首區域。

  • 資料區的頁首區域以及資料的第一個資料列。

  • 在 Tablix 資料區中可以切換的報表項目。

優先順序

由於頁面大小的限制,讓報表項目保持在一起的規則之間可能會發生衝突。當衝突發生時,系統會使用下列優先順序,以便在轉譯時讓項目保持在一起:

  • 線條、圖表和影像。

  • 段落遺留字串控制。

  • 重複的資料行標頭和資料列標頭。

    頁首優先於頁尾。內部重複的群組優先於外部群組。設定 RepeatWith 屬性的項目中,與目標資料區域較近的項目優先於與資料區域較遠的項目。

  • 文字方塊或矩形之類的小型報表項目,其明確的 KeepTogether 屬性設定為 true。

  • 子報表或非最內部的 Tablix 成員之類的大型報表項目,其明確的 KeepTogether 屬性設定為 true。

  • Tablix 資料區,其明確的 KeepTogether 屬性設定為 true。

子報表

子報表會轉譯為包含在個別報表 .rdl 檔案中定義之其他報表的矩形。子報表檔案必須先發行到報表伺服器上,父報表才能進行存取。

轉譯子報表時,適用下列規則:

  • 子報表可以擴張到定義子報表之 .rdl 檔案中所定義的主體大小。例如,如果子報表的 RDL 指出子報表主體的寬度為 5 英吋,則子報表在父報表內的寬度為 5 英吋。

  • 子報表會從父報表繼承資料行設定。而原始 RDL 中定義的資料行設定永遠會遭到忽略。

  • 系統只會轉譯子報表的主體。在父報表中轉譯子報表時,不會轉譯在子報表 .rdl 檔案中所定義的頁首和頁尾區段。

  • 子報表擁有一個明確的 KeepTogether 屬性。當該屬性設定為 true 時,子報表中的所有項目在單一頁面中都會盡可能保持在一起。

  • 如果子報表無法執行,就會在報表中顯示為包含錯誤訊息的文字方塊。套用到子報表的樣式屬性會改為套用到文字方塊。

  • 如果透過分頁符號分割子報表,[省略分頁符號上的框線] 設定會控制子報表上的框線是封閉的還是開放的。

如需有關子報表的詳細資訊,請參閱<子報表 (報表產生器 3.0 和 SSRS)>。