向报表中添加页眉和页脚(Visual Studio 报表设计器)

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

报表页眉和页脚与表或组中的页眉和页脚不同。有关表页眉和页脚的信息,请参见添加表数据区域(Visual Studio 报表设计器)。有关如何对报表页眉和页脚进行操作的更多信息,请参见如何:添加、隐藏和移除页眉和页脚(Visual Studio 报表设计器)

Note注意

每个报表输出格式处理页的方式不同。有关更多信息,请参见定义报表中的页大小和分页符(Visual Studio 报表设计器)

在首页上禁用页眉和页脚

默认情况下,报表的首页和最后一页上显示页眉和页脚。通过更改页眉或页脚的 PrintOnFirstPagePrintOnLastPage 属性,可以在首页和最后一页上禁用页眉和页脚。

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

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

  1. 向页眉或页脚添加一个文本框。

  2. 在文本框中,编写一个生成要显示的变量数据的表达式。

  3. 在表达式中,包含对该页上报表项的引用(例如,可以引用包含特定字段中的数据的文本框)。不要包含对数据集中字段的直接引用。

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

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

=First(ReportItems!TXT_LastName.Value)

不能对页眉或页脚中的字段使用聚合函数。只能对报表项使用聚合函数(如上述 First() 函数)。有关页眉和页脚中的常用表达式,请参阅 报表的通用表达式(Visual Studio 报表设计器)

本主题中的以下几节介绍可供使用的表达式,这些表达式可获取在页眉和页脚中常用的变量数据。还介绍了 Excel 呈现扩展插件如何处理页眉和页脚。有关表达式的更多信息,请参见在报表中使用表达式(Visual Studio 报表设计器)

向页眉或页脚添加页码

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

=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 实例数据的所有值的总和。

计算页总和时,如果使用不同的呈现扩展插件查看报表,则可能会看到不同的总和。对于每个呈现扩展插件,分页输出的计算方式不同。如果 PDF 页的数据量不同,则相同页在 HTML 中查看与在 PDF 中查看可能会显示不同的总和。

使用页眉和页脚定位文本

可以使用页眉和页脚定位页中的文本。例如,假设要创建一个报表,然后邮寄给客户。您可以使用页眉或页脚定位客户地址,这样,折叠后地址将显示在信封窗口中。

如果只使用文本框填充页眉或页脚,则可以在表体中隐藏该文本框。文本框在表体中的放置方式会对值是显示在报表首页或最后一页的页眉还是页脚产生影响。例如,如果表、矩阵或列表导致报表跨越多页,则隐藏文本框的值将显示在最后一页。如果要显示在首页,请将隐藏的文本框放置在表体的顶部。

在 Excel 中使用页眉和页脚

为面向 Excel 呈现扩展插件的报表定义页眉和页脚时,遵守下列准则将获得最佳效果:

  • 使用页脚显示页码。

  • 使用页眉显示图像、标题或其他文本。不要将页码放在页眉中。

在 Excel 中,页脚布局有限制。如果定义的报表在页脚中包含复杂报表项,则在 Excel 中查看此报表时页脚将不按预期的方式处理。

Excel 呈现扩展插件可以在页眉中容纳简单或复杂报表项的图像和绝对位置。但支持较丰富的页眉布局有一个副作用,就是会降低对在页眉中计算页码的支持。在 Excel 呈现扩展插件中,默认设置使页码基于工作表的数量计算。根据定义报表的方式,这可能会产生错误页码。例如,假设一个报表呈现为一个较大的工作表,此工作表可打印四页。如果在页眉中包含页码信息,每一张打印页将在页眉中显示“第 1 页(共 1 页)”。

更准确的页计数基于与打印页的维度关联的逻辑页。在 Excel 中,页脚自动使用逻辑页码。若要在页眉中放置逻辑页计数,则必须将设备信息设置配置为使用简单页眉。请注意,如果使用简单页眉,则需要去除在页眉区域中处理复杂报表布局的功能。

另请参见

任务

如何:添加、隐藏和移除页眉和页脚(Visual Studio 报表设计器)

概念

定义报表中的页大小和分页符(Visual Studio 报表设计器)