頁首和頁面加入 ReportViewer 報表中

頁首和頁面加入 ReportViewer 報表中

報表可以包含分別在每個頁面的頂端和底端執行的頁首和頁尾。頁首和頁尾可以包含靜態文字、影像、線條、矩形、框線、背景色彩,以及背景影像。您不能將資料繫結欄位或影像直接加入頁首和頁尾中。不過,您可以撰寫運算式來間接參考頁首和頁尾所要使用的資料繫結欄位或影像。


報表頁首和頁尾與資料表或群組的首尾不同。如需有關資料表頁首和頁尾的資訊,請參閱<加入資料表資料區域>。如需有關如何在報表中加入頁首和頁尾的詳細資訊,請參閱<如何:加入、隱藏和移除頁首或頁尾 (ReportViewer 控制項)>。

附註
每個報表輸出格式都用不同的方式來處理頁面。如需詳細資訊,請參閱<定義 ReportViewer 報表中的頁面大小和分頁符號>。

抑制第一頁的頁首和頁尾
依預設,報表的第一頁和最後一頁會顯示頁首和頁尾。您可以變更第一頁和最後一頁頁首和頁尾的 PrintOnFirstPage 或 PrintOnLastPage 屬性來抑制它們。

在頁首或頁尾中顯示變數資料
頁首和頁尾可以包含靜態內容,但它們通常用來顯示會改變的內容,如頁碼或頁面內容的相關資訊。若要顯示每個頁面各不相同的變數資料,您必須撰寫一個運算式。若要將變數資料放在頁首或頁尾中,請執行下列動作:

將文字方塊加入頁首和頁尾中。

在文字方塊中,撰寫一個運算式來產生所需要的變數資料。

在運算式中,併入對於頁面報表項目的參考 (例如,您可以參考包含特定欄位之資料的文字方塊)。請勿併入對於資料集欄位的直接參考。

您不能直接參考頁首或頁尾中之文字方塊的欄位。(例如,您不能使用 =Fields!LastName.Value 運算式。)

若要在頁首或頁尾中顯示欄位資訊,請先將欄位運算式放在報表主體文字方塊中,之後,才在頁首或頁尾中參考這個文字方塊。下列運算式會顯示名稱為 TXT_LastName 的文字方塊之第一個執行個體的內容:

=First(ReportItems!TXT_LastName.Value)

您不能在頁首或頁尾的欄位中,使用彙總函數。您只能在報表項目上使用彙總函數 (如先前所描述的 First() 函數)。如需頁首和頁尾中的一般運算式,請參閱<ReportViewer 報表的共用運算式>。

這個主題的下列各節顯示立即可用的運算式,它們會取得頁首和頁尾中常用的變數資料。另外,它也會說明 Excel 轉譯延伸模組如何處理頁首和頁尾。如需有關運算式的詳細資訊,請參閱<在 ReportViewer 報表中使用運算式>。

在頁首或頁尾中加入頁碼
頁尾通常會顯示頁碼。若要在報表的頁首或頁尾顯示頁碼,請在頁尾建立一個文字方塊,再加入下列運算式:

=Globals.PageNumber & " of " & Globals.TotalPages

在頁首或頁尾中加入報表名稱、路徑和報表執行時間
請利用下列運算式,依照報表伺服器資料庫所儲存的情況,並附加有關報表產生時間之時間戳記資訊,來顯示報表標題或報表名稱:

=ReportItems!ReportTitle.Value

=Globals.ReportName & ", dated " & Format(Globals.ExecutionTime, "d")

在頁首或頁尾中加入資料繫結影像
您可以在頁首或頁尾中,使用資料庫所儲存的影像資料。不過,您不能直接從 [影像] 控制項參考資料庫欄位。相反地,您必須將文字方塊加入報表主體中,再將文字方塊設成包含影像的資料欄位 (請注意,這個值必須是 base64 編碼)。您可以將文字方塊隱藏在報表主體中,以避免顯示 base64 編碼的影像。之後,您便可以從頁首或頁尾中的 [影像] 控制項參考隱藏文字方塊的值。

