为报表添加页眉和页脚

报表可以包含页眉和页脚,它们分别位于每一页的顶部和底部。页眉和页脚可以包含静态文本、图像、线条、矩形、边框、背景色和背景图像。无法直接向页眉或页脚中添加数据绑定字段或图像。但是,可以编写表达式来间接引用要在页眉或页脚中使用的数据绑定字段或图像。

ms159677.note(zh-cn,SQL.90).gif注意:
各个呈现扩展插件对页的处理方式各不相同。有关报表分页和呈现扩展插件的详细信息,请参阅控制报表分页
ms159677.note(zh-cn,SQL.90).gif注意:
在 SQL Server 2005 和 SQL Server 2005 Service Pack 1 中,Reporting Services 不支持钻取操作或页眉或页脚中的书签链接。

报表表头和表尾与表格表头和表尾或组头和组尾不同。有关表格表头和表尾的信息,请参阅使用表数据区域

取消第一页上的页眉和页脚

在报表设计器中,默认情况下在报表的第一页和最后一页上显示页眉和页脚。您可以取消报表的第一页和最后一页上的页眉和页脚。若要更改此设置,请更改页眉或页脚的 PrintOnFirstPagePrintOnLastPage 属性。有关详细信息,请参阅如何隐藏第一页或最后一页的页眉或页脚(报表设计器)

在页眉或页脚中显示变量数据

页眉和页脚可以包含静态内容,不过它们更常用于显示变化的内容,例如页码或有关页面内容的信息。若要在每个页上显示不同的变量数据,您必须编写表达式。若要在页眉或页脚中放入变量数据,请执行以下操作:

  • 向页眉或页脚中添加文本框。
  • 在文本框中,编写生成要显示的变量数据的表达式。
  • 在表达式中,包括对页上报表项的引用(例如,可以引用包含特定字段的数据的文本框)。不要包括对数据集中的字段的直接引用。

不能从页眉或页脚中的文本框直接引用字段。(例如,不能使用表达式 =Fields!LastName.Value。)

若要在页眉或页脚中显示字段信息,可将字段表达式放在表体的文本框中,然后在页眉或页脚中引用该文本框。以下表达式显示名为 TXT_LastName 的文本框的第一个实例的内容:

=First(ReportItems!TXT_LastName.Value)

不能在页眉或页脚中对字段使用聚合函数。只能对报表项使用聚合函数(比如前面所述的 First() 函数)。有关页眉和页脚中常用的表达式,请参阅 Reporting Services 中的表达式示例

本主题的以下部分介绍了在页眉和页脚中常用来获取变量数据的固定表达式。并介绍 Excel 呈现扩展插件如何处理页眉和页脚。有关表达式的详细信息,请参阅在 Reporting Services 中使用表达式

向页眉或页脚中添加页码

页脚通常显示页码。若要在报表的页眉或页脚中显示页码,请在页脚中创建一个文本框,然后添加以下表达式:

=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 中,页脚会自动使用逻辑页码。若要将逻辑页计数放在页眉中,必须将设备信息设置配置为使用简单页眉。注意,使用简单页眉时,将删除在页眉区域中处理复杂报表布局的功能。有关修改设备信息设置的详细信息,请参阅 Excel Device Information Settings

请参阅

任务

如何添加或删除页眉或页脚(报表设计器)
如何隐藏第一页或最后一页的页眉或页脚(报表设计器)
如何在报表中嵌入图像(报表设计器)

概念

设计报表布局
添加图形元素

帮助和信息

获取 SQL Server 2005 帮助