例如,假設您有一份產品資訊頁面所組成的報表。每個頁面的頁首都要顯示產品的照片。若要在報表頁首列印儲存的影像,請在報表主體中,定義一個名稱為 TXT_Photo 的隱藏文字方塊,用來從資料庫中擷取影像以及利用一個運算式來提供一個值給它:

=Convert.ToBase64String(Fields!Photo.Value)

在頁首中,加入一個 [影像] 控制項來使用 TXT_Photo 文字方塊,以便解碼顯示影像:

=Convert.FromBase64String(ReportItems!TXT_Photo.Value)

在頁首或頁尾中加入計算頁面總計
對於某些報表而言,在每份報表的頁首或頁尾中併入計算的值,可能會很有用 (例如,當頁面包括數值時的個別頁面總計)。由於您無法直接參考欄位,因此您放在頁首或頁尾的運算式必須參考報表項目 (如文字方塊) 的名稱,而不是資料欄位的名稱:

=Sum(ReportItems!Textbox1.Value)

如果文字方塊所在的資料表或清單包含重複的資料列,頁首或頁尾在執行階段所顯示的值,便是目前頁面的資料表或清單中的所有 TextBox1 執行個體資料之所有值的總和。

當計算頁面總計時,您可以預期在利用不同轉譯延伸模組來檢視報表時,總計會不同。每個轉譯延伸模組的分頁輸出計算方式各不相同。您在 HTML 中檢視的相同頁面,當在 PDF 中檢視時,如果 PDF 頁面中的資料量不同,可能會顯示不同的總計。

利用頁首或頁尾來定位文字
您可以利用頁首和頁尾來將文字定位在頁面中。例如,假設您正在建立一份要利用郵件送交客戶的報表。您可以利用頁首或頁尾來放置客戶地址,以便在摺疊之後,它可以出現在封套視窗之中。

如果您只利用文字方塊來擴展頁首或頁尾,您可以將文字方塊隱藏在報表主體中。將文字方塊放在報表主體中,會影響到值是出現在報表第一頁或最後一頁的頁首或頁尾中。例如,如果您有會使報表跨越多個頁面的資料表、矩陣或清單,隱藏的文字方塊值會出現在最後一頁中。如果您要它出現在第一頁,請將隱藏的文字方塊放在報表主體的頂端。

在 Excel 中使用頁首和頁尾
當定義以 Excel 轉譯延伸模組為目標的報表之頁首和頁尾時,請遵循下列準則來得到最佳結果:

利用頁尾來顯示頁碼。

利用頁首來顯示影像、標題或其他文字。請勿將頁碼放在頁首。

在 Excel 中,頁尾的配置會受到限制。如果您在頁尾定義了包括複雜報表項目的報表,當在 Excel 中檢視報表時,頁尾不會依照您預期的方式來處理。

Excel 轉譯延伸模組可以接受簡單或複雜報表項目在頁首中的影像和絕對定位。支援複雜頁首配置的副作用是,會減弱在頁首計算頁碼的支援。在 Excel 轉譯延伸模組中,預設值會根據工作表數目來計算頁碼。隨著您定義報表的方式而不同,這有可能產生錯誤的頁碼。例如,假設您有一份轉譯成分四頁列印之單一大型工作表的報表。如果您在頁首併入頁碼資訊,每個列印頁面的頁首都會顯示「第 1 頁,共 1 頁」。

較精確的頁面計數是以關聯於列印頁面尺寸的邏輯頁面為基礎。在 Excel 中,頁尾會自動使用邏輯頁碼。若要將邏輯頁面計數放在頁首中,您必須將裝置資訊設定設成使用簡單頁首。請注意,當您使用簡單頁首時,您會移除在頁首資料頁區中處理複雜報表配置的能力。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值